Что такое сальность транзакций?

Биткойн-обмен MtGox заявил в в этом пресс-релизе , что «транзакционная податливость» заставила их прекратить отправку биткойнов. A недавний вопрос спросил, действительно ли это проблема. Но что такое переносимость транзакций в первую очередь?

23 голоса | спросил pyramids 11 FebruaryEurope/MoscowbTue, 11 Feb 2014 05:20:45 +0400000000amTue, 11 Feb 2014 05:20:45 +040014 2014, 05:20:45

1 ответ


19

Операции биткойнов имеют идентификатор транзакции (txid), сформированный как хэш по данным, участвующим в транзакции. Это говорит о том, что это уникальный идентификатор транзакции.

Тем не менее, tx-id транзакции уникален только после того, как точные данные в транзакции были завершены путем включения в блок-цепочку (и подтверждено). До тех пор существуют хаки, которые позволяют изменять базовые данные и хэш. Это не проблема безопасности, потому что невозможно изменить количество биткойнов, переданных от ввода какого-либо результата. Но детали, такие как формат, который содержит криптографическая подпись, подтверждающая, что вход авторизует транзакцию, или точный скрипт подписи, могут быть изменены: они податливы, что делает хэш или транзакционный идентификатор податливым.

Это не должно быть большой проблемой. Но это, если вы построили свою обработку биткойнов в предположении, что идентификаторы транзакций не податливы, как это может иметь MtGox. Вы также должны быть осторожны в том, чтобы тратить неподтвержденные транзакции, потому что это работает только в том случае, если никто не изменяет промежуточные идентификаторы транзакций. Ничто из этого не является проблемой в стандартном клиенте Bitcoin, но если вы откатываете свой собственный, особенно если вы хотите использовать только один биткойн-адрес для обработки многих отдельных транзакций, то быстрые стрельбы, непосредственно связанные с неподтвержденным предыдущим, ошибка сделать. Если люди изменили идентификаторы транзакций из изъятий MtGox, а MtGox принял такой быстрый подход, это может объяснить, почему было много жалоб на то, что они никогда не поступают. Изменение одного идентификатора транзакции в цепочке неподтвержденных транзакций делает недействительными все транзакции преемника, пока создатель ресинхронизирует с блочной цепочкой, а не свою идею о том, какие транзакционные идентификаторы он отправил.

EDIT: гораздо более подробное объяснение можно найти в эта новостная статья кварца

ответил pyramids 11 FebruaryEurope/MoscowbTue, 11 Feb 2014 05:20:45 +0400000000amTue, 11 Feb 2014 05:20:45 +040014 2014, 05:20:45

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132