Найти в Дзене
CoinEx CIS

Институт CoinEx: BitVM, потенциал смарт-контрактов в основной сети Биткоина

9 октября Робин Линус, разработчик из ZeroSync, опубликовал белую книгу BitVM, которая привлекла огромное внимание сообщества. BitVM представляет новую вычислительную парадигму, способную осуществлять полные по Тьюрингу Биткоин-контракты, не требуя изменения правил консенсуса в сети.

Децентрализованные смарт-контракты: ограничения и цели

Bitcoin Script, стековый язык, предоставляет фундаментальные структуры управления, такие как условные суждения, для определения логики проверки транзакций. Он требует наличия действительных цифровых подписей для расходования биткоинов с помощью простого процесса условной проверки. При этом Script не является полным по Тьюрингу. Хотя он не поддерживает сложные функции управления потоком, такие как циклы, данная архитектура обеспечивает простоту и безопасность языка. Подобные ограничения затрудняют выполнение на языке Script сложных вычислений, в том числе связанных со смарт-контрактами.

Хотя некоторые решения второго уровня, разработанные для Биткоина, позволяют реализовать основные функции смарт-контрактов путем блокировки активов, по существу, они опираются на адреса с мультиподписью и кроссчейн-сопоставление активов, что требует определенного уровня централизованного доверия. Это снижает децентрализацию всего решения и не соответствует концепции Биткоина. До появления BitVM Биткоин-сообщество изучало способы, которые были бы децентрализованными, отличались минимальным доверием и были бы способны выполнять полные по Тьюрингу вычисления.

BitVM: выполнение любых вычислений на Биткоине

Основная инновация BitVM заключается в использовании существующей скрипт-системы Биткоина для реализации логических вентилей (в том числе вентилей AND, OR, NOT и XOR, позволяющих выполнять операции AND, OR, NOT и XOR) для построения произвольно сложных булевых схем. Эти схемы используются для выполнения логических операций над двоичными входами и выдачи двоичных выходов; булевы вычисления могут быть реализованы с помощью логических вентилей для выполнения операций AND, OR, NOT и XOR. В частности, BitVM использует Hash Time Locked Contracts (HTLC) и Taproot (софтфорк для оптимизации скриптов, активированный в ноябре 2021 года) для представления фундаментальных логических вентилей, таких как AND и OR. Затем BitVM комбинирует эти базовые логические вентили для построения схем любой сложности, по сути, имитируя программируемый компьютер на блокчейне Биткоин.

Наконец, в случае возникновения споров между участниками транзакции для проверки можно использовать элегантный протокол запроса-ответа, аналогичный доказательствам мошенничества в Биткоине. Прувер (доказывающий) утверждает, что данная функция при определенных входных данных дает определенный выход. Если это утверждение ложно, то верификатор может провести проверку на мошенничество и наказать прувера. Используя этот механизм, на Биткоине можно проверить любую вычислимую функцию.

Дизайн BitVM

Bit Value Commitment

Биткоин-скрипт Bit Value Commitment использует операторы if-else для реализации схемы обязательств. Этот криптографический примитив гарантирует, что отправитель может подтвердить содержание сообщения перед его отправкой, а после его раскрытия содержание не может быть изменено. В данной схеме обязательств используются два хэш-значения: hash0 и hash1. Возвращаемое значение — 0 или 1 — определяется путем сравнения хэш-значения входных данных с этими двумя хэш-значениями.

Рисунок 1: Конкретная реализация 1-битного обязательства

Источник: https://bitvm.org/bitvm.pdf

Обязательство логических вентилей (Logic Gate Commitment)

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

BitVM умело выражает вентиль NAND с помощью Биткоин-скриптов. Это позволяет создавать произвольно сложные булевы логические схемы, эффективно моделируя программируемый компьютер с помощью скриптов.

Рисунок 2. Реализация логического вентиля NAND с использованием обязательств по битовому значению

-2

Источник: https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754

Рисунок 3. Обязательство логического вентиля для операции NAND.

-3

Источник: https://bitvm.org/bitvm.pdf

Скрипт вычисляет значение NAND двух входов, чтобы убедиться, что оно соответствует зафиксированному выходному биту.

Обязательства по двоичной схеме (Binary Circuit Commitment)

BitVM может выразить любую схему, создавая обязательства вентиля. Каждый шаг исполнения фиксируется в Tapleaf. Все они объединены в один адрес Taproot, так что прувер может реализовать любой вентиль в схеме. Для реализации вентиля требуется открыть соответствующее обязательство вентиля и установить значения для его входных и выходных битов. Например, на рисунке 4 A, B, C и D — это заранее определенные обязательства по битовому значению, каждое из которых представляет бит. Затем выполняются логические операции с восемью вентилями NAND. Например, если A NAND B дает E, а E используется в качестве входа для следующего вентиля NAND, то конечным выходом всей схемы будет TRUE. Такая конструкция булевых схем соединяет вентили NAND с обязательствами по битовым значениям и обеспечивает выполнение сложных логических операций, предлагая компактное представление для верифицируемых вычислений в блокчейне Биткоин.

Рисунок 4. Схема с восемью различными вентилями NAND

-4

