Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
19 ноября 2015, 11:31:55 PM   # 1
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Заметки об использовании Midstate сжатия для coinbase обязательств по сделке

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


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

В Bitcoin сегодня различные схемы, как P2Pool или UTXO установить обязательства Предполагается, что требует добавления некоторых обязательных данных в транзакции coinbase. Для того, чтобы доказать, обязательные данные присутствуют вы должны затем передать всю транзакцию coinbase. Coinbase транзакции могут быть большими, например, в p2pool и Eligius как бассейны, которые платят непосредственно или по другим причинам. Теоретически, coinbase сделка может быть до размера целого блока.

Расхождения оптимизации поставить свои обязательные данные в конце сделки coinbase, а затем отправить SHA256 Midstate. Приемник может затем выполнить хэширование с обязательными данными и проверкой соглашения.

Я лично думаю, что этот проект нецелесообразен, поскольку он отшелушивает назад черный ящик хрупкой конструкции Merkle-damgеrd и может открыть некоторые новые атаки префиксов расширения, никто не подумали проверить SHA2 для ... но если это будет сделано, реализации _должны_ быть очень осторожным, чтобы избежать осложнений от захвата сериализации. Например. если вам требуется ваше последнее обязательство быть свободным выходом стоячего "OP_RETURN PUSH (данные)" может кто-то вместо того, чтобы сделать свой окончательный вывод "OP_RETURN [другие вещи] PUSH__8 + 4 + данные + Размер", А затем, что выход будет потреблять прилагаемое обязательство, а затем можно отправить неверную Midstate доказательство, что будет анализироваться по-разному в Midstate только клиентом и реализации, которые работают со всей сделкой coinbase; открывая проспект для атак.

Еще один способ сказать это то, что в связи с использованием переменной длины поля сериализации транзакций не может быть считан в обратном направлении, и поэтому ни одно приложение с помощью Midstate compression--, который по своей сути скрывает переднюю часть transaction-- не может иметь какую-либо зависимость от сериализованного структуры за "заканчивается этих байтов"..

Для применения обязательств, эти проблемы можно избежать, как p2pool делает, делая ваше правило быть специфическим для последних N байт сделки (ваше обязательство + nlocktime), независимо от того, что происходит перед ними (например, встроенными в другом выходе нормально) .. ., но я до сих пор думаю, что лучше, чтобы избежать этой конструкции полностью.
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell


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


20 ноября 2015, 3:54:59 AM   # 2
 
 
Сообщения: 1260
Цитировать по имени
цитировать ответ
по умолчанию Re: Заметки об использовании Midstate сжатия для coinbase обязательств по сделке

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





Merkle damgard строительство хрупким? Как так?
jonald_fyookball сейчас офлайн Пожаловаться на jonald_fyookball   Ответить с цитированием Мультицитирование сообщения от jonald_fyookball Быстрый ответ на сообщение jonald_fyookball

20 ноября 2015, 6:27:12 AM   # 3
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Заметки об использовании Midstate сжатия для coinbase обязательств по сделке

Merkle damgard строительство хрупким? Как так?
В Википедии есть список общих атак: https://en.wikipedia.org/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction#Security_characteristics
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

20 ноября 2015, 2:00:31 PM   # 4
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: Заметки об использовании Midstate сжатия для coinbase обязательств по сделке

Мы на самом деле делать это в Подвое. У меня были такие же мысли по поводу ослабления безопасности хэш-функции, но я не знаю ни одного успешного freestart атаки на SHA-256. Это, как мы справиться с этим:

Корневище тег Встраивание

Вложение состоит из двоичного тега, включая хэш заголовка Корневища блока, и он должен быть уникальным (не должна быть способом создать блок Bitcoin, который может быть связан с двумя различными блоками подвоя). Там нет общепринятого стандарта, где тег для Merge добычи должен быть расположен. Он может быть расположен в coinbase области coinbase сделки (первая транзакцию блока), в выходах транзакции coinbase (как правило, в качестве полезной нагрузки OP_RETURN), или в остальных операциях.

Корневище standarizes, что тег находится в coinbase сделки. Чтобы задать Корневище блок хэш, то coinbase транзакция должна включать тег RSK в какой-либо части, обычно вход или выход сценарий. Тег RSK является: подвой: RskBlockHeaderHash
«Корневище:» это ASCII строка, состоящая из байтов: 524f4f5453544f434b3a
RskBlockHeaderHash является хэш Корневище блока заголовка в двоичном формате.
Корневище тег предназначен для включения, следуя OP_PUSHDATA1 опкодами OP_RETURN, но это не является обязательным.

Следующие дополнительные ограничения:

