В Ethereum произошла реорганизация более 450 блоков
В результате эксплуатации бага в Go Ethereum (более известного как geth), самого популярного клиента сети Ethereum, произошла реорганизация блоков сети. Всего было затронуто более 450 блоков. Разработчики Ethereum сообщили об этом в твиттере, добавив что такое поведение стало возможно после публикации информации о баге в geth. Сам баг был устранён ещё пару дней назад, после чего была выпущена новая версия Geth v1.10.8. Разработчики попросили всех обновить ПО, но мало кто вообще обратил на это внимания.
Такому большому багу способствовали крупные майнинговые пулы, такие как Flexpool, BTC.com и Binance которые не провели своевременного обновления (на момент написания статьи BTC.com и Binance уже обновились).
На данный момент пользователям советуют не производить никаких важных экономических транзакций.
Что такое реорганизация блоков
В сети с консенсусом Proof-of-Work, если два майнера одновременно находят новый блок, то оба посчитают действительным каждый свой блок. С этого момента в сети появится непреднамеренный форк. Между майнерами начинается гонка за количество следующих найденных блоков. После того как один из двух майнеров найдёт большее количество блоков, его цепочка будет считаться самой верной и будет поддерживаться большинством нод. Сам блокчейн пойдёт по пути построенному майнером с большим количеством блоков. Невостребованные блоки найденные от другого блока будут игнорироваться.
Само по себе такое событие является нормальным поведением PoW сети. У крупных блокчейнов такое происходит около одного раза в неделю. Событие при котором находятся два блока (то есть за первым одновременно найденным блоком одновременно находится второй) происходит редко, около раза в год. Естественная реорганизация в три блока ещё не наблюдалась на практике, на столько она редка.
Транзакции которые находились в невостребованном блоке не эффектятся при условии что они также находились и в «выигрышном» блоке. Если они не находились в выигрышном блоке, то они попадают в мемпул и ожидают своей очереди.
Может показаться что такое поведение может способствовать двойному расходованию, однако это не так. Но при этом возникает вероятность что владелец ложной цепи может «подбросить» ненастоящую транзацию в настоящую цепочку и когда блоки ложной цепи окажутся недействительными, то основная сеть может посчитать подброшенную транзакцию настоящей.
В случае Ethereum, 450 блоков хоть и являются большим количеством, но не в масштабах целой сети и при условии что об уязвимости уже известно, вероятно это не создаст вообще проблем. Растущий курс это подтверждает.
Но были и более плачевные случаи, например некогда популярная валюта Verge (XVG), входившая в топ-100 подверглась такой уязвимости. В начале 2021 года было обнаружено, пожалуй самая крупная реорганизация блоков, длинной в 560 тысяч блоков (сравните с эфиром). Причем началом такой цепи был июль 2020 года. В ходе такой реорганизации сеть была скомпрометирована, а многие транзакции утеряны. Сейчас XVG мало кто помнит и даже недавний памп биткоина практически не повлиял на курс валюты.