- Вернуться к меню
- Вернуться к менюЦены
- Вернуться к менюИсследовать
- Вернуться к менюКонсенсус
- Вернуться к менюПартнерский материал
- Вернуться к меню
- Вернуться к меню
- Вернуться к менюВебинары и Мероприятия
Риск двойных расходов сохраняется после форка Bitcoin 4 июля
Форк в сети Bitcoin поднял вопросы относительно того, как ключевые участники платежной сети обрабатывают и подтверждают транзакции.
Задержка внедрения обновления Bitcoin CORE небольшим числом майнеров сети привела к добавлению недействительных блоков транзакций в блокчейн Bitcoin в эти выходные.
Результатом стал форк в сети, который создал две версии блокчейна Bitcoin , которые продолжались шесть блоков 4 июля. Еще три недействительных блока были добавлены в блокчейн при повторении проблемы на следующий день.
В результате разработчики CORE вынесено предупреждение на Bitcoin.org с просьбой к поставщикам кошельков усилить контроль входящих транзакций из-за риска двойного расходования средств из-за расхождений между цепочками.
В публикации, которая все еще доступна на сайте, этим организациям рекомендуется подождать еще 30 подтверждений, прежде чем считать транзакции действительными.
Корень проблемы
В основе проблемы, вероятно, лежит децентрализованная природа блокчейна Bitcoin и степень контроля его участников над тем, как они вносят свой вклад в проверку транзакций в распределенном реестре цифровой валюты.
Например, эта возможность для пользователей иметь определенный контроль над тем, как они взаимодействуют с сетью, приводит к тому, что майнеры могут игнорировать изменения программного обеспечения, а сеть продолжает работать, даже если они это делают.
В качестве меры предосторожности разработчики CORE решили дождаться, пока большинство майнеров внесут изменения. В этом случае, БИП66 – софтфорк Bitcoin , призванный сделать сеть менее зависимой от анализа подписей OpenSSL – заявил, что некоторые блоки транзакций, созданные без этого обновления, будут считаться недействительными, как только большинство – 950 из 1000 блоков – будут добыты с помощью последней версии.
Теоретически риск возникновения проблемы был низким, поскольку только 5% сети работали на устаревшей версии BIP66. Однако на практике три пула, работающие на облегченных версиях программных элементов, смогли обработать шесть последовательных блоков, которые должны были быть недействительными, создав две версии блокчейна Bitcoin , самая длинная из которых работала на старом программном обеспечении.
В этом случае некоторые майнинговые пулы былиSPV-майнинг, что означает, что они не проверяли полную версию блокчейна Bitcoin . В свою очередь, эти недействительные блоки считались действительными поставщиками кошельков Bitcoin и обозревателями блоков, использующими версии программного обеспечения SPV, в отличие от полных узлов со всей историей реестра.
Фабио Федеричи, генеральный директор поставщика блокчейн-аналитики Coinalytics, объяснил CoinDesk:
«Клиенты SPV заявляли, что будут Социальные сети правилам BIP66, но на самом деле они их не соблюдали. Большая часть майнинговой сети не работает на полных узлах, которые бы проверяли каждую транзакцию».
Хотя это и было инициировано F2Pool, если бы другие майнинговые пулы запустили полный узел для обработки всего блокчейна Bitcoin , недействительные блоки должны были бы обнаруживаться быстрее.
Общий консенсус
Хотя это не является чем-то необычным для обновлений программного обеспечения, ситуация была примечательной, поскольку недействительный блок впоследствии был построен на базе более крупной майнинговой сети.
Питер Грей, основатель API-разработчика Bitcoin Coinkite, отметил, что проблемы с обновлениями программного обеспечения возникают часто из-за постоянных обновлений платежной сети.
«Я думаю, полезно напомнить людям, что форки Bitcoin происходят каждую неделю. Обычно за неделю теряется только один блок, и это не ошибка, не атака и т. д. Просто так работает Bitcoin », — сказал Грей.
Майнинговые компании, которые решали проблему с недействительными блоками, потеряли доход из-за необходимости исправления проблемы. По оценкам Bitcoin.org, у F2Pool, AntPool и BTC Nuggets фактически удержано 50 000 долларов дохода. три майнинговых пулачто фактически создало и на короткое время распространило недействительную цепочку.
В конечном итоге вознаграждения так и не были выплачены, поскольку выигрыш в размере 25 BTC за блок был отправлен на Bitcoin -кошелек, который сделал блоки недействительными после синхронизации с действительной цепочкой.
Последствия
В своем предупреждении Bitcoin.org сообщил, что клиенты, чьи транзакции с Bitcoin были подтверждены до полуночи (UTC) 6 июля, не пострадали от сбоя, хотя считается, что транзакции, проведенные после этого времени, имеют «значительно менее надежные» показатели подтверждения.
Bitcoin.org объяснилподтверждениенедействительные блокисвязано с тем, что клиенты программного обеспечения не обновляются до Bitcoin CORE 0.9.5 или более поздней версии, и предупреждается, что облегченные кошельки, использующие SPV, и веб-кошельки особенно уязвимы для этой ошибки.
Предупреждая, что проблема остается нерешенной, Bitcoin.org призвал пользователей «ждать на 30 подтверждений больше», чем обычно, прежде чем принимать транзакцию как действительную. Он также рекомендовал майнерам перейти на пул, который проверяет блоки транзакций с использованием полного узла, а отдельным майнерам — использовать Bitcoin CORE 0.10.2.
Что касается более масштабных выводов, то авторы комментариев предположили, что это событие следует использовать как напоминание о необходимости для ключевых участников сети Bitcoin запускать полные узлы.
«Ключевым выводом является распределение полных узлов по сравнению с узлами SPV. Каждый должен запускать полный узел, и, возможно, это T имеет экономического смысла или у клиента SPV есть другие преимущества, но это сопряжено с риском», — продолжил Федеричи.
В подготовке репортажа принимала участие Йесси Белло-Перес.
Изображение развилки дороги через Shutterstock
Pete Rizzo
Пит Риццо был главным редактором CoinDesk до сентября 2019 года. До прихода в CoinDesk в 2013 году он был редактором источника новостей о платежах PYMNTS.com.
