«White Paper» Биткоина: что в ней оказалось верным, что ошибочным и о чем нам только предстоит узнать
В данной статье даётся ретроспективный взгляд на один из главных документов, благодаря которому началась эпоха технологии Блокчейн. Речь, конечно же, о «белой книге» первой криптовалюты Биткоина, опубликованной в 2008 году загадочным Сатоши Накамото.
По прошествии десяти лет можно сделать выводы о том, что некоторые пункты «белой книги» оказались пророческими, другие — ошибочными. А какие-то свойства Биткоина не поддаются оценке до сих пор.
«Белая книга» Биткоина по праву является одним из наиболее оригинальных и влиятельных документов по программированию в истории. Она породила многомиллиардную индустрию и тысячи других «белых книг».
Но есть смысл взглянуть на этот документ под критическим углом (и на те элементы первоначального дизайна сети Биткоина, которыми пренебрегли), чтобы спросить себя: что в «белой книге» оказалось верным, что ошибочным, и на какие вопросы у нас до сих пор нет ответа.
В чём создатель Биткоина оказался прав
Один из признаков действительно успешной идеи состоит в том, что мы забываем, как люди воспринимали окружающий мир до неё. Многие из фундаментальных инноваций Биткоина становятся очевидными только при ретроспективном взгляде.
Ведь можно легко забыть о том, что криптовалюты оставались в «исследовательском болоте» большую часть нулевых годов.
После провала многочисленных попыток построить функционирующую систему в девяностых годах (по большей части используя идеи, высказанные Дэвидом Чаумом в восьмидесятые), несколько публикаций всё же появились на свет. Но большинство исследователей были уверены, что для негосударственных валют просто не будет жизнеспособного рынка.
Перед появлением Биткоина децентрализованные системы активно разрабатывали в двухтысячные годы (обычно их описывали как пиринговые сети), также проводились исследования технологий анонимизации (развитие браузера Tor и других систем).
Но все эти разработки не рассматривались как обязательные для системы платежей. Что же привнёс Биткоин?
1. Стимулы для майнеров. Одно из ключевых новшеств Биткоина — стимулирование майнинга через инфляцию и комиссии. Эта модель оказалась успешной, хотя немногие смогли её предвидеть. Большинство одноранговых систем в до-биткоиновую эпоху, предлагавшие открытое участие (когда каждый может управлять нодой сети), страдали от «атак Сивиллы» и других проблем. Предпринималось много попыток мотивировать честное участие, но до Биткоина это никому не удавалось.
2. Облегченные ноды. Одновременная поддержка полных и облегченных (или SPV) узлов в сети Биткоина доказала свою эффективность, а встроенная в Биткоин структура блоков сделала внедрение облегчённых узлов естественной функцией.
3. Скриптинг. Будучи ограниченной, поддержка разработки сценариев в сети Биткоина (вовсе не упомянутая в «белой книге») позволила осуществить несколько важных функций, таких как счета с несколькими подписями и платёжные сервисы. Предусмотреть систему, которая обеспечивает нечто большее, нежели обычные транзакции, было мудрым решением.
4. Определение долгосрочных стимулов. Сатоши не участвовал в промышленном майнинге или майнинговых пулах, по крайней мере, он не указал об этом в «белой книге». Однако документ о Биткоине включает очень предусмотрительную мысль о рисках централизации:
«[атакующий] рано или поздно должен понять, что ему выгоднее играть по правилам, которые предоставят ему на несколько больше монет, чем у всех остальных, вместе взятых, вместо того, чтобы подрывать всю систему ради собственного обогащения».
Несмотря на большое число теоретических атак, описанных с тех пор, никакие из них не были исполнены на практике. Сатоши установил сильный принцип — что у майнеров есть долгосрочные стимулы не атаковать, поскольку они инвестируют в здоровье всей экосистемы.
В чем «белая книга» Биткоина ошиблась
Мы опустим некоторые причудливые функции в ранних версиях кода Биткоина, такие как оплата по IP-адресу и встроенная система электронной торговли, которая так и не увидела свет.
Но некоторые характеристики оказались ошибочными, и их не следует повторять.
1. ECDSA. В то время, как этот алгоритм подписи был лучшим выбором, чем, скажем, RSA, он всё же уступает технике Шнорра во всех аспектах. Скорее всего, Сатоши просто не знал о такой возможности (из-за «патентных войн» за наследие Шнорра). Сегодня выгода от использования подписей Шнорра очевидна, если не брать во внимание более продвинутые схемы типа BLS.
2. Пластичность транзакций. Эта непреднамеренная трудность привела к проблемам для платёжных систем и сделала возможной атаку на биржу Mt.Gox. Сегодня в более разумном дизайне сети разработчики будут использовать SegWit, чтобы удостовериться в отсутствии пластичности хэшей транзакций.
3. Новые функции. Весьма очевидно, что решение не включать в Биткоин популярные функции типа pay-to-script-hash (P2SH) и CheckLocktimeVerify (CLTV) оказалось ошибкой, хотя они и были добавлены в последующих софт-форках.
4. Ограниченная разрядность монет. Эмиссия Биткоина ограничена 21 миллионом монет, но что более важно, у него есть лимит минимальных единиц, составляющий примерно 2^52 сатоши. Если Биткоин действительно задумывали как единственную расчетную единицу на планете, следовало предусмотреть несколько миллионов единиц на одного человека. Текущего количества недостаточно для ежедневных платежей (даже округлённых до десятков долларов) и крупных сбережений.
5. Все блоки в одной цепи. Принимая во внимание, какое значение имеет слово «блокчейн», следует отметить, что размещение блоков в линейной цепочке — это непредусмотрительность, которая приводит к подорожанию процесса подтверждения старых блоков облегчённым узлом. Если Биткоин корректно располагает транзакции в древовидном порядке, почему не сделать то же самое для блоков? Список пропусков тоже был бы важным дополнением. Любопытно, что проект Certificate Transparency (созданный независимо в то же время, что и Биткоин) использует верную архитектуру и размещает новые блоки в виде дерева, тогда как лишь немногие преемники Биткоина отклонились от линейной конструкции цепи.
6. Отсутствие обязательных данных о состоянии сети. Майнеры Биткоина отслеживают состояние системы через входящие платежи, являющиеся неизрасходованными выходами (UTXO). Но эта информация не относится к каждому блоку и должна браться из истории транзакций. Поэтому облегченным нодам сложно подтверждать текущее состояние сети и статус расходования перевода. Можно было бы достаточно легко включить обязательство UTXO в каждый блок, и многие последующие системы (например, Ethereum) уже это делают.
7. Анализ упрощенной атаки. В «белая книге» Биткойна уделяется повышенное внимание (примерно четверть всего текста) анализу шансов майнера на успешный форк при обладании менее 51% майнинговой мощности. Последующие исследования выявили много других векторов атаки (например, эгоистичный майнинг), и теперь этот анализ выглядит устаревшим.
8. Один процессор — один голос. Сатоши описал Биткоин как систему, большинство участников которой будут майнерами, использующими собственные процессоры. Однако уже много лет в добыче монет доминирует специализированное оборудование. Хотя польза или вред ASIC-майнинга — это спорный момент, в оригинальном документе о нём не сказано.
О чем мы до сих пор не знаем
1. Загадка алгоритма SHA-256. Использование основанных на хэшах вычислительных головоломок («доказательство работы», PoW) в сети Биткоина является одной из самых популярных тем дебатов в сообществе. Потребляет ли этот алгоритм слишком много электричества? Усиливают ли ASIC-чипы децентрализацию? Смогли бы задачи, разработанные для майнинга на графических картах, предоставить лучшие стимулы по меньшей цене? Победит ли в итоге «доказательство доли владения» (PoS)?
2. Размер блока и другие ограничения. Ограничение размера блока 1 мегабайтом, по меньшей мере, остаётся спорным вопросом, так же, как и 10-минутные интервалы между блоками. Многие последующие блокчейн-сети процветают с большими размерами и меньшими интервалами блоков. Является ли консервативная архитектура Биткоина обоснованной в долгосрочной перспективе?
3. Анонимность. Аргумент о том, что сеть Биткоина анонимна вследствие использования публичных ключей, изложенный в «белой книге», со временем оказался несовершенным из-за развития технологий анализа транзакций. Такие системы, как Confidential Transactions, Monero или Zcash предлагают более надежную конфиденциальность переводов. С другой стороны, для сети Биткоина было предложено много схем с целью запутывания активности путем смешивания транзакций. Является ли анонимность критической функцией, которая оказалась не учтена в блокчейне Биткоина?
4. Инфляция. Cеть Биткоина стремится избежать инфляции, но многие экономисты отметили, что на самом деле внедрённый механизм является дефляционным, поскольку в конечном итоге монеты могут выйти из оборота при потере ключей (или пока монеты становится невозможно потратить после транзакций «доказательства сжигания»). Нулевая инфляция в действительности требует осуществлять незначительную эмиссию новых монет для покрытия «потерянной» массы. Если в Биткоине отсутствие этой возможности и оказалось ошибкой, мы ещё много лет об этом не узнаем, так как инфляция разрушается медленно.
5. Переход к комиссиям за переводы. Биткоин постепенно перешел от схемы награждения майнеров с помощью инфляционного механизма к комиссиям за транзакции. Никто не знает, что из этого получится, но некоторые исследования допускают, что платные транзакции могут вызвать серьёзную нестабильность в пост-инфляционном мире.
6. Ограниченная программируемость. Биткоин установил серьёзные ограничения на возможность программирования сети, чтобы сохранить простоту подтверждения транзакций (а их стоимость — предсказуемой). Проект Ethereum продемонстрировал существенный спрос на более обширную модель программирования, хотя она и вызывает опасения в масштабируемости. Так станет ли Биткоин «инвалидом» в долгосрочной перспективе из-за более слабой модели программирования?