Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
12 июля 2013, 9:49:44 PM   # 1
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я исследовал, как улучшить скорость генерации тщеславия адресов, и я пришел с двумя идеями:

Первым использовал нестандартную кодировку открытого ключа. Например, если вы используете несжатые открытые ключи и вы подушечка х и у значения с от 1 до 10 префиксов нулей, вы можете создать 100 различные адреса, которые при хэшируются по SHA256 / ripemd160 дадут вам 100 различных строк Base58. Над головой каждого Публичным будет ДО 20 байт. Для того, чтобы перечислить эти адреса, нужно только выполнить хэш-функцию, и вам не нужно вычислять эллиптические операции кривых (только один раз в 100 двойных хэш).

Но проблема с этим подходом состоит в том, чтобы выкупить средства предыдущего выпуска, вы должны поместить в сценарии нестандартной кодировки Публичного. Это в свою очередь порождает две проблемы. Во-первых, что вам нужен патч для клиента, чтобы сделать это, или сделать это вручную с помощью интерфейса RPC. Вторая проблема заключается в том, что начиная с версии 0.8.3 клиента Satoshi, открытые ключи проверяются на наличие канонического кодирования. Таким образом, сделка выкупа не будет передана по сети больше. Вы можете отправить его непосредственно на шахтер, но это огромное ограничение.

Я хотел бы сделать это таким образом, что может быть в качестве стандарта, насколько это возможно. Тогда я придумал эту идею:

Вместо того чтобы генерировать нормальный адрес тщеславия, генерируют адрес P2SH тщеславия для сценария, содержащего транзакцию multisig 1-в-2. Первый открытый ключ является пользователя "без vanitized" Ключ Публичный (что будет "vanitized"). Второй Публичных является одноразовым значением, в сжатом формате ключ общественности.
Я называю эти адреса "P2SH / М", Чтобы отличить от всех других форматов. P2SH / M-адрес, так как P2SH адрес, начинается с цифрой base58 "3",

Это, как адрес на самом деле работает в сценариях:

scriptpub: OP_HASH160 [20 байт-хэш-значение] OP_EQUAL
scriptsig: OP_0 [без vanitized-privkey-подпись] {1 [не-vanitized-pubkey1] [Nonce-ключ] 2} OP_CHECKMULTISIG

Здесь [20 байт-хэш-значение] равно RIPEMD-160 (SHA ({1 [pubkey1] [Nonce-ключ] 2 OP_CHECKMULTISIG}))


Если третья сторона генерирует тщеславие адреса, он может сделать на два вещей, чтобы доказать, что он не имеет закрытый ключ, связанный с Нонс-Публичным:

1. Суетности-минер выбирает случайное слово, чтобы быть выше, чем поле значения р.

Он может использовать случайное слово между FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F и 2 ^ 256.
Таким образом, X координата будет некорректное значение поля.
Это когда одноразовое истолковано как pubkeys не будет принята OpenSSL Публичной проверки. Тем не менее, они будут приняты в качестве стандарта Bitcoin клиента 0.8.3 и ранее. Это происходит потому, что IsCanonicalPubKey () не проверяет это.
Тогда тщеславия-шахтер не может создать правильный секретный ключ этого недопустимых Публичный.
Он будет иметь 2 ^ 32 попыток перед необходимостью умножать без vanitized Публичных для того, чтобы иметь возможность сканировать еще 2 ^ 32 элементов.

Я действительно не нравится эта идея, так как, возможно, в будущем команда разработчиков ядра может принять решение, чтобы добавить этот чек IsCanonicalPubKey ()

2. Суетности-минер использует 32-байтовый одноразовый номер, который является хэш-дайджестом известного порядкового номера.

Теперь тщеславие шахтер может доказать, что он не выбрал конкретный нонс Публичного, показывая хэш-прообраз. Чтобы найти личный ключ malicuius тщеславия-шахтер должен был бы сломить сопротивление прообраз хэш-функции или сломаться ECDSA.

одноразовый ключ = HASH (последовательный номер)

После обнаружения, что временное значение хэширует сценарий в P2SH / M туалетным адрес, тщеславие-рудничные проверяет, что сжатый Nonce / точка лежит на эллиптической кривой. Если этого не произойдет, то продолжает пытаться. Если это произойдет, то останавливается. Вероятность не быть в эллиптической кривой равен 1/2.

Этот метод генерирует % Стандартных 100 адресов действительны и навсегда использовать P2SH тщеславие. Нам нужно только, чтобы клиенты эволюционировать немного больше для автоматической обработки платя / приема от P2SH / multisig адресов.

В настоящее время это может быть сделано с клиентом Satoshi и RPC межфазных границ с помощью validateaddress / addmultisigaddress / sendtoaddress / getrawtransaction / createrawtransaction / signrawtransaction.

