Технически говоря, уничтожить биткоины невозможно. Но можно отправить монеты на unspendable address, сделав их недоступными для всех дальнейших действий и целей.
В октябре 2011 года именно так поступил Марк Карпелес, отправив 2609 BTC в вечное небытие из-за ошибки в скриптах.
История Биткоина, часть 16: Первый взлом Mt. Gox
Как уничтожить недельную прибыль в один клик
В предыдущей части «Истории Биткоина» Mt. Gox летом 2011 года пережила свой первый взлом. Менее чем через четыре месяца ее незадачливый генеральный директор Марк Карпелес пережил еще один позорный эпизод, уничтожив недельный доход биткоин-биржи.
По сравнению с другими убытками, которые пришлось пережить Gox, этот случай был каплей в море, и поэтому в некоторой степени утерян для истории. Однако этот инцидент заслуживает повторного внимания, поскольку является поучительной историей об опасности вмешательства в работу биткоин-клиента и примером того, как уничтожать монеты.
Большинство участников биткоин-сообщества узнали об этом событии, как и о многих других инцидентах раннего периода, на форуме Bitcointalk, где 29 октября 2011 года пользователь genjix начал тему под названием «Кто-то облажался и потерял кучу денег». В качестве объяснения они разместили следующий код:
Немногие читатели, взглянув на код, поняли бы, в чём дело, но genjix был наготове, чтобы объяснить.
Стандартный скрипт транзакции, который в данном случае читался как «76a90088ac», должен был содержать «14» вместо «00», что на языке скриптов означает пуш 0 байт. Это транзакция, которая была отправлена в никуда. Очевидно, кто-то взламывал Биткоин или создавал пользовательскую версию и что-то напутал — хотя я понятия не имею, для чего он делал это с таким количеством денег.
Ответ на этот последний вопрос не заставил себя долго ждать — он был получен из Internet Relay Chat (IRC), где владелец Mt. Gox Марк Карпелес, он же Magic Tux, признался, что именно он создал ошибочный сценарий транзакции и сжег 2609 BTC:
Это проблема, но не самая худшая проблема, с которой мы когда-либо сталкивались. Все неудачные выводы были пересозданы. Только что потеряна одна неделя прибыли в BTC.
Чтобы не оставалось сомнений, пользователь Bitcointalk «BTCurious» написал: «Они пропали. Никаких шансов на восстановление».
Мать всех невозвратных транзакций
Отправка монет на неправильный или несуществующий биткоин-адрес происходит крайне редко. Все биткоин-адреса имеют контрольную сумму, что значительно снижает вероятность случайного ввода неправильного адреса. Однако Карпелес возился с Bitcoin-клиентом и выбрал для эксперимента ценную транзакцию. Как он признался в IRC:
Мне нужно ограничить количество входов в транзакции, похоже, что обычному Биткоину не нравится транзакция с 293 входами.
BTCurious объяснил это на форуме Bitcointalk:
Протокол Биткоина может гораздо больше, чем просто отправка монет из пункта А в пункт Б, хотя именно это в основном сейчас можно увидеть в обычном клиенте. Однако майнеры должны принимать и «необычные транзакции», если они соответствуют протоколу Биткоина.
Еще один удар по технической репутации Gox
Реакция на ошибку Карпелеса была неоднозначной, в IRC разгорелись бурные дебаты по поводу того, следует ли ограничить возможности Биткоина по созданию сценариев, чтобы предотвратить подобную ошибку. Однако это не так просто, как кажется, отметил разработчик Bitcoin Core Грегори Максвелл:
Нет, протокол делает возможным МНОГО вещей. Транзакции — это небольшие программы, управляющие их погашением. Вероятно, не существует полиномиального времени, за которое можно определить все неизрасходованные транзакции.
Один из пользователей IRC не захотел списать инцидент на невезение, описав его как «еще один удар по технической репутации mtgox».
«И это парень, которому 90% пользователей биткоина доверяют свои деньги», — написал пользователь форума Рауль Дюк, сопроводив свои слова эмодзи в виде закатившихся глаз. О Карпелесе он язвительно написал:
Похоже, он ближе к потере баланса Mt. Gox, чем к побегу с ним.
Рассуждая о том, что случилось бы с биткоином, если бы Карпелес допустил ошибку при отправке 442'000 BTC, как он сделал это в рекордной транзакции четырьмя месяцами ранее, он признался:
При мысли об этом у меня мурашки по коже.
Дурак дураком
2609 биткоинов, которые Марк Карпелес случайно уничтожил в октябре 2011 года, нельзя переместить, но их можно посмотреть. В его защиту можно сказать, что тогда биткоин был гораздо менее дружелюбен к пользователю и для выполнения сложных транзакций требовал больше возни, чем сегодня.
Они останутся до конца времен на необычном биткоин-адресе «s-272edf45031dd498e7b3ae89e11ff21b». Пытаясь обобщить невозможность получения этих BTC, пользователь форума etotheipi написал:
Чтобы потратить эти монеты, вы должны обладать открытым ключом, который при применении ripemd160(sha256(pubKey)) равен «0x00». К сожалению, ripemd160 выдает только 20-байтовые хэши. Даже если у вас каким-то образом есть строка, которая производит такой невозможный хэш, удачи вам в поиске связанного с ней закрытого ключа.
Учитывая, что монеты, потерянные Mt. Gox, в то время стоили всего $8300, это не считалось большой проблемой. Сегодня все эти BTC стоили бы свыше $249'047'313. Тот факт, что в течение всех последних лет они хранятся на одном и том же адресе нетронутыми, свидетельствует о неизменности правил Биткоина.