Источник: https://bitvm.org/bitvm.pdf

Запросы и ответы

В BitVM фиксации одной схемы недостаточно, и для доказательства правильности вычислений требуется механизм запроса-ответа. Для этого прувер и верификатор должны предварительно подписать последовательность транзакций во время установки. Транзакции связываются в порядке «запрос-ответ-запрос-ответ», создавая несколько раундов взаимодействия «запрос-ответ». Если одна из сторон прекращает взаимодействие, то по истечении времени ожидания другая сторона выигрывает вызов и может забрать оба депозита. Этот механизм необходим только в случае мошенничества. Пока обе стороны сотрудничают, они могут совместно урегулировать любой контракт с помощью подписи «2-2».

Посмотрим, как работает этот механизм на гипотетическом примере. Пол (прувер) и Вики (верификатор) предварительно подписали последовательность транзакций. Затем Вики может инициировать запрос (TX 2), выбрав запрос (hash7) в одном из хэш-блоков в своих листах Tapscript. Это разблокирует для Пола определенный Tapscript и заставит его выполнить его с открытыми входами и выходами. Любое непоследовательное утверждение может быть быстро опровергнуто путем повторения этой процедуры в течение нескольких раундов запросов. Если прувер прекращает сотрудничество, верификатор может разблокировать имеющееся у него прообраз хэша, чтобы заставить прувера ответить на цепочке. Каждый раунд запросов может подтвердить или опровергнуть конкретный вентиль. С помощью двоичного поиска (алгоритма, используемого для поиска определенного элемента в отсортированном массиве) верификатор может быстро определить ошибку прувера всего за несколько раундов «запрос-ответ». Как только два обязательства прувера вступают в конфликт, верификатор немедленно выигрывает запрос и забирает депозит.

Рисунок 5: Предварительно подписанная последовательность транзакций для выполнения нескольких раундов «запрос-ответ».

-5

Источник: https://bitvm.org/bitvm.pdf

Такая тщательно продуманная конструкция позволяет BitVM выполнять проверку любых сложных ончейн-вычислений, что обеспечивает эффективность совместной работы и накладывает штрафные санкции в случае мошенничества. Это демонстрирует возможность проверки полных по Тьюрингу интерактивных вычислений в сети Биткоин.

Ключевые аспекты дизайна BitVM

Вычисления вне цепочки и верификация на цепочке

BitVM переносит нагрузку по выполнению сложных вычислений за пределы блокчейна, резервируя блокчейн Биткоина исключительно для проверки результатов. Такой подход позволяет избежать выполнения сложных контрактов непосредственно на блокчейне, что предотвращает раздувание блокчейна.

Логические вентили, выраженные с помощью хэшлоков и Биткоин-скриптов

BitVM использует хэшлоки и скриптовые опкоды, поддерживаемые Биткоином, для представления базовых логических вентилей, таких как вентили AND и NOT. Соединение этих логических вентилей позволяет строить схемы произвольной сложности, обеспечивая выполнение полных по Тьюрингу вычислений.

Механизм теории игр для прувера и верификатора

Механизм проверки BitVM, напоминающий Optimistic Rollup, включает в себя интерактивные запросы и ответы между сторонами вычислений. В конечном итоге правильный результат вычислений подтверждается на цепочке. В случае обмана со стороны прувера верификатор может применить штрафные санкции на Биткоин-блокчейне. Таким образом, BitVM и Optimistic Rollup используют схожие механизмы взаимодействия для ончейн-проверки, с той лишь разницей, что BitVM напрямую использует Биткоин-скрипты для реализации интерактивного процесса «запрос-ответ».

Минимальное влияние на цепочку

Вычислительный процесс BitVM оказывает минимальное влияние на блокчейн Биткоин, оставляя на цепочке лишь небольшое количество транзакций при возникновении споров. Это позволяет сохранить эффективность и масштабируемость Биткоина.

Отсутствие необходимости в софтфорках

Поскольку BitVM использует только существующие возможности Биткоин-сценариев, он не требует каких-либо модификаций Биткоин-протокола посредством софтфорков. Это облегчает интеграцию BitVM в основную сеть Биткоина.

Заключение

Главная инновация BitVM заключается в его способности осуществлять полную по Тьюрингу проверку без изменения основного протокола Биткоина; это достигается за счет инновационного использования скриптов, особенно оптимизированных Taproot. Такая оригинальная система обеспечивает бесшовную интеграцию с основной сетью Биткоина, не создавая новых проблем совместимости и не нарушая децентрализованную природу Биткоина.

Инновационное решение BitVM обладает потенциалом для внедрения смарт-контрактов и децентрализованных приложений в экосистему Биткоина. Например, оно может быть использовано для создания кроссчейн-мостов с минимальным доверием, соединяющих различные блокчейн-активы, что повысит функциональную совместимость Биткоина. Кроме того, BitVM может помочь в создании более эффективных уровней расширения zkRollup для повышения масштабируемости Биткоина. Другими словами, BitVM демонстрирует широкие возможности для перехода экосистемы Биткоина в новую эру только за счет инновационного использования существующих функций.

Источники

https://bitvm.org/bitvm.pdf

https://github.com/supertestnet/tapleaf-circuits

https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754