Один исторический баг биткоина, который мог привести к его уничтожению

С момента своего создания сеть биткоина сталкивалась с несколькими серьёзными багами, но самый опасный из них был обнаружен в 2010 году. Разработчик биткоина Джефф Гарзик заметил, что у биткоин-блока 74638 довольно странные выходные данные. Каждая транзакция в этом блоке стоила колоссальных 92233720368.54 биткоинов.

Сообщество быстро прослышало о баге, а один из пользователей запустил тему под названием «Серьёзная ошибка переполнения целочисленной переменной». Так, ошибка переполнения целочисленной переменной привела к созданию 184 млрд. биткоинов «из воздуха». Bitcoin Wiki в общей сложности насчитала 40 различных багов в сети биткоина, но ни один из них не был таким потенциально опасным.

Внимание к этому багу было усилено тем, что общее количество добытых биткоинов даже теоретически не может превышать 21 млн., а этот баг «предлагал» 184 млрд. монет, что вызвало тревогу среди разработчиков. Проблема возникла из-за отрицательной целочисленной переменной, что привело к значительному увеличению стоимости транзакции. Один из пользователей форума объяснил:

«Обычно входные суммы транзакций равны выходным. Исключение составляют случаи, когда за транзакцию взимается комиссия. Сеть позволяет любому добровольно заплатить любую сумму в качестве комиссии. Таким образом, когда сумма была отрицательной, разница между входной и выходной суммой отображалась как комиссия, и она даже прошла все проверки».

Неизвестный злоумышленник обнаружил эту ошибку и использовал её для того, чтобы сгенерировать такое смешное количество биткоинов. Если бы он сгенерировал более скромную сумму, то ошибку могли заметить намного позднее, и в целом последствия для биткоина могли быть просто катастрофическими – как с финансовой, так и психологической точки зрения.

Однако разработчики отреагировали быстро, и патч был сделан в течение 2 часов после обнаружения бага.

Сатоши Накамото тогда был «у руля», и активно участвовал на форумах, отслеживая связанные с багом события. Сатоши несколько раз писал в сообществе новости о прогрессе устранения этой ошибки. Одно из его сообщений было следующего содержания:

«Как только более 50% узлов обновятся, а количество блоков без бага станет больше, то узлы биткоина в версии 0.3.10 сделают невозможным подтверждение «плохих» транзакций».

Позже Сатоши Накамото оставил свой проект, передав в руки других разработчиков технологию блокчейн, которая может совершить настоящую революцию, особенно в мире финансов.

Источник

[ ОБСУДИТЬ НА ФОРУМЕ ]