
Аналитики биржи криптодеривативов BitMEX в среду поделились любопытным наблюдением о том, что в блокчейне биткоина был замечем так называемый «stale-блок», то есть полностью действительный блок, который не был включен в финальную версию блокчейна.
[1/2] There was a stale Bitcoin block today, at height 666,833. SlushPool has beaten F2Pool in a race.
It appears as if a small double spend of around 0.00062063 BTC ($21) was detectedhttps://t.co/o8lz9xagYG pic.twitter.com/IEdPu8JEjt
— BitMEX Research (@BitMEXResearch) January 20, 2021
На своем специализированном портале для отслеживания подобных инцидентов ForkMonitor она пишет, что «множество блоков было выпущено на высоте 666833». Часом позднее транзакцию в несостоявшемся блоке BitMEX связала с операцией RBF, когда неподтвержденная транзакция заменяется другой с более высокой комиссией. На ForkMonitor, однако, говорится: «Никаких замен комиссий обнаружено не было».
Использованные BitMEX выражения и технический характер произошедшего породили волну слухов о том, что в блокчейне биткоина действительно состоялось повторное расходование транзакции.
Подтверждение этой информации стало бы разрушительной новостью для биткоина, так как еще в оригинальном white paper Сатоши Накамото заявлял о решении проблемы повторного расходования, которая ограничивала продвижение проектов цифровых валют до него.
Информацию о предполагаемом повторном расходовании в блокчейне биткоина подхватили крупнейшие мировые финансовые СМИ. Так, Business Insider выпустил материал под заголовком «Биткоин падает на 10% после отчета, предполагающего возможное проявление критической уязвимости в криптовалюте под названием “повторное расходование”».
Макростратег Марк Кадмор в блоге Bloomberg Market Live опубликовал предупреждение о том, что у «биткоина может быть серьезная проблема».
Нужно отдать Кадмору должное, потому что спустя несколько часов он признал, что никакого повторного расходования не было. «Хотя движение курса было резко негативным, тот факт, что биткоин все еще торгуется выше $30 000, развенчивает идею о его взломе каким-либо образом. Как отметил один из читателей, он бы “уже был близок к нулю”, если бы это было правдой», – добавил Кадмор.
BitMEX, со своей стороны, написала: «Было две конфликтующих транзакции, каждая в одной из двух конкурирующих цепей. Видимая ситуация с “повторным расходованием” была быстро решена в пределах одного блока. Приносим извинения, если наши формулировки оказались вводящими в заблуждение. В следующий раз мы будем стараться лучше».
Что произошло на самом деле?
Лучше, чем кто-либо еще, произошедшее способен объяснить известный эксперт по биткоину Андреас Антонопулос.
A more detailed explanation of the whole
"A double-spend broke Bitcoin" FUD that was circulated by an irresponsible publication.
1/
— Andreas M. Antonopoulos (@aantonop) January 21, 2021
Так, Антонопулос поясняет, что в блокчейне произошла реорганизация – обычное явление, составляющее часть нормального функционирования биткоина. Это результат децентрализованного консенсуса по модели Proof-of-Work и происходит во всех PoW-цепях.
Два блока были добыты почти одновременно. Они конкурировали за одну высоту в блокчейне, то есть имели одного родителя и пытались продлить цепь на одинаковый порядковый номер. В долгосрочной перспективе может быть принят только один из них. Возможны ситуации, когда разные ноды и майнеры видят один или другой блок первым и считают его победителем. Это также одна из характеристик нормального функционирования децентрализованного алгоритма консенсуса.
Со временем, в среднем через 10 минут, выходит следующий блок, который имеет родителем один из двух конкурирующих блоков. Какой? Который добывший новый блок майнер увидел первым и посчитал победителем. Новый блок продолжает цепь, решая проблему. Из двух изначально конкурировавших блоков один является родителем нового блока, а второй – завершающим в более короткой цепи.
Подобные реорганизации глубиной в один блок в среднем происходят раз в пару недель и являются следствием использования децентрализованного алгоритма PoW. Реорганизации на два блока происходят реже – возможно, несколько раз в год. Реорганизации в три блока встречаются крайне редко. Антонопулос таких не припоминает.
Во время реорганизации есть вероятность того, что кто-то попытается осуществить повторное расходование. Тем не менее, это не будет повторным расходованием с перспективы всего блокчейна. В конечном итоге засчитывается только одно расходование, поэтому повторное расходование не происходит. В этом заключается весь смысл консенсуса по методу PoW.
С перспективы получателя ситуация может выглядеть иначе. Он может увидеть транзакцию, которая, предположительно, имеет одно подтверждение (она включена в блок), а потом эта транзакция исчезает вместе с отклонением блока. Поэтому большинство сервисов для зачисления депозита запрашивает больше одного подтверждения.
Сатоши предлагал отталкиваться от шести подтверждений, чтобы считать транзакцию завершенной. Он даже подсчитал вероятность отвержения блока в зависимости от числа подтверждений. Это единственный математический расчет, встречающийся в white paper биткоина.
Антонопулос, со своей стороны, заявляет, что число подтверждений всегда должно зависеть от суммы транзакции. Так, продавая автомобиль за $11 000, он посчитал достаточным дождаться трех подтверждений. Одновременно он допускает, что мог бы продать дом вообще без подтверждений транзакции, если бы ее отправляли его знакомые, которых он при необходимости смог бы найти. При этом во время обмена криптовалют он предпочитает опираться на шесть подтверждений, так как не сможет вернуть деньги, если что-то пойдет не так.
Во время последней реорганизации транзакция на $22 оказалась в двух конкурирующих блоках. Мы не знаем почему или кто. Но в этом нет ничего невозможного. Это часть протокола. Многие приняли бы транзакцию на $22 с одним подтверждением. В худшем случае они потеряли бы что-то, что отдали за эти $22 немедленно и безвозвратно. Многие поставщики кредитных карт не требуют предоставления подписи на суммы меньше $25 по той же причине: хотя такую транзакцию без подписи можно оспорить, она не стоит дополнительных затрат времени. Такая же модель риска применима и к биткоину.
Мы даже не знаем, потерял ли получатель транзакции деньги. Он мог ждать двух подтверждений и до этого момента не исполнять свои обязательства. Антонопулос считает ситуацию, когда кто-то принял бы транзакцию на $22 млн с одним подтверждением, как предполагал сторонник Bitcoin SV, абсолютно невозможной.
Будь в курсе! Подписывайся на Криптовалюта.Tech в Telegram.
Обсудить актуальные новости и события на Форуме