Кроме того, существование нонса не ухудшает производительность клиента Satoshi при проверке подписей, поскольку scriptsig подпись всегда будет соответствовать первому Публичной, поэтому не требуется проверка против второго Нонса-Публичным.
Накладные расходы по сделке, конечно, очень низкие, около 35 байт.

Я думаю, что текущее убыстрение с использованием GPU помоему P2SH / M является 20X, если вы добыча вашего собственного P2SH / M-адреса или 10Й, если третья сторона мина их для вас (может быть и больше, но это оценка).

Эта последняя идея интересна, так как он может сканировать пространство ключей 32-байтовое только с хэш-операций RIPEMD / SHA, поэтому он может быть эффективно выполнено в FPGA или ASIC, без необходимости в операциях ЕС. Так что, может быть, мы могли бы добывать тщеславие адрес с 2 более выбранными префиксами символов.

С наилучшими пожеланиями, Серхио.







Sergio_Demian_Lerner сейчас офлайн Пожаловаться на Sergio_Demian_Lerner   Ответить с цитированием Мультицитирование сообщения от Sergio_Demian_Lerner Быстрый ответ на сообщение Sergio_Demian_Lerner


Как заработать Биткоины?
Без вложений. Не майнинг.


12 июля 2013, 10:23:46 PM   # 2
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Получил 1806 Биткоинов
Реальная история.





Обратите внимание, что с Luke-Jr пластыря https://github.com/samr7/vanitygen/pull/10 из vanitygen шахтера, несколько строк дополнительного кода и несколько изменений, и вы можете реализовать P2SH / M шахтер в течение 5 минут.
Sergio_Demian_Lerner сейчас офлайн Пожаловаться на Sergio_Demian_Lerner   Ответить с цитированием Мультицитирование сообщения от Sergio_Demian_Lerner Быстрый ответ на сообщение Sergio_Demian_Lerner

13 июля 2013, 7:55:53 PM   # 3
 
 
Сообщения: 1750
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Для варианта 2 Вы имеете в виду временное значение будет что-то вроде HASH (1), HASH (2), HASH (3) ........?

Так почему бы не просто использовать 1, 2, 3 ...... как Публичные?
jl2012 сейчас офлайн Пожаловаться на jl2012   Ответить с цитированием Мультицитирование сообщения от jl2012 Быстрый ответ на сообщение jl2012

13 июля 2013, 7:59:48 PM   # 4
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Главное, чтобы сдвинуть его с ECC для хеширования правильно?

Добавление временного значения переключателей генерации ключей от умножения ЕС для хеширования.

Интересно, если в будущем "1SomeWebsite" адреса будут рассматриваться как лучше "MSomeWebsite", Если только потому, что они являются более дорогими в производстве.
TierNolan сейчас офлайн Пожаловаться на TierNolan   Ответить с цитированием Мультицитирование сообщения от TierNolan Быстрый ответ на сообщение TierNolan

13 июля 2013, 8:52:38 PM   # 5
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Конечно, тот, как Лука генерируется, что 3P14159 адрес ... но своего рода хромой, что она делает ваши расходы сделок больше (= более высокие затраты и дополнительное дерьмо добавляется к blockchain).

котировка
Интересно, если в будущем "1SomeWebsite" адреса будут рассматриваться как лучше "MSomeWebsite", Если только потому, что они являются более дорогими в производстве.
Оба своего родом ужасно: такой человек, который мог бы заботиться о своем различии будет признать, что либо форма говорит всему миру в партии пойти после, чтобы узнать больше об этих средствах, и, предположительно, предпочитает иметь дело с кем-то не щуря приватность каждой.
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

14 июля 2013, 1:00:23 PM   # 6
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Для варианта 2 Вы имеете в виду временное значение будет что-то вроде HASH (1), HASH (2), HASH (3) ........?

Так почему бы не просто использовать 1, 2, 3 ...... как Публичные?

Потому что третья сторона добычи тщеславие адресу вам нужно будет доказать, что он не выбрал Публичный с использованием ECC (и знает секретный ключ).
Если у вас есть хэш-прообраз, это доказательство.
Кроме того, простая последовательность, как 1,2,3 может оказаться в слабом случае Публичного (я не уверен, если ECDSA имеет слабые ключи).

Если вы помоему для себя, то вы можете рассчитывать просто, как вы сказали, но было бы лучше, чтобы выбрать последовательность, начиная от случайной величины 32 байта.
Sergio_Demian_Lerner сейчас офлайн Пожаловаться на Sergio_Demian_Lerner   Ответить с цитированием Мультицитирование сообщения от Sergio_Demian_Lerner Быстрый ответ на сообщение Sergio_Demian_Lerner

14 июля 2013, 1:05:23 PM   # 7
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Конечно, тот, как Лука генерируется, что 3P14159 адрес ... но своего рода хромой, что она делает ваши расходы сделок больше (= более высокие затраты и дополнительное дерьмо добавляется к blockchain).
В конце концов, это финансовое решение: если вы хотите использовать длинный адрес тщеславия либо вы платите в 20 раз больше, заранее, или вы платите немного больше каждый раз, когда вы получаете сделку.

