BitVM и UTXOracle: как они меняют представления о возможностях Биткойна

0
ПОДЕЛИТЬСЯ

Протокол, позволяющий выполнять произвольные сложные контракты на Биткойне без изменения фундаментальных правил консенсуса, и опенсорс модель бездоверительного расчёта актуальной цены BTC на основе только изменения UTXO-сета, — что это, как работает и как это меняет представления о возможностях Биткойна?

Навигация:

 


 

BitVM: произвольные вычисления на Биткойне, без форков

Многие годы Биткойн остаётся золотым стандартом криптовалют. Но в одном он до сих пор [намеренно] уступал другим протоколам — в способности обрабатывать сложные, полные по Тьюрингу смарт-контракты. В октябре Робин Линус, ведущий разработчик ZeroSync, опубликовал предложение (PDF) протокола BitVM, открывающее очень интересные перспективы с точки зрения разработки приложений для Биткойна и масштабирования сети. Потенциально этот протокол позволяет выполнять на основе Биткойна практически любые произвольные вычисления.

Однако, как подчёркивает второй из известных разработчиков BitVM, @super_testnet, оказывавший, как сообщается, “техническую поддержку” в создании первой рабочей версии — proof-of-concept — протокола и теперь работающего над расширением его возможностей, первоочередная задача BitVM состоит в масштабировании Биткойна, а не в том, чтобы принести в него DeFi-приложения “как в Ethereum”.

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

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

Что такое BitVM

BitVM (сокращение от “Bitcoin Virtual Machine”) можно представить как безопасную изолированную среду, встроенную в экосистему Биткойна. В этом виртуализированном пространстве можно работать с любыми вычислительными программами и выполнять любые смарт-контракты. Но вместо того чтобы выполнять сопутствующие вычисления непосредственно в блокчейне, что дорого и медленно, BitVM их только аутентифицирует. Это похоже на своего рода виртуальную тестовую лабораторию, позволяющую моделировать поведение программ и подтверждать результаты их выполнения, не создавая при этом никакой нагрузки на основную сеть Биткойна и, в норме, не внося неё никаких изменений (кроме транзакции, фиксирующей результат выполнения).

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

Как и Ethereum Virtual Machine (EVM), BitVM подразумевает поддержку смарт-контрактов, но отличается от EVM и подобных систем подходом и возможностями. EVM более универсальна в поддержке многосторонних контрактов и предлагает более широкий спектр вычислительных задач, но прямо на блокчейне, ценой увеличения затрат и часто приводя к превышению пропускной способности сети и чрезмерному разрастанию блокчейна.

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

Как работает BitVM

Для контекста, хорошо известная особенность Биткойна состоит в том, что правила расходования “монет” определяются тем или иным программным выражением (скриптом), присваиваемым каждому UTXO. Чтобы потратить связанные с этим скриптом биткойны, нужно выполнить условия скрипта — например, скрипт, который содержит открытый ключ и может быть выполнен только в том случае, если транзакция подписывается парным ему закрытым ключом. Для обеспечения консенсуса скрипты должны быть написаны на программном языке Биткойна, называемом, собственно, Script, однако этот язык намеренно (в целях безопасности) ограничен в гибкости.

Предложение Линуса обходит некоторые из этих ограничений, представляя собой простое, но мощное архитектурное решение с двумя основными участниками: доказывающий (Prover) и проверяющий (Verifier). Доказывающий — это сторона, инициирующая вычисления или утверждение, по сути, говоря: «Вот программа, и результат её выполнения, как я утверждаю, будет таким». Проверяющий, в свою очередь, отвечает за проверку этого утверждения. Такая система из двух ролей обеспечивает уровень сдержек и противовесов для обоих участников, обеспечивая точность и достоверность результатов вычислений.

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

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

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

Как пишет сам автор в уайтпейпер, BitVM-контракты напоминают Optimistic Rollups в Ethereum. Optimistic Rollups — это решение второго уровня для масштабирования блокчейнов, повышающее эффективность вычислений и хранения данных за счёт того, что выполняет большинство операций вне блокчейна, но с сохранением того же уровня безопасности, что и в ончейн-транзакциях. Основная идея состоит в том, чтобы считать все транзакции корректными (отсюда optimistic), если не доказано обратное. Только когда возникает спорная ситуация, соответствующие данные и вычисления публикуются и проверяются в основном блокчейне. Это значительно сокращает объём данных, которые необходимо хранить в блокчейне, освобождая место и снижая комиссии за транзакции.

В BitVM Optimistic Rollups могут быть особенно полезны. Когда инициируется транзакция, BitVM может использовать Optimistic Rollups для объединения нескольких офчейн- в одну ончейн-транзакцию, ещё больше сокращая след протокола в основном блокчейне.

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

Основы логических вентилей

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

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

Эти элементарные устройства принимают один или два “бита” информации — 1 или 0 — и выполняют с ними простую логическую операцию, в результате которой получают на выходе 1 либо 0, передаваемые затем на следующий логический вентиль.

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

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

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

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

Но как можно воспроизвести поведение логических вентилей НЕ-И на Биткойне, с нынешними возможностями Bitcoin-скрипта?

Как воспроизвести логические вентили НЕ-И на Биткойне

С помощью хешлоков (hashlock) и двух других операционных кодов, с которыми вы, вероятно, не знакомы: OP_BOOLAND и OP_NOT.

Сначала о хешлоках. Вы создаёте ветвящийся скрипт, потратить который можно одним из двух способов: раскрыть прообраз для хешлока A либо раскрыть прообраз для хешлока B. Вариант A помещает в стек число 1, а вариант B — число 0. Выполнить скрипт можно только с одним из прообразов, но не с обоими. Этот примитив предназначен только для того, чтобы пользователи могли фиксировать отдельные биты за раз для использования в скрипте с НЕ-И-вентилем.

 

BitVM и UTXOracle: как они меняют представления о возможностях Биткойна
Конкретная реализация для 1-битного обязательства. Чтобы разблокировать этот скрипт, доказывающий должен раскрыть прообраз hash0 либо hash1. В этом примере доказывающий раскрывает hash1 и устанавливает значение бита в “1”. Мы можем иметь копии этого обязательства для обеспечения определённого значения в различных сценариях. (Источник, PDF)

Ещё раз: логический вентиль принимает на вход два бита и возвращает один. Для вентиля НЕ-И, если оба входа равны 1, то на выходе должен быть 0; любая другая комбинация входных битов даст на выходе 1. Двухвариантный хешлок можно использовать для фиксации обоих входов, а также выхода, — нужен только способ проверить правильность выхода. Здесь-то и приходят на помощь OP_BOOLAND и OP_NOT.

Выбрав, какие значения применить на вход, и с каким значением сверять выход, можно воспользоваться интересным приёмом. OP_BOOLAND действует ровно противоположно НЕ-И: если оба входа равны 1, то на выходе будет 1; все остальные комбинации дают 0. OP_NOT берёт любое входное значение и меняет его на противоположное: из 1 делает 0 и наоборот. Вместе они позволяют воспроизвести логику вентиля НЕ-И для двух входных значений. Затем, используя OP_EQUALVERIFY, можно сверить полученный выход с декларируемым результатом, зафиксированным с помощью хешлока. Скрипт не пройдёт проверку, если реальный выход не совпадает со значением, которое декларирует доказывающая сторона.

Так мы воспроизвели средствами Bitcoin-скрипта вентиль НЕ-И и обеспечили его корректную работу.

 

BitVM и UTXOracle: как они меняют представления о возможностях Биткойна
Логический вентиль для операции НЕ-И (NAND). Выполнение этого скрипта требует раскрыть значения битовых обязательств A, B и C, такие, чтобы выполнялось условие A NAND B = C. (Источник, PDF)

Откуда здесь появляются произвольные вычисления

Что теперь можно сделать с этим базовым вентилем, воспроизведённым в Bitcoin-скрипте? Можно построить целое tapleaf-дерево (tapleaf — лист в tapscript-дереве), охватывающее каждый шаг любого произвольного вычисления, подобно логическим вентилям в компьютерных процессорах.

Для выполнения сложных вычислений логические вентили последовательно соединяют таким образом, чтобы первый вентиль, обработав полученные данные, передавал результат вход следующего вентиля. В нашем случае аналогичная схема воспроизводится через соответствующую привязку хешлоков между вентилями. Т.е. если в скрипте одного вентиля на выходе подразумевается выбор между прообразами для значения C1 или C2, то следующий вентиль в последовательности использует эти же значения хешлоков на соответствующем входе. Получается, единственный способ для кого-то подменить результат, полученный из предыдущего вентиля, — это раскрыть другой хешлок C, и это можно использовать в механизме штрафов.

BitVM и UTXOracle: как они меняют представления о возможностях Биткойна
Пример произвольной схемы с 8 различными НЕ-И-вентилями и 4 входами A,B,C и D. С помощью миллиардов вентилей можно определить практически любую функцию. (Источник, PDF)

Оба пользователя берут любое вычисление, которое они хотят произвести, и разбивают его на схему из НЕ-И-вентилей с последовательным выполнением вычислений. Затем они берут и кодируют каждый вентиль в схеме с соответствующим выбором хешлока для каждого шага схемы, кодируют это в tapleaf-дерево, которое можно свести к одному значению и записать в одном UTXO. Есть одна версия дерева для пользователя, доказывающего корректное выполнение программы, и ещё одна для проверяющего её выполнение. Далее они предподписывают серию транзакций для игры “вызов-ответ”, которая, в принципе, могла бы выполняться и ончейн, но в идеале все вычисления выполняются и должны проверяться вне блокчейна. Стороны совместно производят расчёт, переводя средства нужному субъекту в зависимости от результатов вычислений. Если же доказывающий перестаёт сотрудничать, то проверяющий может оспорить его результаты ончейн.

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

Первый шаг — это загрузка денег в схему. Один путь скрипта позволит доказывающему просто истребовать деньги в одностороннем порядке по истечении таймлока — времени блокировки. Ещё один позволит проверяющему мгновенно получить деньги, если тот сможет показать прообразы обоих возможных значений для любого входа или выхода текущего вентиля. Следующий путь скрипта позволит проверяющему принудить доказывающего выполнить в блокчейне контракт любого конкретного вентиля (например, сразу по прекращению сотрудничества офчейн). Этот путь требует от проверяющего выпустить ещё один прообраз хешлока, который есть только у него и будет служить блокировкой для задачи каждого вентиля для доказывающего. Это гарантирует, что доказывающий сможет выполнить только этот конкретный вентиль. Предподписанная транзакция проверяющего для этого пути потратит его на скрипт со следующими путями: проверяющий забирает монеты по истечении таймлока либо доказывающий выполняет вентиль и тратит монеты обратно в скрипт, подобный первому — доказывающий может забрать деньги после таймлока, проверяющий может забрать их мгновенно, если покажет оба прообраза для любой одной пары хешлоков, либо проверяющий может предложить новый вызов доказывающему.

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

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

Какие новые возможности открывает BitVM для Биткойна

BitVM может применяться бездоверительным образом в тех случаях, когда есть пара участников — Алиса и Боб, — являющихся естественными противниками — например, когда они вносят средства на выход, выплачиваемый победителю в шахматной партии между ними. Затем они могут использовать две (почти идентичные) произвольные программы, выполняющих последовательность ходов в логике шахматной партии. Одна программа будет возвращать true, если выиграла Алиса, другая — если выиграл Боб. Затем одна из сторон публикует в блокчейне транзакцию, утверждающую, что её программа выполнилась к значению true (т.е. заявляет о победе в партии); другая сторона либо согласится с этим утверждением (признав потерю средств), либо предоставит доказательство обмана (и получит средства в случае успеха).

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

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

Линус в своей уайтпейпер описывает широкий спектр новых функций, которые можно реализовать через эти логические вентили, — контракты не только для финансовых операций, но и для более сложных децентрализованных приложений (DApps). Автор упоминает также игры вроде шахмат, го или покера, и, в частности, проверку доказательств валидности контрактов в Биткойне. Кроме того, архитектура BitVM позволяет создавать действительно децентрализованные рынки предсказаний, “мосты” между BTC и другими блокчейнами или эмулировать новые опкоды. Вероятно, понадобится какое-то время для разработки и надлежащей реализации смарт-контрактов на этом протоколе для использования их в реальных условиях, но на сегодня сам факт появления такого протокола является революционным.

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

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

“Нет цели сделать из Биткойна псевдо-Ethereum”

Как уже упоминалось в начале, второй из известных разработчиков BitVM, @super_testnet, оказывавший, по сообщениям, “техническую поддержку” в создании первой рабочей версии — proof-of-concept — протокола и теперь работающего над расширением его возможностей, счёл нужным подчеркнуть, что основная идея и первоочередная задача BitVM состоит в масштабировании Биткойна, а не в том, чтобы принести в него DeFi-приложения “как в Ethereum”.

«Настоящая “киллер-фича” — это масштабирование Биткойна. Робин Линус небольшой поклонник смарт-контрактов и не горит энтузиазмом в том, что касается повышения “выразительности” Биткойна. Его реальный интерес в том, чтобы Биткойн мог обрабатывать миллионы транзакций в секунду». (Cointelegraph)

От себя @super_testnet замечает, что у него нет стремления наводнить BitVM EVM-подобными токенами, потому что это приведёт в Биткойн “недобросовестных акторов”:

«Я не хочу видеть в Биткойне чего бы то ни было из экосистемы Ethereum, потому что большая часть этих проектов — не более чем схемы Понци».

«Создание децентрализованной биржи на Биткойне стало бы шагом назад», — добавляет он.

Авторы протокола не считают также, что появление BitVM означает “немедленную смерть” для альткойнов на Ethereum (как некоторые поспешили заявить), однако BitVM может оттянуть из них часть спроса.

@Super_testnet выразил надежду, что BTC останется единственной денежной единицей в сети Биткойна:

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

BitVM может исправить один из недостатков Lightning Network

По словам @super_testnet, планируемая платёжная инфраструктура BitVM призвана также исправить один из недостатков Lightning Network — надёжность платежей:

«Lightning прекрасна как система, и она намного быстрее, чем, наверное, всё, что мы можем сделать на Биткойне. Но один аспект, с которым Lightning справляется не очень хорошо, — это надёжность платежей».

Биткойн-биржа River в августе раскрыла процент своих успешных платежей через Lightning, составивший 99,7% для 308 000 транзакций.

Что касается скорости транзакций, соавтор BitVM надеется, что со своим протоколом они смогут достичь 60% от скорости в Lightning.

Ничто не идеально. Каковы ограничения BitVM?

При всех достоинствах BitVM, важно признать и недостатки протокола.

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

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

Другое важное ограничение — это потребность для обеих сторон выполнять значительные объёмы вычислений вне блокчейна. Хотя вычисления офчейн способствуют минимальному воздействию BitVM на блокчейн Биткойна, это также создаёт существенную вычислительную нагрузку для участников. Пользователи должны обладать необходимыми вычислительными ресурсами для выполнения этих задач, что может оказаться непосильным для тех, кто использует менее мощное оборудование или хочет участвовать одновременно в нескольких контрактах BitVM.

И объём генерируемых и обрабатываемых BitVM данных. Он огромен. Речь идёт о tapleaf-деревьях с миллиардами листьев и сериях предподписанных транзакциях длиной по меньшей мере в несколько шагов, чтобы гарантировать точный расчёт. Затраты на управление офчейн-данными просто огромны — в противовес минимальному следу в блокчейне.

Как пишет сам автор в уайтпейпер протокола,

«Эта модель призвана просто проиллюстрировать, что такой подход позволяет осуществлять универсальные вычисления на Bitcoin. Для практических приложений следует рассмотреть более эффективные модели».

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

Что дальше

Обсуждение такого предложения может занять не один месяц.

Уже рассматриваются такие концепции, как объединение множества двусторонних каналов в сеть наподобие Lightning Network для расширения возможностей системы. Развиваясь и адаптируясь, BitVM имеет потенциал к тому, чтобы постепенно преодолевать существующие ограничения, становясь всё более универсальной и эффективной платформой для транзакций и контрактов на основе Биткойна.

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

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

Хотя недавний ажиотаж вокруг этой идеи в профильных СМИ, мне видится сильно раздутым и оторванным от реальности, я всё же думаю, что это монументальный момент в истории Биткойна. С точки зрения эффективности, размера taproot-деревьев и количества необходимых предподписанных транзакций BitVM абсолютно ужасна, и по крайней мере для меня вопрос о том, в каких случаях такой уровень неэффективности будет приемлемым компромиссом, остаётся открытым. Но функциональность, которую через это можно достичь — без всякого изменения консенсуса Биткойна, — поистине огромна.

“А DOOM она сможет запустить?”

Уже сейчас выдвинуты две конкретные идеи, в которых уровень получаемых от BitVM гарантий может оправдывать эти огромные затраты на офчейн-транзакции и скрипты в taptree.

Во-первых, новый тип двусторонней привязки: sentry peg. Можно создать федеративный сайдчейн, в котором федерация вносит облигации/бонды в BitVM-контракт, обеспечивающий логику сайдчейна. Затем при каждом выводе средств они должны будут предоставлять в BitVM доказательство легитимности вывода. Если такого доказательства не будет предоставлено, то сет проверяющих сможет конфисковать размещённые в BitVM бонды федерации. Это создаёт возможность интересной динамики, в которой субъект, хранящий средства а сайдчейне, фактически должен доказать внешней стороне корректность своих действий — иначе средства будут изъяты. Новая динамика по сравнению с традиционными подобными схемами заключается в том, что логика, определяющая правила штрафных мер, может быть гораздо сложнее и фактически проверяется прямо в процессе исполнения, без каких-то хитроумных криптографических трюков или другого уровня доверия.

Во-вторых, UTXOracle — способ бездоверительного вычисления цены биткойна с использованием только полной ноды и одного python-скрипта. Притом что это замечательный способ приближённо рассчитать долларовую стоимость BTC с помощью только собственного полного узла, до того не было никакого способа получать эти данные в биткойн-скрипте и использовать в смарт-контрактах. BitVM предлагает возможность реализовать такое решение. Построив схему логических вентилей для верификации блока Биткойна (с простым proof-of-work), можно передать в BitVM реальные полные блоки и при достаточно длинной их последовательности использовать логику UTXOracle внутри BitVM, привязывая результат контракта к данным о цене, самостоятельно полученным из блокчейна.

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

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


UTXOracle: децентрализованный подход к проблеме оракулов

Теперь мы знаем способ определять ежедневную цену биткойна с точностью до 1%, опираясь только на множество непотраченных выходов (UTXO) сети. Благодаря этому, мы теперь можем создавать децентрализованные приложения, полагающиеся на UTXO-set Биткойна, вместо доверенных сторонних оракулов, для определения долларовой стоимости BTC, используемой в discreet-log- (DLC) и смарт-контрактах. Какие возможности открывают перед нами децентрализованные приложения на Биткойне с использованием UTXOracle?

BitVM и UTXOracle: как они меняют представления о возможностях Биткойна

 

Когда хотите узнать актуальную “цену” биткойна, куда вы смотрите?

Единой цены биткойна не существует. Каждую секунду тысячи бирж, внебиржевых брокеров, платёжных компаний и прочих участников рынка котируют цену биткойна — и ни одна из них не является единственно верной в каждый момент времени.

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

Какие инструменты с минимизированным доверием можно создать, имея возможность рассчитывать точную цену биткойна на каждой высоте блока с помощью только своего полного узла и open-source модели?

  • DLC деривативы (опционы, фьючерсы, бессрочные фьючерсы)
  • Рынки ончейн-кредитования
  • Peer-to-peer маркетплейсы
  • Долларовые стейблкойны с обеспечением в BTC на Lightning
  • Аккаунты со стабильной долларовой стоимостью, деноминированные в BTC
  • Любой вариант использования, подразумевающий наличие долларового компонента

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

Ончейн-транзакции отражают глобальный сигнал экономического веса

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

Например, когда Mt.Gox в 2013-2014 гг. уже была неплатёжеспособна, но ещё до “официального” краха, заявленная цена BTC на платформе заметно отличалась от цен на других биржах из-за того, что Mt.Gox декларировала значительно большие балансы BTC, чем в действительности имела. В результате, чтобы обеспечивать вывод средств для существующих клиентов, бирже необходимо было поддерживать постоянный приток новых пользователей. Внутри своей системы Mt.Gox могла манипулировать ценой, но когда рынок стал использовать это расхождение курсов как арбитражную возможность, Mt.Gox рухнула.

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

По-настоящему значимые операции производятся на блокчейне Биткойна, а не в закрытых системах; финализация расчёта ончейн — вот что действительно важно. Каждое перемещение биткойнов ончейн подразумевает разрушение старых UTXO и создание новых. Вместе блокчейн Биткойна и UTXO-сет позволяют с идеальной точностью определить историю и текущее состояние сети.

В ПО Биткойна весь внутренний учёт производится в сатоши. Очевидно, что 1 биткойн равен 1 биткойну, но популярен также кейс, когда пользователь хочет отправить кому-то “100 долларов в биткойнах”, и участники этой транзакции должны согласиться в отношении цены BTC на момент транзакции.

В среднем 15% всех транзакций с биткойнами совершается на круглые суммы в долларах

Операции с биткойнами на круглые суммы в долларах США — это очень распространённый паттерн, и в UTXO-сете есть ясно различимые закономерности, по которым можно точно определить цену биткойна на любой момент в прошлом или настоящем (см. диаграммы ниже).

Фактически с 2014 г. в блокчейне прослеживается рост числа транзакций на круглые суммы в долларах — от $1 до нескольких тысяч долларов. В отдельные дни они могут составлять до 25% от суточного объёма создаваемых выходов.

UTXO-сет по состоянию на блок 772 298

Для любой заданной высоты блока существует только один UTXO-сет. На диаграмме ниже отражён весь сет из примерно 70 млн UTXO, составляющих все 19 млн существующих биткойнов, по состоянию на блок 772 298.

Поскольку Биткойн представляет собой полностью открытую систему без уровней доступа, любой пользователь, держащий полный валидирующий узел Биткойна, имеет на своём компьютере точно такие же данные и может самостоятельно воспроизвести такой же результат на данный момент времени. А живую версию этой визуализации можно увидеть и поиграться с ней на сайте utxo.live.

 

BitVM и UTXOracle: как они меняют представления о возможностях Биткойна
(Источник)

Если приблизить диаграмму и посмотреть отдельно на 2022 год, то можно заметить, что в UTXO-сете существуют устойчивые закономерности. Мы здесь остановимся на таких двух паттернах: горизонтальные и волнистые линии.

BitVM и UTXOracle: как они меняют представления о возможностях Биткойна
(Источник)

Горизонтальные прямые:

  • Представляют собой UTXO с круглыми значениями в BTC (0,001, 0,005, 0,01, 1 и т.д.).
  • Плоские при любом курсе BTC/USD, потому что отправка 1 BTC всегда равна 1 BTC.

Волнистые линии:

  • Представляют собой группы UTXO, деноминированные в круглых суммах в долларах ($1, $20, $50, $100, $200, $500, $1000 и т.д.).
  • Выраженно волнистые, но параллельные друг другу, поскольку люди отправляют множество транзакций исходя из их долларовой стоимости, и при колебаниях курса BTC/USD все эти номиналы изменяются пропорционально.
  • Колеблются обратно пропорционально цене BTC: при росте цены волнистые линии снижаются, поскольку с ростом цены для передачи каждого доллара требуется меньше BTC, и наоборот.

Интерпретация линий

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

Куда большее значение имеет факт наличия выраженных волнистых линий, чётких и последовательных. Именно это, при наличии open-source модели, и создаёт возможность для:

  • независимого расчёта цены BTC на любой высоте блока с помощью только собственного полного узла;
  • разработки настоящих DeFi приложений без потребности в доверенных сторонних ценовых оракулах (или без опоры на них).

Нативные логические проверки ценовой модели UTXOracle

Как можно легко проверить гипотезу о том, что волнистые линии представляют собой перемещение биткойнов, деноминированных в долларах? Выберите дату, когда, по вашим данным, курс BTC/USD пересёк некое круглое значение, и посмотрите, пересекаются ли в эту дату горизонтальная и волнистая линии.

Одна из таких точек пересечения — 27 июля 2020 года. Биткойн тогда, восстанавливаясь после мартовского обвала, преодолел отметку в $10 000.

На картинке ниже показан момент пересечения волнистой линии (USD) с горизонтальной (BTC) в тот день, когда цена BTC поднялась выше $10 000. В данном случае речь идёт о горизонтальной линии в 10 000 сат. (0,0001 BTC), но такая же картина наблюдается и на многих других номиналах BTC по мере продвижения по графику UTXO.

BitVM и UTXOracle: как они меняют представления о возможностях Биткойна
27 июля 2020 г. цена BTC превысила отметку $10 000. Источник

Вы можете поиграться с этим и сами: перейдите на utxo.live, увеличьте масштаб и изучите диаграмму в высоком разрешении.

Эти выделяющиеся уровни имеют большое значение, поскольку в той или иной степени такие волнистые линии присутствуют в каждом блоке и чрезвычайно устойчивы на таких скользящих периодах, как 144 блока (около 24 часов).

Точность ценовой модели UTXOracle

Наблюдать пересечения на “круглых” долларовых уровнях, приятно, но в большинстве своём эти уровни расположены не очень-то близко друг к другу. Нам же нужен способ построить на основе этих точек пересечения такую ценовую модель, которая позволит получить точную текущую цену на любой высоте блока после создания модели. Именно эту задачу и решает UTXOracle.

В этой предварительной версии модели входное значение на 27 июля 2020 года — день, когда курс BTC поднялся выше $10 000, — используется для подгонки модели для наилучшего соответствия цене. Используя только UTXO и средневзвешенную по объёму цену (VWAP) для этого дня, мы можем создать модель, которая при изменении UTXO-сета на будущие даты с поразительной точностью определяет ежедневную цену BTC начиная с этого дня, используя только UTXO-сет Биткойна и не обращаясь ни к каким внешним данным после 27 июля 2020 г.

BitVM и UTXOracle: как они меняют представления о возможностях Биткойна
Красная линия — подневное значение VWAP от sFOX, агрегатора, чьи цены охватывают выполненные сделки с десятков бирж и внебиржевых брокеров. Синяя линия — значение дневной цены BTC, полученное в UTXOracle на основе изменения UTXO-сета за каждый день.

За период с июля 2020 по январь 2023 года модель показала исключительно хорошие результаты: дневное медианное и дневное среднее расхождения между фактическим VWAP и ценой UTXOracle составило 0,65% и 1,04% соответственно, — это в пределах нормального диапазона комиссий, взимаемых при покупке BTC на розничных биржах.

Говорят, что все модели ошибочны, но некоторые полезны. Ключевое отличие UTXOracle от прочих ценовых моделей для биткойна заключается в том, что она не пытается предсказать будущую цену, а лишь стремится отразить точную текущую стоимость на основе последних блоков и соответствующих изменений в UTXO-сете. Учитывая, что эта версия модели не подвергалась тонкой подгонке для наилучшего соответствия и использует на входе только одну точку данных, модель явно ошибочна, однако выглядит вполне полезной.

Компромиссы UTXOracle

Если Биткойн и научил меня чему-то, так это тому, что компромиссы неизбежно возникают плюс-минус везде, и UTXOracle не исключение.

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

Модель UTXOracle опирается на несколько концепций:

  • Данные об UTXO Биткойна: бесплатные и широко доступные данные, доступ к которым можно получить, синхронизировав полный узел Биткойна
  • Данные о цене BTC для определения момента или серии моментов во времени, от которых следует строить модель, — бесплатные и широко доступные
  • Модель применяет значения на начальную(-ые) дату(-ы), в сущности, к любой последующей дате — здесь видится большое пространство для оптимизации
  • Способ использовать выходную цену UTXOracle в DeFi-приложениях

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

На централизованных площадках известны случаи, когда люди создавали “фиктивные” крупные ордера на покупку или продажу, чтобы создать иллюзию присутствия на рынке крупного покупателя или продавца, и позже просто удаляя эти ордера без исполнения. Это может провоцировать краткосрочные рыночные движения на централизованных площадках, но подделать UTXO невозможно: они или есть в добытом блоке, или нет.

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

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

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

UTXO дорого подделывать. В блокчейне Биткойна не существует такого понятия, как “спам”. Есть только транзакции, которые платят комиссию за включение в блок. Это означает, что данные в блокчейне дорого производить или цензурировать, и создание множества UTXO для подделки ценового сигнала потребует реальных затрат капитала.

Точность текущей модели снижается примерно через два года — это видно на графике. На практике, скорее всего, модели через какое-то время потребуется перекалибровка. Однако корректировка модели с учётом изменения паттернов UTXO несёт в себе несравнимо меньшие риски, чем изменение правил консенсуса в Биткойне, и если только участники не совершают сделок ончейн с многолетними опционами/фьючерсами, скорее всего, это не является значимым препятствием для использования модели.

Текущая модель плохо справляется с экстремальной волатильностью. Колебания загрузки мемпула и ценовая волатильность создают ситуации, когда цена в UTXOracle может в моменте отклоняться от цены на централизованной бирже более чем на 10%. Хотя это, по-видимому, можно улучшить с помощью более комплексной модели, это указывает на потенциальное серьёзное ограничение для практического использования модели.

Есть также проблема эхо-камеры: в случае большого успеха модель может стать менее эффективной. В мире, где многие люди осуществляют экономическую деятельность исходя из цены, определяемой UTXOracle, появится множество дополнительных UTXO с круглыми долларовыми значениями. Эти UTXO могут снизить точность модели или как-то иначе её исказить, подобно тому как большая языковая модель (LLM), обученная на контенте, сгенерированном LLM, не сравнится в эффективности с моделью, которая обучалась на контенте, сгенерированном человеком.

Практическое применение UTXOracle

Нравятся они вам или нет, но я думаю, что вы слышали об Ordinals. Ordinals показали, что люди могут объединяться вокруг методологии интерпретации UTXO-сета, технически внешней по отношению к Биткойну, но которая может быть закреплена на социальном уровне в качестве дополнительного протокола “поверх” Биткойна.

Я надеюсь, что кто-то создаст достаточно точную версию UTXOracle, которая позволит людям использовать эту версию в качестве отправной точки при создании децентрализованных приложений на Биткойне.

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

Успешной будет такая реализация, при которой:

  • Входные данные модели общеизвестны, а получаемые значения поддаются проверке
  • Участники DLC могут оспорить ложные результаты, рассчитав свою собственную цену с использованием входных данных модели (элегантное решение этой проблемы ещё ждёт своего воплощения).

И в которой возможна любая из этих моделей безопасности:

  • Peer to peer: два или более обычных участника могут использовать модель UTXOracle без участия третьих лиц.
  • Верифицируемые централизованные оракулы: централизованный оракул подписывает сообщение с указанием конкретной модели UTXOracle, которую будет использовать оракул, а участники могут проверять результаты и наказывать недобросовестных акторов.
  • UTXOracle как участник кворума: использование цены UTXOracle в качестве логической проверки в традиционной модели централизованного оракула либо в системе два-из-трёх или три-из-пяти оракулов.

Варианты использования UTXOracle

DLC-деривативы (опционы, фьючерсы, бессрочные фьючерсы)

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

Например: Алиса вносит сумму в BTC на адрес под управлением DLC. Боб выплачивает Алисе сумму в BTC, деноминированную в долларах (о чём свидетельствует цена UTXOracle). Во время расчёта Алиса или Боб могут предоставить подпись оракула, подтверждающую цену, рассчитанную по модели UTXOracle, для определения расчётного потока средств как истёкшего или исполненного.

Рынки ончейн-кредитования

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

Например: У меня есть 1 BTC (стоимостью $100 тыс.), и я хочу взять частичный кредит в размере $30 тыс. без продажи своего биткойна. Я могу по договорённости с маркетмейкером внести свой 1 BTC и 0,3 BTC маркетмейкера (стоимостью, соответственно, $30 тыс.) на адрес под управлением DLC. После этого я могу потратить 0,3 BTC на свои цели.

Обычное погашение кредита

В этом сценарии заёмщик имеет возможность подписать транзакцию, передающую маркетмейкеру $30 тыс. вдобавок к первоначальному 1 BTC, или внести депозит в размере $30 тыс. (о чём свидетельствует цена UTXOracle) и вывести первоначальный 1 BTC.

При ликвидации, если стоимость 1 BTC по адресу под управлением DLC упадёт до уровня, близкого к $30 тыс. (о чём свидетельствует цена UTXOracle), то маркетмейкер может списать весь 1 BTC, чтобы погасить кредит и вернуть себе основную сумму долга.

StableSats

Модель UTXOracle предлагает также интересный вариант использования вокруг StableSats — долларовых стейблкойнов с обеспечением в BTC или счетов со стабильной долларовой стоимостью в Биткойне или Lightning.

Представим, что вы хотите хранить BTC на сумму $1000 в течение следующего месяца. Вы не хотите или не можете хранить $1000 наличными, в банке, в стейблкойнах на Ethereum или Tron или на бирже. Вы можете заключить соглашение с маркетмейкером Lightning Network, который будет ежедневно корректировать баланс вашего счёта исходя из чистого изменения его стоимости. Вы же сможете самостоятельно проверять правильность выплат, используя предварительно согласованную модель UTXOracle. В конце месяца в вашем Lightning-канале будет находиться уже другое количество BTC, но их стоимость будет составлять те же $1000.

Peer-to-peer маркетплейсы

Продавцам в онлайн-маркетплейсах сложно устанавливать цену на товары в BTC из-за его волатильности, а также из-за того, что расходы продавца, вероятнее всего, будут выражены в долларах. Но принимать платежи в долларах — значит принимать риск возврата платежей, мошенничества, а также комиссии и сложности, присущие современным платёжным системам. Ценообразование товаров в долларах, но с возможностью принимать их в биткойнах по модели UTXOracle может способствовать увеличению объёмов торговли в BTC.

Следующие шаги для UTXOracle

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

 


Подписывайтесь на BitNovosti в Telegram!
Делитесь вашим мнением об этой статье в комментариях ниже.

На основе источников:

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here