Сокращенный перевод статьи аналитической компании coin Metrics. Whitepaper биткоина, которому недавно исполнилось 11 лет, настолько лаконичен, что эмиссия монет в нем упоминается лишь мимолетно:
Как только суммарный объем денежной массы достигнет заранее установленного максимума, единственным источником поощрения работы над блоками останутся комиссии, при этом избавленные от инфляции.
Изучая одну из самых ранних копий кода биткоина, мы можем найти легендарную формулу, которая устанавливает ограничение на вознаграждение за блок. Эти простые строки кода устанавливают ограниченную эмиссию биткоина в 21 млн:
Немногим известно, что кодовая база биткоина не содержит каких-либо проверок общего предложения в 21 млн BTC. Вместо этого система проверяет, что каждый блок не требует больше монет.
Применение формулы предложения на блоке 600 000 (от 19 октября 2019 года) дает нам 18 млн BTC:
210 000 блоков * 50 BTC + 210 000 блоков * 25 BTC + 180 000 блоков * 12,5 BTC = 18 млн BTC
Сообщество отметило нахождение этого блока как важную веху в эмиссии биткоина. Тем не менее, внимательные наблюдатели отметили, что предложение биткоина на самом деле не прошло рубеж в 18 млн BTC на блоке 600 000. Разработчик Bitcoin Core Питер Вулле сказал, что фактическое предложение на блоке 600 002 составило 17 999 854,82192702 BTC.
В этой статье мы рассмотрим, почему предложение биткоина ниже ожидаемого, и подсчитаем, сколько монет потеряно навсегда. Также мы предоставим анализ того, почему эти монеты утеряны. Сначала мы исследуем монеты, которые доказуемо утеряны, а затем проанализируем монеты, которые предположительно утеряны, но теоретически могут быть найдены.
Доказуемо потерянные биткоины
Первый блок и дубликаты
Блокчейн биткоина хранит «неизрасходованные выходы» (Unspent Transaction Output, UTXO) — набор неизрасходованных транзакций (или набор UTXO). Суммируя набор этих выходов вы получаете биткоины, которые видит полная нода (узел) сети.
Первый блок биткоина (genesis) содержит транзакцию на 50 BTC. Однако выход этой транзакции в 50 BTC не включен в набор UTXO. До сих пор неясно, было ли это упущением или было сделано намеренно. В результате эти 50 BTC отсутствуют в реестре биткоина, даже если они видны в транзакции, включенной в блокчейн.
Еще один недосмотр со стороны создателя биткоина — обработка дублирующих транзакций. Хотя, на первый взгляд, это не представляется возможным (поскольку они содержат цифровые подписи и ссылки на предыдущие транзакции, что делает их уникальными), тем не менее существовала возможность создания дублирующих транзакций.
Самыми простыми для дублирования транзакциями являются транзакции на основе монет, которые являются первыми транзакциями в каждом блоке и позволяют майнеру претендовать на вознаграждение за свой блок (так называемые coinbase-транзакции — отсюда и название известной компании Coinbase), поскольку они не содержат цифровых подписей или ссылок на предыдущие сделки. Это случалось дважды в ранней истории биткоина:
- Транзакция d5d2..8599 стала выходом монет для блока 91 812 и 91 842;
- Транзакция e3bf…b468 стала выходом монет для блока 91 722 и 91 880.
В каждом случае, во второй раз, когда транзакция была включена, её выходы перезаписывали предыдущие. В результате два перезаписанных выхода не входят в набор UTXO. Эти 100 BTC не включены в блокчейн биткоина.
Разработчик Рассел О'Коннор определил это как вектор атаки ещё в 2012 году. Используя дублирующие транзакции, злоумышленник может удалить прошлые транзакции других пользователей из реестра.
В ответ на это был введен BIP-30 в 2012 году, который запрещал включение новых дублирующих транзакций. Однако обработка существующих дубликатов не изменилась, и они по-прежнему остаются в блокчейне по сей день. Позже, в 2012 году, BIP-34 также значительно усложнил дублирование coinbase-транзакций, поскольку теперь они должны включать высоту блока, частью которого они являются.
Невостребованные вознаграждения
Другой набор доказуемо потерянных монет связан с проверкой coinbase-транзакций полными узлами.
Протокол биткоина требует, чтобы майнер действительного блока мог зачислить себе определенное вознаграждение (плюс комиссии от транзакций, которые включены в этот блок). Каждый узел проверяет, что майнеры не пытаются требовать больше, чем предусмотрено. Однако им все равно, если майнер требует меньше.
Очевидно, что требование меньше назначенного вознаграждения является не очень рациональным поведением майнера, но это уже случалось много раз. Первый раз это произошло на блоке 124 724 в мае 2011 года, а последний раз — на блоке 564 959 (в конце февраля 2019 года).
Наиболее заметные случаи перечислены в этой таблице:
В целом, такое поведение наблюдалось в 3 различных эпизодах (в общей сложности 1221 аномалии). На следующем графике показано количество блоков, которые не получили полного вознаграждения, сгруппированные по 1000 блоков:
Очень интенсивный эпизод наблюдался на 162 000 блоке. Другой, более продолжительный, произошел с 180 000 до 230 000, а последний — около 530 000.
По словам пользователя Bitcointalk под ником midnightmagic, первый случай был сделан специально как дань уважения Сатоши Накамото по предложению разработчика биткоина Мэтта Коралло. Другие случаи (учитывая потерянные суммы), скорее всего, связаны с ошибками в ПО, используемом майнерами для создания транзакции генерации монет.
Выходы OP_RETURN
Существует специальный тип выхода в биткоин-транзакции, который называется OP_RETURN. Они позволяют пользователям встраивать данные в блокчейн (до 80 байтов на выход в данный момент) без раздувания набора UTXO (эти выходы не добавляются в набор UTXO — они считаются доказуемо нерасходуемыми).
Хотя подавляющее большинство таких выходов создаются со значением 0 сатоши, некоторые — нет. Было обнаружено около 3,723039 BTC, отправленных на выходы OP_RETURN, что сделало их потерянными навсегда.
Вывод
В целом, мы можем вычислить фактическое предложение биткоинов в блоке 600 000, работая в обратном направлении от ожидаемого значения 18 млн. BTC и вычитая то, что доказуемо потеряно.
Цифра в 17 999 817 BTC на блок 600 000 — это «технически правильное» представление о предложении биткоинов. Тем не менее, мы можем провести более широкий анализ блокчейна, включив случаи, которые делают биткоины практически, но не доказуемо потерянными.
Предполагаемые потерянные монеты
Фиктивные адреса
До стандартизации выходов OP_RETURN не было легкодоступного и доказуемого способа сжечь биткоины. В связи с этим некоторые пользователи использовали «фиктивные адреса», которые не имеют известного закрытого ключа.
Создание биткоин-адреса начинается с известного закрытого ключа. Этот процесс затрудняет генерацию так называемых пользовательских «префиксов тщеславия» (vanity prefixes). Пользователь, который хочет получить адрес с определенными символами, фактически должен «майнить» закрытые ключи, чтобы найти те, чей адрес начинается с желаемого префикса.
В случае с фиктивными адресами нет никакого желания тратить монеты с такого адреса, так что нет необходимости знать его закрытый ключ. Поэтому поддельный адрес может начинаться с любого префикса (если он может быть написан с использованием алфавита Base58). Тем не менее, последние символы будут случайными — они являются контрольной суммой (checksum) для предотвращения опечаток.
Хотя невозможно составить полный список поддельных адресов, мы можем перечислить несколько самых известных:
Только на этих трёх адресах потеряно 2213,19538012 BTC.
Теоретически, эти монеты не потеряны навсегда. Единственный известный способ найти закрытый ключ по заданному адресу — это случайное предположение (то есть с помощью полного перебора). Однако на практике вероятность того, что это произойдет в пределах жизни нашей вселенной, довольно мала.
Ошибки
Под красивыми интерфейсами современных биткоин-кошельков скрываются критические фрагменты кода, отвечающие за создание, подписание и трансляцию транзакций в сеть. В настоящее время в них редко встречаются серьёзные ошибки, но так было не всегда.
В ноябре 2011 года биржа Mt. Gox стал жертвой ошибки в своем же ПО, в результате которого биржа потерялала 2609.36304319 BTC.
Были и другие подобные ошибки в других активах. Особенно выделилась ошибка parity в эфириуме (потеряно 513 тыс. ETH).
Зомбикоины
Это монеты, которые не перемещались в течение многих лет. Поскольку невозможно узнать, есть ли у их владельцев ключи или нет, их часто называют «зомбикоинами» — ни живыми, ни мертвыми. С этой категорией мы покидаем область квазиуверенности в том, что эти монеты действительно потеряны.
Чтобы оставаться консервативными в наших оценках, мы будем считать только те монеты, которые были в последний активны до того, как биткоином начали торговать на первых биржах (доя июля 2010 года). Смысл прост: люди, которые приобрели биткоины до того, как их можно было обменять, имели меньше стимулов для надежного хранения своих кошельков, поскольку воспринимаемая ценность биткоина (в то время) была очень низкой.
По состоянию на 600 000 блок насчитывалось 1 496 907,88000 BTC, которые последний раз проявляли активность до июля 2010 года. По разным оценкам, Сатоши Накамото владеет более чем половиной этих монет из-за своего статуса доминирующего майнера в то время.
Учитывая рост цен с 2013 года по настоящее время, либо владельцы этих монет являются долгосрочными держателями, либо они просто не имеют доступа к этим монетам.
Меченые монеты
Известные украденные монеты — это последняя категория монет, которые можно считать потерянными или, по крайней мере, временно выведенными из обращения. До появления более совершенных решений по микшированию их будет трудно снова ввести в обращение (особенно большие суммы).
За историю биткоина было много взломов и краж, но многим особенно запомнилась кража 80 000 BTC на MtGox в 2011 году и кража 120 000 BTC на Bitfinex.
В марте 2011 года 79 956 BTC были выведены с кошелька Mt. Gox и до сих пор их не трогали. На сегодняшний день это 6-й адрес в рич-листе биткоина.
Неизвестно, по какой причине этот улов (стоимостью в $73 000 в то время и $700 млн сегодня) никогда не тратился. Скорее всего, вор не может получить доступ к закрытому ключу.
В августе 2016 года биржа Bitfinex потеряла 119 756 BTC в результате взлома. По сей день очень немногие из этих украденных монет были перемещены и только 22 BTC было возвращено. На блоке 600 000 адреса, на которые были отправлены украденные монеты, все еще содержат 117 091,31922097 BTC.
Вывод
Общая позиция о том, что в мире будет только 21 миллион биткоинов, является очень оптимистичной. Со временем ошибки и другие события влияют на то, сколько биткоинов действительно находится в обращении.
Этот анализ является лишь одним из многих способов оценить истинное предложение биткоинов. В зависимости от потребностей, различные категории могут рассматриваться, игнорироваться или расширяться.