Pull to refresh

О сегодняшней ошибке в системе Bitcoin

CryptographyPayment systems


Сегодня, около часа ночи UTC, по сети Bitcoin было разослано экстренное предупреждение остановить поиск новых блоков (майнинг) на клиентах версии 0.8. На bitcointalk.org появилось сообщение, призывающее к тому же. Кроме того, предлагалось приостановить любые действия связанные с отправкой BTC.



Произошло же следующее. Клиент сети версии 0.8 сгенерировал блок номер 225430 (000000000000015c50b165fcdd33556f8b44800c5298943ac70b112df480c023) содержащий 1752 транзакции. Это оказалось слишком много для клиентов версии 0.7 и более старых. Библиотека Berkley DB, используемая для хранения блоков не смогла импортировать этого монстра и блок не был признан валидным на всех клиентах версии < 0.8.

То есть, все активные клиенты сети Bitcoin разделились на тех, кто принял 000000000000015c50b165fcdd33556f8b44800c5298943ac70b112df480c023, и на тех кто отказался от этого блока и принял в цепочку другой, меньший, блок 00000000000001c108384350f74090433e7fcf79a606b8e797f065b130575932, содержащий 797 транзакции.

А это безобразие. Целостность сети была нарушена. Несколько часов противоборствующие клиенты не могли решить какая цепочка более правильная и создавали новые блоки для своих цепочек. В сети Bitcoin есть средство для автоматического выхода из подобных затруднений: на веру принимается более длинная цепочка блоков. Но без административных мер, эта система бы не сработала. Значительная часть клиентов, и, что более важно, многие пулы шахтеров (майнеров), уже обновились на версию 0.8. Если бы добыча, поиск новых блоков, не был остановлен на этой версии, то сейчас бы мы имели два варианта биткойна, стремительно расходящиеся все дальше и дальше. Вместе с кучей вполне уже настоящих денег, которые в них заключены. К счастью, этого не произошло. По состоянию на сейчас, цепочка происходящая от 00000000000001c108384350f74090433e7fcf79a606b8e797f065b130575932 победила.

Но осадочек остался. Дело даже не в том что в коде, поддерживающем систему Bitcoin могут находиться баги, они есть везде. Но в том, кто все это контролирует. Это происшествие наглядно показало, что даже такая хорошо продуманная система уязвима против произвола очень немногих людей, а именно, владельцев шахтерских пулов. Более 70% новых блоков сейчас находятся именно в пулах, а не на отдельных клиентах. Идея лежащая в основе системы, что большинство добропорядочных людей может противостоять немногим злодеям, буде таковые появятся, в настоящее время не работает. Победителем в возможной схватке станет тот, у кого толще вычислительные мощности, и только.


UPD: К сожалению, не обошлось без последствий. Случилась почти двойная трата. 211 BTC, что эквивалентно приблизительно $10000 по нынешним ценам, были потрачены дважды. Почти, потому что в соответствии с основной цепочкой блоков деньги были потрачены только однажды. Но процессинг платежной системы, в напряженных условиях прошлой ночи, отработал дважды, для обеих цепочек блоков. Транзакция. Подробности.
Tags:bitcoinбиткоинпроисшествия
Hubs: Cryptography Payment systems
Total votes 98: ↑82 and ↓16 +66
Views44.7K

Popular right now

Distributed Systems Engineer
from 8,000 $Cube.jsRemote job
Ведущий блокчейн разработчик
from 400,000 to 600,000 ₽Lunu Solutions GmbHRemote job
Senior QA Engineer (Growth)
from 2,500 to 3,500 $PandaDocRemote job
Системный администратор
from 78,000 to 88,000 ₽ГринписМосква

Top of the last 24 hours