Число байтов после RskBlockHeaderHash до конца сделки coinbase должна быть ниже или равен 128 байт.
Тропа необработанных байтов не должен содержать двоичную строку "Корневище:", 52 4f 4f 54 53 54 43 4f 4b 3a
Вероятность тега RSK появляться случайно ничтожна, но бассейн сервера не должен исключающей возможности мошенника Bitcoin адреса включены в выходе coinbase сделки, имеющие этот шаблон, и используются в качестве атаки, чтобы сломать законность слияние разминированного заголовок.
Ограничение на количество байтов последних тега в общем случае означает, что метка находится в пределах последних 4 выходов сделки coinbase.
Это ограничение позволяет создать сжатую SPV доказательства для Подвоя, которые состоят из:
Заголовок Bitcoin (80 байт)
Меркл Отделение по сделке Coinbase (около 320 байт)
В середине-состояние SHA-256 потребляя глава coinbase сделки (32 байта)
64 байт, содержащий фрагмент выровнен след от coinbase сделки, в том числе тега RSK (макс. 232 байт). Тропа позволяет построить доказательство того, что след принадлежит coinbase сделке в качестве бесплатного запуска хэша, начиная с заданным средним состоянием.
В настоящее время максимального размера SPV слияния добыча доказательства 843 байт.
 
Кроме того, мы можем продлить тег до 22 байт для предотвращения OP_HASH160 OP_EQUALVERIFY от того, чтобы можно Корневище тег.

GMaxwell говорит, я полагаю, что это уже сделано.

Как вы думаете, она должна быть лучше использовать короткую вторую транзакцию для хранения тега? Это требует больше места и требует наличия зрелых UTXOs готов к употреблению для этой цели. Это усложняет все.

С уважением

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

24 ноября 2015, 5:05:58 PM   # 5
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: Заметки об использовании Midstate сжатия для coinbase обязательств по сделке

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

1. Безопасность сопротивления прообраза SHA-256 в битах составляет 256 бит. Если SHA-256 были 100% гарантии безопасности, злоумышленник, который хочет, чтобы повторно использовать POW другого объединения разминированный блока необходимо выполнить 2 ^ 256 операций. Эта атака никогда не будет иметь практическое значение для SHA-256, даже имея свободный старт. Там есть и не будет успешной практической прообразом атаки на любой из когда-то стандартных хэш-функций (включая MD5, SHA-1 и т.д.). Лучший теоретический прообразом атака на разбитой MD5 требуется 2 ^ 125 операций, что значительно больше, чем затруднили ПР.

2. Более простая атака сначала попытаться найти два или более свободного начало столкновений в coinbase, а затем создать блок слияния-заминировано. Безопасность сопротивления столкновения SHA-256 составляет 128 бит.

Лучшие freestart атака на SHA-1 требуется около 2 ^ 60 операций и производит только одно столкновение (это не распространяется на создание нескольких столкновений). Там нет известной свободного старта столкновения уязвимости в полном SHA-256.

В качестве примера, предположим, что полное свободное столкновение начало, которое требует 2 ^ 100 операций найдено. Это будет иметь разрушительные последствия для SHA-256, и все (в том числе Bitcoin) начнут отходить от SHA-256. Тем не менее, он по-прежнему не будет влиять на этот конкретный вид использования.

Мы можем предположить, что Bitcoin доказательство правильности работы не будет иметь более чем 100 нулевой префикс битов в течение следующих 50 лет (предполагается, что закон Мура остается верным, и производительность на ватт продолжает расти в геометрической прогрессии, так как в настоящее время Bitcoin ПР имеет около 72 нулевых битов) , И это будет очень позитивный сценарий, так как награда Bitcoin будет 4096 раз ниже, чтобы идти в ногу с тем же количеством горнорудной хэширования власти Bitcoin необходимо будет 4096 раз более ценным (1 BTC = 1,3М USD) или каждый блок должны были бы быть 400 ГБ платить достаточно сборов.

Но операции, участвующие в поиске столкновения не эквивалентны хэш-операции для военнопленных (SHA256D). Там не будет предварительно построен оптимизированный СИС для выполнения такой атаки, и атака потребует использования графических процессоров. Таким образом, мы можем ожидать еще одно соотношение производительности 1000x между ними (10 бит).
 
3. Как правило, приступы начинают быть непрактичным, а затем они получают медленно лучше с течением времени, поэтому, когда начальная уязвимость найдена, есть много времени, чтобы жесткий вилкой. Предполагая, что атака производит только одно столкновение, и успешный и немедленный приступ найден, следствие будет короткий период очень быстрых блоков (например, 1 секунду), а затем при помощи регулировки сложности, что позволит предотвратить слитый блок-цепь из растет без ограничений. Это дало бы много времени для жесткой вилки, что делает атаку бесполезно.

4. Даже если атака может найти много столкновений сразу, было бы очень легко, чтобы предотвратить повторное использование заголовков Bitcoin, не допуская повторения заголовка Bitcoin в последние 100 добываемых блоков. Проверка временной метки блока Bitcoin, а не позволяя использовать старый заголовок (например, метка времени заголовка должна быть не старше, чем 1 час, или средний временной метки из последних 10 блоков) также может помочь.

5. Наступление будет немедленно обнаружен как coinbase части, представленной бы, конечно, не будет действительным coinbase сделка хвост.

Поэтому я ожидаю, что использование в середине состояния для coinbase сжатия в слиянии добычи не будет проблемой в течение следующих 50 лет. 
 
Sergio_Demian_Lerner сейчас офлайн Пожаловаться на Sergio_Demian_Lerner   Ответить с цитированием Мультицитирование сообщения от Sergio_Demian_Lerner Быстрый ответ на сообщение Sergio_Demian_Lerner



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW