BitVM: Рассчитайте что угодно на Биткоине

Автор: Робин Линукс Переводчик: Denlink Community Translation Group

Резюме

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

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

1 Введение

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

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

2 Схема

С оптимистичными роллапами 1[2] [3] и предложение MATT (Merkelize All The Things) 2 Кроме того, наши системы основаны на протоколах защиты от мошенничества и ответа на запросы. Тем не менее, BitVM не требует каких-либо изменений в правилах консенсуса Биткоина. Лежащие в основе примитивы относительно просты. В основном он основан на хеш-блокировках, временных блокировках и больших стержневых корневых деревьях.

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

Модель призвана просто проиллюстрировать, что этот подход позволяет проводить универсальные вычисления на Биткойне. Для практического применения следует рассмотреть более эффективные модели.

Протокол прост: сначала прувер и верификатор компилируют программу в гигантскую двоичную схему. Проверяющий отправляет схему на адрес Taproot с конечным сценарием для каждого логического элемента по этому адресу. Кроме того, они предварительно подписывают ряд транзакций для поддержки игр «вызов-ответ» между проверяющими и верификаторами. Теперь, когда они обменялись всеми необходимыми данными, они могут перевести свой ончейн-депозит на сгенерированный адрес Taproot.

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

Обязательство по 3-битному значению

Фиксация битового значения является самым основным компонентом этой системы. Это позволяет проверяющему установить значение определенного бита в «0» или «1». В частности, он позволяет проверяющему устанавливать значение переменной между различными скриптами и UTXO. Это очень важно, потому что он масштабирует среду выполнения, разбивая время выполнения виртуальной машины Биткойна на несколько транзакций.

Промис содержит два хеш-значения: hash0 и hash1. На более позднем этапе проверяющий устанавливает значение бита равным "0", открывая предобраз0 (прообраз хэша0), или "1", открывая прообраз 1 (прообраз хэша1). Если в какой-то момент они выявят и preimage0, и preimage1, то валидатор может использовать их в качестве доказательства мошенничества и забрать депозит прувера. Это называется противоречивым утверждением. Способность наказывать за противоречащие друг другу утверждения – это то, что делает обязательство обязательным – это «обязательство, основанное на стимуле».

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

Рисунок 1: Реализация 1-битового обязательстваРисунок 1: Реализация 1-битного обязательства. Чтобы разблокировать этот сценарий, проверяющий должен показать один из прообразов hash0 или hash1. В этом примере выполнения проверяющий обнаруживает hash1 и устанавливает значение бита равным "1". Мы можем реплицировать это обещание, чтобы применить определенное значение в разных скриптах.

ДЛЯ УПРОЩЕНИЯ ПРЕДПОЛОЖИМ, ЧТО СУЩЕСТВУЕТ КОД ОПЕРАЦИИ OP BITCOMMITMENT, КОТОРЫЙ ЯВЛЯЕТСЯ СОКРАЩЕНИЕМ ДЛЯ ПРИВЕДЕННОГО ВЫШЕ СКРИПТА. Код операции использует два хэша и один хэшированный прообраз. На основе хэша, соответствующего прообразу, он помещает битовое значение в стек.

4 Логические промисы вентили

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

Реализация обещания NAND gate проста. Он содержит два битовых промиса, представляющих два входа, и один бит, представляющий выходы. Сценарий вычисляет значение NAND для двух входных данных, чтобы убедиться, что оно соответствует обещанным выходным битам.

Рисунок 2: Фиксация вентилей для операций NAND Рисунок 2: Фиксация вентилей для операций NAND. Выполнение этого сценария должно выявить значения битовых промисов A, B и C таким образом, чтобы A NAND B = C было истинным.

(Для простоты предположим, что существует код операции с именем OP NAND.) НА САМОМ ДЕЛЕ ЕГО НЕ СУЩЕСТВУЕТ, НО ЕГО МОЖНО ЛЕГКО РЕАЛИЗОВАТЬ С ПОМОЩЬЮ OP BOOLAND И OP NOT. )

5 Промисы бинарных схем

