BitVM, RGB Protocol и Taproot Assets: как реализуют смарт-контракты в биткоине
Биткоин позиционируется как наиболее защищенный блокчейн на рынке. Использование энергоемкого алгоритма достижения консенсуса Proof-of-Work, отсутствие социальных центров влияния и высокие расходы на поддержание безопасности обеспечивают децентрализацию сети, устойчивость к атакам и форкам.
Вместе с тем, пока вокруг блокчейнов вроде Ethereum или Solana растут экосистемы с разнообразными приложениями и платформами, биткоин из-за своих технических особенностей остается просто платежной сетью. Исследования по расширению ее возможностей начались не так давно и в 2023 году могут предложить лишь компромиссные решения.
В этой статье Incrypted разобрал, с чем связаны ограничения биткоина, а также рассмотрел проекты, направленные на их устранение.
Ограничения биткоина
В 1936 году британский ученый Алан Тьюринг представил концепцию абстрактного вычислительного устройства для исполнения математических алгоритмов. Оно получило название машина Тьюринга.
В зависимости от того, какие операции может выполнять вычислитель, по Тьюрингу он классифицируется как:
- полный — теоретические способен на любые расчеты, то есть может решить любую математическую задачу при наличии достаточного количества ресурсов и времени;
- неполный — адаптирован под конкретные вычисления и имеет логические ограничения.
Ethereum Virtual Machine (EVM) — это полная по Тьюрингу машина, на которой можно проводить любые расчеты. Ethereum разрабатывался как децентрализованный компьютер с поддержкой высокоуровневых языков программирования, поэтому на базе EVM сравнительно легко создавать приложения и надстройки, построенные на смарт-контрактах.
В свою очередь, биткоин проектировался как платежная сеть с конкретным набором функций. Используемый в блокчейне язык программирования Script является неполным по Тьюрингу и в нем отсутствуют некоторые логические блоки, необходимые для проведения комплексных вычислений. Программное обеспечение биткоина нацелено в основном на определение условий расходования UTXO и практически не поддерживает другие типы операций.
Ограниченная логика исполнения реализована целенаправленно. Она позволяет защитить код от ошибок и эксплойтов, а также снизить потребление ресурсов, необходимых для проведения вычислений. Но это также значит, что сеть очень сложно адаптировать под решение любых других задач кроме передачи выраженной в биткоине ценности через систему UTXO.
Смарт-контракты на биткоине
Определение смарт-контракта было введено программистом Ником Сабо в начале 1990-х годов. По Сабо, смарт-контракт — это набор обязательств, выраженный в цифровой форме, включая протоколы, в рамках которых стороны выполняют эти обязательства.
Строго говоря, сеть биткоина поддерживает смарт-контракты. Даже с ограничениями Script у пользователей есть возможность установить определенные условия для расходования выходов, работающие по принципу «если-то». Вот некоторые типы биткоин-транзакций, доступные на данный момент:
- P2PKH (Pay-to-Public-Key-Hash) — стандартная биткоин-транзакция;
- P2TR (Paу-to-Taproot) — транзакция с использованием скриптов, внедренных обновлением Taproot;
- Time-Locked transaction — позволяет установить, через какое время (количество блоков) транзакция будет финализирована;
- Multi-Signature Script (Multisig) — предоставляет возможность настроить, сколько подписей и каких именно адресов требуется для совершения перевода.
Несмотря на то, что формально эти транзакции можно считать смарт-контрактами, они далеки от привычного понимания этого термина, используемого, например, в Ethereum.
Так, в соответствии со стандартом ERC-20 смарт-контракт для создания нового токена, среди прочего, должен содержать его наименование, тикер, объем, адрес владельца, а также правила дробления и передачи между кошельками. Ни один из представленных выше типов биткоин-транзакций просто не позволяет внести эти данные, поэтому используя Script невозможно запустить токен, не говоря уже о более сложных типах смарт-контрактов.
Эволюция сети и расширение возможностей
При всех своих ограничениях биткоин остается защищенной и децентрализованной сетью, которая могла бы дать техническую базу для самых безопасных и устойчивых к цензуре сервисов и активов в индустрии.
По этой причине разработчики уже много лет пытаются обойти ограничения Script и реализовать полноту вычислений по Тьюрингу (и смарт-контракты), используя ресурсы блокчейна. Одними из первых проектов в этом направлении стали Colored Coins и Omni Layer.
Первый «раскрашивал» биткоины, используя специальные кошельки вроде Coinprism. Суть сводится к тому, что в метаданные транзакции добавляется специальный «маркер» позволяющий отличить отдельно взятый BTC от других. Такая «цветная» монета, по сути, становилась токеном, и могла выполнять установленную функцию, например, предоставлять доступ к товарам или активам.
Что касается Omni Layer, то этот протокол позволил компании RealCoin (позже Tether) выпустить первые токены с привязкой к доллару еще до появления Ethereum и других сетей с поддержкой смарт-контрактов. Разработчики использовали биткоин в качестве базового уровня, «надстраивая» над ним платформу с более широкими возможностями.
Однако связь между Omni Layer и биткоином довольно простая: когда вы отправляете активы в протокол, он записывает информацию о вашем переводе в метаданные транзакции, гарантируя ее неизменность. При этом майнеры не могут проверить транзакции из Omni Layer — их верификация обеспечивается самим протоколом.
Еще одним большим шагом в развитии биткоина стало появление в 2016 году Lightning Network (LN). Решение позволяет пользователям открывать прямые каналы для переводов вне основной сети, записывая в блокчейн только результат своих обменов. По сути, сеть переносит обработку потока транзакций на узлы LN, существенно удешевляя переводы и увеличивая их скорость.
И хотя сама по себе Lightning Network не расширила возможности программирования биткоина, она стала своего рода «сетью в сети» с унаследованной безопасностью, но более дешевым хранением и передачей данных. Это важный аспект для развития смарт-контрактов, поскольку:
- снимает ограничивающий фактор в виде медленной финализации блоков и низкой пропускной способности биткоина;
- позволяет запускать в рамках LN мощные узлы, на базе которых можно создавать сложные надстройки с расширенным функционалом.
Как мы увидим дальше, некоторые проекты вроде Taproot Assets и RGB позволяют развернуть свои решения в LN, чтобы сэкономить на комиссии и избежать задержек при реализации функционала смарт-контрактов на биткоине.
Решения на базе Ordinals: BRC-20 и Inscriptions
В январе 2023 года был представлен протокол Ordinals, позволяющий присваивать порядковые номера отдельно взятым сатоши и отслеживать их. Пронумерованные сатоши затем используются в качестве «токенов» хранения информации, прописанной в метаданных. По сути, Ordinals развивают идею «маркировки» платежных единиц биткоина, представленную в Colored Coins.
Сатоши — наименьшая передаваемая единица измерения биткоина, названная в честь его создателя – Сатоши Накамото.
SAT — это одна стомиллионная часть Биткоина. 1 SAT = 0,00000001 BTC, а 1 BTC = 100 000 000 SAT.
На базе этого протокола в 2023 году появилось два решения — Inscryptions и BRC-20.
Inscriptions (или Artifacts) — больше известные как «NFT на биткоине». Это пронумерованные через Ordinals сатоши, в метаданные которых записаны изображения и другие медиафайлы.
BRC-20 — протокол для запуска взаимозаменяемых токенов в сети биткоина. Работает по тому же принципу, что и Inscriptions, то есть хранит информацию о выпуске и переводе токенов в метаданных нумерованных сатоши.
Обе технологии стали возможны благодаря обновлению Taproot, реализованному в сети биткоина в 2021 году. Taproot нацелено на оптимизацию хранения данных, выполнение скриптов и повышение конфиденциальности пользователей. Апдейт также поднял лимит памяти для метаданных.
Реализация Taproot заложила основу для большинства других «надстроек» для биткоина, поэтому рекомендуем подробно ознакомиться с этим обновлением.
Решения на базе Ordinals не снимают ограничения Script и архитектуры UTXO, а пытаются превратить пространство для хранения метаданных в «слой исполнения», используя нумерованные сатоши в качестве своеобразных «блоков в блоках».
Основным недостатком BRC-20 и Inscriptions остается необходимость использования альтернативной инфраструктуры. Стандартный биткоин-кошелек не распознает информацию, записанную в метаданные отдельных сатоши, поэтому есть риск случайно потратить дорогой «NFT», например, на оплату комиссий.
Кроме того, потенциал использования метаданных биткоина ограничен объемом блочного пространства. BRC-20 получили распространения только в качестве мем-токенов без какого-либо назначения просто потому, что более сложный функционал невозможно прописать в метаданных. Не говоря уже о том, что пока не удалось реализовать взаимодействие активов на базе Ordinals с другими стандартами и сетями.
BitVM, RGB Protocol и Taproot Assets
И до, и после Ordinals существовали проекты, нацелены на создание «надстройки», которая могла бы унаследовать основные преимущества биткоина, но поддерживать полные вычисления по Тьюрингу или, по крайней мере, более сложные смарт-контракты. Большинство из них построены на базе обновления Taproot и решения Lightning Network, но используют возможности этих проектов по-разному.
RGB Protocol
RGB (really good bitcoin) — это набор протоколов для запуска смарт-контрактов с унаследованной безопасностью биткоина. Проект представлен в 2016 году как ориентированное на LN решение по созданию токенов в сети биткоина, но со временем эволюционировал в полноценную среду для смарт-контрактов.
RGB унаследовал от биткоина защиту права собственности на смарт-контракт. Чтобы получить доступ к управлению кодом, пользователь должен владеть закрытым ключом биткоин-транзакции, через которую инициировали развертывание контракта. Все остальные взаимодействия, включая обмен и проверку данных, проводятся напрямую между сторонами вне сети. Блокчейн не задействуется для хранения данных и проведения расчетов.
Сам протокол RGB работает как направленный ациклический граф (DAG). Запущенный в DAG смарт-контракт хранится на узлах сторон, которые обмениваются информацией через прямые каналы связи — по умолчанию Lightning Network.
Кроме того, платформа разделяет владельца смарт-контракта и обслуживающего агента, поэтому создание, изменение, исполнение и проверка кода проводятся с использованием так называемой «схемы» (Scheme). Схема — это набор стандартных «шаблонов» для смарт-контрактов, при помощи которых полностью автоматизируется их обслуживание.
Проще говоря, владелец может инициировать какое-либо изменение в коде контракта RGB, но оно вносится по схеме, без вмешательства третьей стороны. Ни протокол, ни фактический разработчик не имеют доступа к контракту после его развертывания. Полностью автономная среда, управление которой защищено биткоин-ключом.
Команда проекта утверждает, что такой подход позволяет обезопасить смарт-контракты от взлома и эксплойтов из-за некачественного кода.
Это полностью отличается от привычных блокчейн-платформ вроде Ethereum. Тем не менее RGB поддерживает NFT, взаимозаменяемые токены и более сложные типы контрактов.
Однако у RGB есть серьезные недостатки:
- во-первых, возможности разработчиков ограничены — по сути, они могут только комбинировать различные паттерны схемы, заполняя их данными конкретного актива;
- во-вторых, RGB не обеспечивает публичность и доступность информации, как это делает основная сеть.
В некоторых случаях это является плюсом, поскольку обеспечивается конфиденциальность. В то же время, ситуация нивелирует одно из основных преимуществ децентрализованной сети, ведь стороны должны доверять друг другу.
Taproot Assets
Taproot Assets (ранее Taro) — это протокол для запуска токенов в сети биткоин, использующий UTXO Taproot и связанные с ним решения Tapscript и taptweak для хранения информации о предложении и балансе актива в данных биткоин-транзакции.
Если вы знакомы с концепцией Ordinals, описанной в предыдущем разделе, то понять будет проще. Токены BRC-20 хранят информацию о предложении в метаданных пронумерованных сатоши, а Taproot Assets записывают эту информацию в Taproot-выход транзакции в виде так называемого «разреженного дерева Меркла».
Фактически Taproot Assets встраивает в биткоин-транзакцию дерево Меркла, доказывающее баланс конкретного пользователя и общее предложение токена. Это дерево, в свою очередь, отображает данные из Universe — репозитория, в котором хранится полная история актива и который обслуживается эмитентом токена.
Благодаря такой архитектуре у пользователя есть два варианта доказательства баланса — офчейн-данные из Universe или разреженное дерево Меркла, размещенное в UTXO.
Работает это так:
- создатель токена проводит P2TR-транзакцию с использованием протокола Taproot Assets;
- в UTXO этой транзакции (по сути, генезис) хранится информация об активе в виде дерева Меркла;
- чтобы перевести токен, владелец Taproot-ключа должен изменить информацию о балансах в дереве Меркла так, чтобы общее предложение актива оставалось прежним;
- такое изменение вносится новой Taproot-транзакцией, но при этом для каждого перевода токена не нужна отдельная ончейн-транзакция. В рамках протокола владелец может обработать сразу «пакет» переводов, а потом опубликовать новое состояние балансов, как это делают роллапы или Lightning Network.
Подробнее об архитектуре Taproot Assets и взаимодействии пользователей с токенами можно узнать в технической документации.
Другим важным преимуществом Taproot Assets является полная совместимость с Lightning Network, что расширяет возможности для масштабируемости и снижения стоимости транзакций.
Taproot Assets создает отдельный слой для регистрации операций с кастомными токенами, во многом опирающийся на офчейн-данные, но публикующий состояние балансов в основной сети. Это решение более гибкое, масштабируемое и комплексное в сравнении с BRC-20, но и более сложное для неопытного пользователя.
BitVM
Это самый новый проект, нацеленный на превращение биткоина в полноценный децентрализованный компьютер. White paper BitVM представлена 9 октября 2023 года, а сама технология находится на стадии тестирования и нуждается в дальнейшем развитии.
По сути, BitVM использует концепцию Optimistic Rollups, чтобы вынести расчеты для смарт-контрактов за пределы сети, а затем провести ончейн-проверку на основе «доказательств мошенничества».
В теории после записи информации о смарт-контракте в Taproot-транзакцию (в виде двоичного кода) обмен данными и расчеты должны проводиться напрямую между сторонами, чтобы не перегружать блокчейн. Однако, если прувер (доказывающая сторона, владелец контракта) передает ошибочные данные, верификатор может инициировать ончейн-проверку. На этом и основана концепция доказательства мошенничества.
Но как провести проверку операции в сети, которая просто не поддерживает подобные расчеты? BitVM использует для этого дерево Меркла, при помощи которого создает логическую схему NAND, записанную в Taproot-транзакцию.
Грубо говоря, это значит, что древо Меркла в данных транзакции становится NAND-схемой, где каждая «ветвь» содержит одно из двух возможных значений — 1 или 0. Ончейн-расчет проводится буквально бит за битом, и выход предыдущей «ветви» становится входом для следующей. При этом между сторонами смарт-контракта постоянно проходит обмен транзакциями для сверки значений. Если версия расчетов прувера окажется неверной, верификатор получит его активы, заблокированные в Taproot-транзакции.
Подробнее о том, как BitVM позволяет строить NAND с использованием Taproot и дерева Меркла, а также как это влияет на расчеты можно узнать тут.
Глава Toniq Labs Боб Бодили отметил, что для решения одного спора может потребоваться несколько сотен транзакций и мощные каналы передачи информации. В условиях медленного и относительно маломощного биткоина такие вычисления могут сильно перегрузить сеть. К тому же, сами расчеты крайне неэффективны.
Другой важной проблемой остается двусторонность смарт-контрактов — обмен данными происходит напрямую между верификатором и прувером без возможности участия третьих сторон. Это делает невозможным создание децентрализованных приложений и требует дополнительных решений для построения многосторонних контрактов.
Кроме того, даже если такие расчеты и будут проводиться, BitVM — это очень сложное и низкоуровневое решение. Чтобы создать на базе этого примитива хоть какие-то рабочие продукты, потребуются годы.
Влияние на сеть
Опыт реализации продуктов на базе Ordinals и сервисов смарт-контрактов показал, что разные решения по-разному влияют на экосистему биткоина. Прежде всего стоит отметить, что в сообществе существует несколько лагерей. Условно их можно разделить на:
- консерваторов — считают, что биткоин изначально задуман как платежная система и должен оставаться именно таким. По их мнению, все расширения функционала приведут к затруднениям при использовании BTC в качестве средства для расчетов;
- умеренных новаторов — согласны, что сеть нуждается в обновлениях, но при этом должна оставаться достаточно защищенной и удобной для платежей. Призывают комплексно оценивать каждое решение с точки зрения его ценности и влияния на сам биткоин;
- новаторов-максималистов — уверены, что в эпоху современных блокчейнов биткоин стал неконкурентоспособным. Заявляют, что без расширения функционала и тотальных обновлений сети падение активности и доминирование Ethereum на рынке — лишь вопрос времени.
Однако активность каждой группы напрямую зависит от того, в какой мере новые разработки влияет на сам блокчейн. Так, во время ажиотажа вокруг Inscriptions и BRC-20 в мае 2023 года наблюдались очереди в мемпуле и существенный рост комиссий.
Этот скачок усложнил использование биткоина и вызвал дискуссию внутри сообщества, вплоть до предложения заблокировать стандарт BRC-20 на уровне кода.
С другой стороны, запуск RGB или Taproot Assets не привел к столь жарким дебатам и высокому интересу со стороны пользователей, поскольку:
- с технической точки зрения эти решения сложнее и специфичнее, чем Ordinals;
- их дизайн требует менее интенсивного использования сети и позволяет вынести расчеты в Lightning Network.
Потенциально наиболее сильное влияние на блокчейн может оказать BitVM. По сути, решение еще не запущено и находится на стадии тестирования, но многие эксперты отмечают, что даже если полные вычисления по Тьюрингу и удастся реализовать, то для этого потребуется большое количество дискового пространства и мощностей. При ограниченной пропускной способности биткоина реализация BitVM может стоить дорого и привести к перегрузкам сети.
Основная проблема в том, что на момент написания концепция использования BitVM и формат его взаимодействия с сетью биткоина не выработаны. Просто потому, что еще не протестированы базовые возможности решения и нет инструментов для разработчиков. Сама технология находится на стадии зарождения и только ее развитие покажет, нуждается ли блокчейн в адаптации и обновлении.
Также нельзя исключать влияние следующего буллрана. Рост рынка может вновь привлечь внимание к BRC-20 и Inscriptions, что на фоне увеличивающегося спроса на биткоин спровоцирует задержки в обработке транзакций и рост комиссий. И в этом случае стоимость разработок на базе BitVM (и других протоколов, не поддерживающих LN) может стать неоправданно высокой.