Sergio_Demian_Lerner сейчас офлайн Пожаловаться на Sergio_Demian_Lerner   Ответить с цитированием Мультицитирование сообщения от Sergio_Demian_Lerner Быстрый ответ на сообщение Sergio_Demian_Lerner

14 июля 2013, 1:22:39 PM   # 8
 
 
Сообщения: 1750
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Для варианта 2 Вы имеете в виду временное значение будет что-то вроде HASH (1), HASH (2), HASH (3) ........?

Так почему бы не просто использовать 1, 2, 3 ...... как Публичные?

Потому что третья сторона добычи тщеславие адресу вам нужно будет доказать, что он не выбрал Публичный с использованием ECC (и знает секретный ключ).
Если у вас есть хэш-прообраз, это доказательство.
Кроме того, простая последовательность, как 1,2,3 может оказаться в слабом случае Публичного (я не уверен, если ECDSA имеет слабые ключи).

Если вы помоему для себя, то вы можете рассчитывать просто, как вы сказали, но было бы лучше, чтобы выбрать последовательность, начиная от случайной величины 32 байта.

Таким образом, клиент может просто генерировать большое случайное число X, и просить шахтер сканирования с Й до Й +-^ 32. Я не могу понять, почему это слабее, чем хэш-то
jl2012 сейчас офлайн Пожаловаться на jl2012   Ответить с цитированием Мультицитирование сообщения от jl2012 Быстрый ответ на сообщение jl2012

3 августа 2013, 9:37:49 PM   # 9
 
 
Сообщения: 322
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Обратите внимание, что с Luke-Jr пластыря https://github.com/samr7/vanitygen/pull/10 из vanitygen шахтера, несколько строк дополнительного кода и несколько изменений, и вы можете реализовать P2SH / M шахтер в течение 5 минут.
Уход поделиться полный исходный / патч? Я не достаточно хорошо, чтобы быть в состоянии осуществить это сам.
n4ru сейчас офлайн Пожаловаться на n4ru   Ответить с цитированием Мультицитирование сообщения от n4ru Быстрый ответ на сообщение n4ru

3 августа 2013, 11:11:53 PM   # 10
 
 
Сообщения: 126
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Просто используйте ветвь ссылки запроса тянуть:

https://github.com/luke-jr/vanitygen/tree/e2a0e0ba138464ce96b733f8990b75b60f05a367

Edit: То есть, если патчи уже есть. Если они не являются, ни кости: р
dudeami сейчас офлайн Пожаловаться на dudeami   Ответить с цитированием Мультицитирование сообщения от dudeami Быстрый ответ на сообщение dudeami

4 августа 2013, 12:31:59 PM   # 11
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Обратите внимание, что с Luke-Jr пластыря https://github.com/samr7/vanitygen/pull/10 из vanitygen шахтера, несколько строк дополнительного кода и несколько изменений, и вы можете реализовать P2SH / M шахтер в течение 5 минут.
Уход поделиться полный исходный / патч? Я не достаточно хорошо, чтобы быть в состоянии осуществить это сам.

Я не реализовал его. Я слишком занят.
Но Лука-Jr реализован то, что очень очень близко. Вы можете изменить его легко: может быть, 5 строк кода достаточно.
Sergio_Demian_Lerner сейчас офлайн Пожаловаться на Sergio_Demian_Lerner   Ответить с цитированием Мультицитирование сообщения от Sergio_Demian_Lerner Быстрый ответ на сообщение Sergio_Demian_Lerner

4 августа 2013, 12:51:50 PM   # 12
 
 
Сообщения: 1750
Цитировать по имени
цитировать ответ
по умолчанию Re: 10 раз быстрее туалетный адрес (P2SH / М)

Для варианта 2 Вы имеете в виду временное значение будет что-то вроде HASH (1), HASH (2), HASH (3) ........?

Так почему бы не просто использовать 1, 2, 3 ...... как Публичные?

Потому что третья сторона добычи тщеславие адресу вам нужно будет доказать, что он не выбрал Публичный с использованием ECC (и знает секретный ключ).
Если у вас есть хэш-прообраз, это доказательство.
Кроме того, простая последовательность, как 1,2,3 может оказаться в слабом случае Публичного (я не уверен, если ECDSA имеет слабые ключи).

Если вы помоему для себя, то вы можете рассчитывать просто, как вы сказали, но было бы лучше, чтобы выбрать последовательность, начиная от случайной величины 32 байта.

Просто понимаю, что это может быть сделано в абсолютно доверительном свободным способом. Заказчик предоставит 2 открытых ключей, и просить шахтера, чтобы произвести 2-в-3 multisig адрес. Недостатком является большая scriptSig требуется
jl2012 сейчас офлайн Пожаловаться на jl2012   Ответить с цитированием Мультицитирование сообщения от jl2012 Быстрый ответ на сообщение jl2012



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW