С момента своего создания сеть биткоина сталкивалась с несколькими серьёзными багами, но самый опасный из них был обнаружен в 2010 году. Разработчик биткоина Джефф Гарзик заметил, что у биткоин-блока 74638 довольно странные выходные данные. Каждая транзакция в этом блоке стоила колоссальных 92233720368.54 биткоинов.
Сообщество быстро прослышало о баге, а один из пользователей запустил тему под названием «Серьёзная ошибка переполнения целочисленной переменной». Так, ошибка переполнения целочисленной переменной привела к созданию 184 млрд. биткоинов «из воздуха». Bitcoin Wiki в общей сложности насчитала 40 различных багов в сети биткоина, но ни один из них не был таким потенциально опасным.
Внимание к этому багу было усилено тем, что общее количество добытых биткоинов даже теоретически не может превышать 21 млн., а этот баг «предлагал» 184 млрд. монет, что вызвало тревогу среди разработчиков. Проблема возникла из-за отрицательной целочисленной переменной, что привело к значительному увеличению стоимости транзакции. Один из пользователей форума объяснил:
«Обычно входные суммы транзакций равны выходным. Исключение составляют случаи, когда за транзакцию взимается комиссия. Сеть позволяет любому добровольно заплатить любую сумму в качестве комиссии. Таким образом, когда сумма была отрицательной, разница между входной и выходной суммой отображалась как комиссия, и она даже прошла все проверки».
Неизвестный злоумышленник обнаружил эту ошибку и использовал её для того, чтобы сгенерировать такое смешное количество биткоинов. Если бы он сгенерировал более скромную сумму, то ошибку могли заметить намного позднее, и в целом последствия для биткоина могли быть просто катастрофическими – как с финансовой, так и психологической точки зрения.
Однако разработчики отреагировали быстро, и патч был сделан в течение 2 часов после обнаружения бага.
[…] за несколько часов. Если бы команда разработчиков не отреагировала вовремя, то хакер мог нанести серьёзный удар по репутации […]
[…] Источник: coinspot.io Метки: #Bitcoin#биткоин#блокчейн Share76Tweet47 […]
[…] Один исторический баг биткоина, который мог привести к…; […]
Не понимаю. Зачем нужно 50% узлов без бага?
Биткоин построен на модели «истина — то, что признано большинством хешрейта». То есть, в предположении одинакового хешрейта узлов, большинством узлов.
[…] Источник: coinspot.io Метки: #Bitcoin#биткоин#блокчейн Share76Tweet47 […]