BitVM, потенциал смарт-контрактов на Биткоин Майннете
- BTC0%
9 октября Робин Линус, разработчик из ZeroSync, опубликовал техническое описание BitVM, которое привлекло огромное внимание сообщества. BitVM представляет новую вычислительную парадигму, способную выражать полные по Тьюрингу биткойн-контракты без необходимости внесения изменений в правила консенсуса сети.
Децентрализованные смарт-контракты: ограничения и цели
Bitcoin Script, язык на основе стека, предоставляет фундаментальные структуры управления, такие как условные проверки, для определения логики валидации транзакций. Он требует действительных цифровых подписей для расходования биткойнов через простой процесс условной валидации. При этом Script был разработан как неполный по Тьюрингу. Хотя он не поддерживает сложные функции управления потоком, такие как циклы, этот дизайн обеспечивает простоту и безопасность языка. Такие ограничения затруднили выполнение сложных вычислений с помощью Script, включая те, которые связаны со смарт-контрактами.
В то время как некоторые решения второго уровня, разработанные для биткойна, могут достичь базовых функций смарт-контрактов путем блокировки активов, они по сути полагаются на мультиподписные адреса и межцепочечное отображение активов, что требует определенного уровня централизованного доверия. Это компрометирует приверженность биткойна децентрализации. До появления BitVM сообщество биткойна искало методы, которые были бы децентрализованными, минимизирующими доверие и способными к полным по Тьюрингу вычислениям.
BitVM: вычисление чего угодно на биткойне
В основе своей инновации BitVM использует существующую систему Script биткойна для реализации логических вентилей (это включает вентили И, ИЛИ, НЕ и исключающее ИЛИ, позволяющие выполнять операции И, ИЛИ, НЕ и XOR) для построения произвольно сложных булевых схем. Эти схемы используются для выполнения логических операций над двоичными входами и получения двоичных выходов; булевы вычисления могут быть реализованы с использованием логических вентилей для выполнения таких операций, как И, ИЛИ, НЕ и XOR. В частности, BitVM использует хеш-тайм-замки (HTLC) и Taproot (софтфорк для оптимизации Script, активированный в ноябре 2021 года) для представления фундаментальных логических вентилей, таких как вентили И и ИЛИ. Затем BitVM комбинирует эти базовые логические вентили для построения схем любой сложности, по сути симулируя программируемый компьютер на блокчейне биткойна.
Наконец, в случае возникновения споров между сторонами сделки, для проверки может быть использован элегантный протокол "вызов-ответ", аналогичный доказательствам мошенничества в Bitcoin. Доказывающий делает заявление о том, что данная функция оценивается для некоторых конкретных входных данных с определенным результатом. Если это утверждение ложно, то проверяющий может выполнить доказательство мошенничества и наказать доказывающего. Используя этот механизм, любая вычислимая функция может быть проверена в Bitcoin.
Дизайн BitVM
Обязательство по значению бита
Обязательство по значению бита, скрипт Bitcoin, использует операторы if-else для реализации схемы обязательств. Этот криптографический примитив гарантирует, что отправитель может подтвердить содержимое сообщения перед отправкой, и содержимое не может быть изменено после его публичного раскрытия. Эта схема обязательств включает два хэш-значения, hash0 и hash1. Будет ли возвращаемое значение равно 0 или 1, определяется путем сравнения хэш-значения входных данных с этими двумя хэш-значениями.
Рисунок 1: Конкретная реализация 1-битного обязательства
:quality(80)/2023-11-01/1321A251238D665AA862939993DE617A.png)
Источник: https://bitvm.org/bitvm.pdf
Обязательство логического вентиля
В теории вычислений любая вычислимая функция может быть представлена как булева схема. В частности, вентиль NAND является универсальным логическим вентилем, который может быть использован для построения всех других сложных логических вентилей. BitVM включает два обязательства по значению бита, представляющих два входа, и третье обязательство по значению бита, представляющее выход, для реализации вентиля NAND.
BitVM искусно выражает вентиль NAND через скрипты Bitcoin. Это позволяет ему строить произвольно сложные булевы логические схемы, эффективно имитируя программируемый компьютер с помощью Script.
Рисунок 2: Реализация вентиля NAND с использованием обязательств по значению бита
:quality(80)/2023-11-01/23A48B54E874C749C41F131C7D4730C6.png)
Источник: https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754
Рисунок 3: Обязательство логического элемента для операции NAND
:quality(80)/2023-11-01/E98F6725AA61147C861A13360ADD94C1.png)
Источник: https://bitvm.org/bitvm.pdf
Скрипт вычисляет значение NAND для двух входов, чтобы убедиться, что оно соответствует зафиксированному выходному биту.
Обязательство двоичной схемы
BitVM может выражать любую схему путем составления обязательств по логическим вентилям. Каждый шаг выполнения фиксируется в Tapleaf. Все они объединены в один адрес Taproot, так что доказывающий может выполнить любой вентиль в схеме. Для выполнения вентиля доказывающему необходимо открыть соответствующее обязательство по вентилю и установить значения для его входных и выходных битов. Например, на рисунке 4, A, B, C и D являются предопределенными обязательствами по значениям битов, каждое из которых представляет бит. Затем выполняются логические операции с участием восьми вентилей NAND. Например, если A NAND B дают E, и E используется как вход для следующего вентиля NAND, конечным результатом всей схемы будет TRUE. Такая конструкция булевых схем соединяет вентили NAND обязательств по значениям битов и достигает сложных логических операций, предлагая компактное представление для проверяемых вычислений в блокчейне Биткоина.
Рисунок 4: Схема с восемью различными вентилями NAND
:quality(80)/2023-11-01/2A444519852359C0EA95AC2D2F5C054A.png)
Источник: https://bitvm.org/bitvm.pdf
Проблемы и ответы
В BitVM недостаточно зафиксировать одну схему, и для доказательства правильности вычислений требуется механизм вызова-ответа. Для достижения этого доказывающий и проверяющий должны предварительно подписать последовательность транзакций во время настройки. Транзакции связаны в порядке "вызов - ответ - вызов - ответ", создавая множество раундов взаимодействия вызова и ответа. Если одна из сторон прекращает участие, то после таймаута другая сторона выигрывает вызов и может забрать оба депозита. Этот механизм требуется только в случае мошенничества. Пока обе стороны сотрудничают, они могут совместно урегулировать любой контракт с помощью подписи 2-из-2.
Давайте посмотрим, как этот механизм работает в гипотетическом случае. Павел (доказывающий) и Вика (проверяющая) предварительно подписали последовательность транзакций. Затем Вика может инициировать вызов (TX 2), выбрав вызов (hash7) из одного из хэшлоков в своих листьях Tapscript. Это разблокирует для Павла определенный Tapscript и заставляет его выполнить его с открытыми входами и выходами. Любое несоответствующее утверждение может быть быстро опровергнуто путем повторения этой процедуры в течение нескольких раундов запросов. Если доказывающий прекращает сотрудничество, проверяющий может разблокировать прообраз хэша, которым он владеет, чтобы заставить доказывающего ответить в сети. Каждый раунд запросов может подтвердить или опровергнуть определенный гейт. С помощью бинарного поиска (алгоритма, используемого для нахождения конкретного элемента в отсортированном массиве) проверяющий может быстро выявить ошибку доказывающего после нескольких раундов вызова и ответа. Как только два обязательства доказывающего вступают в противоречие, проверяющий немедленно выигрывает вызов и забирает депозит.
Рисунок 5: Предварительно подписанная последовательность транзакций для выполнения нескольких раундов вызова и ответа
:quality(80)/2023-11-01/8D9777E151B617754A912BDA1F5097CF.png)
Источник: https://bitvm.org/bitvm.pdf
Этот тщательный дизайн позволяет BitVM выполнять онлайн-проверку любых сложных вычислений, что обеспечивает эффективность сотрудничества и налагает штрафы в случае мошенничества. Это демонстрирует возможность проверки полных по Тьюрингу интерактивных вычислений в сети Bitcoin.
Ключевые аспекты дизайна BitVM
Внесетевые вычисления и проверка в сети
BitVM перекладывает бремя сложных вычислений за пределы блокчейна, оставляя блокчейн Биткоина исключительно для проверки результатов. Такой подход позволяет избежать выполнения сложных контрактов непосредственно в блокчейне, что смягчает проблему разрастания блокчейна.
Логические вентили, выраженные с помощью хешлоков и скриптов Биткоина
BitVM использует хешлоки и опкоды скриптов, поддерживаемые Биткоином, для представления базовых логических вентилей, таких как вентили И и НЕ. Соединение этих логических вентилей позволяет создавать схемы произвольной сложности, обеспечивая вычисления, полные по Тьюрингу.
Теоретико-игровой механизм для доказывающего и верификатора
Механизм валидации BitVM, напоминающий Optimistic Rollup, включает в себя интерактивные вызовы и ответы между участниками вычислений. В конечном итоге правильный результат вычислений подтверждается в сети. Если доказывающий обманул, верификатор может применить штрафные санкции в блокчейне Биткоина. Таким образом, BitVM и Optimistic Rollup используют схожие механизмы взаимодействия для проверки в сети, и единственное отличие заключается в том, что BitVM напрямую использует скрипты Биткоина для реализации интерактивного процесса вызова-ответа.
Минимальное влияние на блокчейн
Процесс вычислений BitVM оказывает минимальное влияние на блокчейн Биткоина, оставляя в сети лишь небольшое количество транзакций при возникновении споров. Это сохраняет эффективность и масштабируемость Биткоина.
Отсутствие необходимости в Софт форках
Поскольку BitVM использует только существующие возможности скриптов Биткоина, он не требует каких-либо изменений в протоколе Биткоина посредством софт форков. Это облегчает интеграцию BitVM в основную сеть Биткоина.
Заключение
Главная инновация BitVM заключается в его способности реализовывать проверку, полную по Тьюрингу, без изменения основного протокола Биткоина; это достигается творческим использованием скриптов, особенно тех, которые оптимизированы Taproot. Этот изобретательный дизайн позволяет беспрепятственно интегрироваться с основной сетью Биткоина без введения новых проблем совместимости или снижения децентрализации Биткоина.
Инновационное решение BitVM обладает потенциалом для внедрения смарт-контрактов и децентрализованных приложений в экосистему Биткоина. Например, его можно использовать для создания кросс-чейн мостов с минимальным доверием для соединения различных блокчейн-активов, повышая тем самым интероперабельность Биткоина. Кроме того, BitVM может помочь в создании более эффективных слоев расширения zkRollup, чтобы сделать Биткоин более масштабируемым. В двух словах, BitVM демонстрирует огромные возможности для продвижения экосистемы Биткоина в новую эру только за счет инновационного использования существующих функций.
Ссылки:
https://github.com/supertestnet/tapleaf-circuits
https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754