Проект Hazync прогнал консенсусный код Bitcoin Core внутри виртуальной машины с доказательствами и получил файл на 226 килобайт, по которому первые 1789 блоков проверяются за 27 миллисекунд. Рядом с этой цифрой стоит вторая: чтобы получить такой же файл на всю историю биткоина, нужно около семнадцати лет работы одной видеокарты.

Коротко: что сделали

Программу проверки собрали из значительной части консенсусного кода Bitcoin Core версии 28 и библиотеки libsecp256k1, скомпилировали под RISC-V и запустили в виртуальной машине с нулевым разглашением от RISC Zero.

Результат — квитанция размером 226 434 байта. Отдельная программа проверки весит 1,7 мегабайта и подтверждает её за 27 миллисекунд. Оговорка важная: цифра относится только к блокам с первого по 1789-й.

О результате сообщили пятнадцатого августа. Код открыт, репозиторий на Rust опубликован в июле и продолжает обновляться.

Сколько это стоит в вычислениях

Показатель Значение
Размер квитанции 226 434 байта
Размер программы проверки 1,7 МБ
Время проверки 27 мс для блоков 1–1789
Доказательство блока 741 000 около 55 минут на двух видеокартах L40S
Из них агрегация около 27 минут
Вся история от генезиса оценка около 17 GPU-лет
Поддержка новых блоков порядка шести видеокарт L40S

Блок 741 000 в тесте содержал 670 входов и затронул 394 листа в наборе непотраченных выходов — это обычный, не рекордный блок.

Зачем это вообще нужно

Новый узел сегодня скачивает всю цепочку и заново проверяет каждую подпись за все годы. Эту работу независимо повторяет каждый, кто поднимает узел, — и повторение как раз и делает сеть проверяемой без доверия к кому-либо.

Схема с квитанциями меняет разделение труда. Тяжёлое доказательство считает тот, у кого есть видеокарты; все остальные проверяют готовый файл за миллисекунды. Архивные узлы при этом никуда не деваются: сырые транзакции и подписи по-прежнему хранят они, квитанция сжимает только проверку корректности, а не сами данные.

Обязательных изменений для операторов узлов нет, выбор основной цепочки тоже прежний — по наибольшей проделанной работе, а не по квитанциям. Похожий по смыслу результат показали в другой сети, когда блок Ethereum доказали на четырёх видеокартах.

Что здесь важно понимать

Вот наблюдение, ради которого стоит смотреть не на 27 миллисекунд и не на 17 GPU-лет по отдельности, а на то, кто платит за каждую из этих величин.

Стоимость проверки не исчезает — она переезжает. Сегодня её платят все понемногу: каждый новый узел тратит время и трафик, но зато не верит никому. В схеме с квитанциями один платит дорого, остальные почти бесплатно, а взамен начинают доверять отпечатку скомпилированной программы и добросовестности того, кто скормил ей данные.

И вот где это становится измеримым. Квитанция привязана к отпечатку собранного кода: пересборка или патч безопасности обесценивают все ранее выпущенные квитанции. То есть каждое изменение консенсусного кода — а такие изменения происходят, свежий релиз Bitcoin Core тому пример — потребует заново оплатить те самые семнадцать GPU-лет.

Цена одной проверки падает почти до нуля. Цена одного обновления вырастает до семнадцати лет машинного времени. Это не выигрыш, а перенос счёта.

Семнадцать GPU-лет при этом не запретительная величина: аренда видеокарт становится биржевым товаром, и такой объём закрывается парком машин за недели. Вопрос в том, кто вносит эту плату регулярно и что получает взамен.

Чего в источниках нет

Профессиональный аудит не проводился. Сам автор называет приоритетными для проверки слой переносимости и накопитель Utreexo, который взят не из Bitcoin Core.

Полное доказательство от генезиса до текущего блока не построено: семнадцать GPU-лет — оценка незавершённого пути, а не измеренный результат.

Отдельно назван риск недобросовестного архива, подсовывающего доказывающей стороне неверные данные. Имени разработчика и организации за проектом источники не приводят.

Частые вопросы

Это уже работает в сети биткоина?

Нет. Это исследовательский прототип вне основной сети, обязательных изменений для узлов он не требует.

Что такое квитанция в этой схеме?

Компактный файл, подтверждающий, что программа проверки отработала на указанных блоках и признала их корректными.

Значит, узел больше не нужен?

Нужен. Архивные узлы по-прежнему хранят транзакции и подписи, квитанция сжимает только проверку, а не данные.

Почему 27 миллисекунд и 17 GPU-лет одновременно?

Это разные стороны процесса: доказательство считается один раз и дорого, проверка выполняется многократно и почти бесплатно.

Что произойдёт при обновлении Bitcoin Core?

Квитанция привязана к отпечатку собранной программы, поэтому после пересборки прежние квитанции недействительны и доказательства придётся строить заново.

Насколько этому можно доверять сейчас?

Как раннему прототипу: без внешнего аудита, с незавершённым доказательством и известными местами, требующими проверки.

Источники

Материал подготовлен на основе публикаций CryptoSlate и Coinsbit, а также данных открытого репозитория проекта.