В предыдущем разделе мы определили обязательство NAND gate. Мы можем представить любую схему, комбинируя промисы гейта. Каждый шаг выполнения фиксируется в Tapleaf. Все они объединены в один и тот же адрес Taproot, так что прувер может выполнить любой вентиль в цепи. Выполнение вентиля требует, чтобы прувер открыл соответствующий промис вентиля и установил значения для его входного и выходного битов.

Taptree может стать массовым и иметь миллиард скриптов Tapleaf, но его ончейн-след невелик.

Рисунок 3: Случайный пример схемы Рисунок 3: Случайный пример схемы с 8 различными вентилями NAND и 4 входами A, B, C и D. Используя миллиарды вентилей, можно определить практически любую функцию.

Рисунок 4Рисунок 4: Для каждого гейта Taproot-адрес проверяющего содержит конечный скрипт с соответствующим промисом гейта. Это позволяет проверяющему устанавливать входные значения цепи в любой момент времени (здесь A, B, C и D).

6 Вызовы и ответы

Недостаточно просто зафиксировать цепь. Для того, чтобы опровергнуть ошибочные утверждения, верификатор должен иметь возможность оспорить утверждение доказывающего. Этого можно достичь, предварительно подписав ряд транзакций во время настройки. Эти сделки отвечают → вызовам →→ отвечают на →... Способ связан. Если одна из сторон прекращает участие, то после тайм-аута другая сторона выигрывает вызов и может забрать депозиты обеих сторон. До тех пор, пока обе стороны работают вместе, они могут работать вместе, чтобы урегулировать любой контракт путем подписания 2 из 2. Следующие механизмы требуются только в случае мошенничества.

Рисунок 5: Серия предварительно подписанных транзакцийРисунок 5: Предварительно подписанная серия транзакций для выполнения нескольких раундов запросов и ответов. Эта последовательность генерируется во время настройки.

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

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

Рисунок 6: После каждого ответа Вики может наказывать за неоднозначное поведение. Если Пол выставляет два конфликтующих значения переменной, Вики немедленно выигрывает испытание и получает возможность забрать свой депозит. Вики доказывает двусмысленность Пола, раскрывая любой из двух прототипов, обещанных его битами.

7 Ввод и вывод

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

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

Также возможен многосторонний ввод. Двери могут иметь битовые обязательства с обеих сторон.

8 Ограничения и перспективы

Представление функций в простых схемах NAND неэффективно. Используя более сложные коды операций, программы могут быть представлены более эффективно. Например, Bitcoin Script поддерживает сложение 32-битных чисел, поэтому нам не нужны двоичные схемы. У нас также могут быть большие битовые промисы, например, 32 бита в одном хеше. Кроме того, размер скрипта может достигать около 4 МБ. Таким образом, мы можем реализовать гораздо больше, чем одну инструкцию NAND в каждом конечном сценарии.

Представленная здесь модель ограничена двумя сторонами. Тем не менее, можно создать двусторонние каналы и связать их вместе, чтобы сформировать сеть, аналогичную Lightning Network. Изучение обоих параметров может дать интересные возможности для обобщения. Например, мы можем исследовать звездную топологию от 1 до n для сети. Еще один исследовательский вопрос заключается в том, можем ли мы применить нашу модель к системе n-to-n и создать более сложные фабрики каналов. Кроме того, мы можем комбинировать наши системы с различными оффчейн-протоколами, такими как Lightning Network или Rollups.

Другие направления исследований включают в себя межприкладную память, то, как делать заявления о произвольных данных, выгравированных на цепочке, или программируемые схемы вне сети, т.е. автономные виртуальные машины. Более сложные методы выборки, подобные STARK, также могут быть применены для проверки цепей за один оборот.

Следующей важной вехой является завершение конкретного проектирования и реализации BitVM, а также Tree++, высокоуровневого языка для написания и отладки контрактов Bitcoin.

9 Заключение

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

Благодарности

Отдельное спасибо Super Testnet и Сэму Паркеру, которые всегда считали, что биткоин не будет полным по Тьюрингу.

Список литературы

[1] Исследование Эфириума. Оптимистичные роллапы. 2022.

[2] Сальваторе Ингала. Мерклейзируйте все вещи. , 2022.

Ресурсы

[1] Команда переводчиков:

[2] Оптимистичные роллапы 1:

[3] МЭТТ 提案(Меркель Все Вещи)2:

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить