Джоук Хофман (ник Jouke) из Нидерландов вклинился в разговор, заявив, что тоже сталкивался с расхождениями в номерах блоков. Тогда sipa предложил несколько вариантов разрешения проблемы, но ни один не сработал. В ходе беседы участники продолжали проверять номера блоков в блокчейне на разных сайтах. Расхождения продолжали появляться. В конце концов в 23:06 по гринвичскому времени разработчик программного обеспечения для майнинга Люк Дашжр (ник luke-jr) понял, что случилось.
23:06. Luke-jr: Итак??? Увы, случайное раздвоение блокчейна?:х
23:06. Jouke: Вот тебе и на!
Теоретически блокчейн должен быть только один. По идее, он последовательно формируется на основе хеш-связей, создающих неразрывную, монолитную запись всех подтвержденных транзакций. Время от времени в блокчейне появляются раздвоения: возникает брошенный блок – незавершенный или содержащий неподтвержденные транзакции. Другие майнеры стремятся верифицировать его, но иногда бывают не уверены в его легитимности и возможности присоединять к нему свои блоки. Но гениальность построенной на общем согласии биткоиновой системы состоит в том, что такие раздвоения не могут существовать долго. Ведь сообщество майнеров действует, исходя из предположения о том, что легитимной считается самая длинная ветвь блокчейна. Большинство майнеров, работая совместно над конкретной ветвью блокчейна, подтверждают ее легитимность, поскольку в совокупности обладают б
В данном случае эта стандартная процедура устранения расхождений не сработала. Обе ветви блокчейна продолжали расти. Это означало, что единого списка подтвержденных транзакций больше не существует. Представьте себе, что половина обитателей нашего воображаемого села на острове Яп вдруг решила пересмотреть балансы камней фэй, принадлежащих односельчанам, и внедрить свой вариант списка. Такой ситуацией могут воспользоваться мошенники, чтобы платить одними и теми же биткоинами дважды – например, если администратор майнингового пула, который отвечал, скажем, за верификацию 30 % объединенного блокчейна, получал полный контроль над одной из двух ветвей и мог заставить электронные кошельки отправлять уже израсходованные биткоины друг другу.
Расчет делается на то, что другие майнеры признают эту транзакцию легитимной, равно как и баланс в кошельках, с которых эти биткоины уже давно списаны в результате предшествующих транзакций. Обычно большинство майнеров замечают эти манипуляции и переходят на более длинную легитимную ветвь блокчейна, но при неустраненном раздвоении блокчейна крупный пул майнеров, обладающий более чем 50 % вычислительного ресурса, использует его для поддержания ошибочной ветви блокчейна, верифицируя мошеннические транзакции. Если пустить ситуацию на самотек, можно разрушить целостность всей биткоиновой системы.
Вуилле быстро понял, что конкретно это раздвоение вызвано отнюдь не действиями алчного хакера, а программным глюком, случившимся в результате внедрения его коллегами из группы администрирования новой версии 0.8 биткоиновой программы. Предполагалось, что ее реорганизованная база данных объединится с базой данных 0.7, но этого не произошло. Вскоре в дело вмешался ведущий разработчик Андресен. Проконсультировавшись с Вуилле и еще двумя базовыми разработчиками, Джеффом Гарзиком и Грегори Максвеллом, а также переговорив с владельцем биткоиновой биржи Mt. Gox, которая на тот момент была наиболее крупным финансовым учреждением биткоиновой сети, Марком Карпелесом (ник MagicalTux), Андресен решил отказаться от новой версии программного обеспечения 0.8 и вернуться к старой версии 0.7.