Магия RGB: контракты на Биткоине

Магия RGB: контракты на Биткоине

RGB – это метод проверки прав собственности на базе Биткоина, который позволяет сохранить свойства Биткоина.

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

Источник изображения: mashable.com
Источник изображения: mashable.com

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

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

На самом деле в этом нет ничего нового. Это действительно тот же механизм, который использовался для передачи собственности до того, как публичные реестры стали популярными. В Великобритании, например, до 90-х годов не было обязательной регистрации собственности при переходе права собственности. Это означает, что до сих пор более 15% земель в Англии и Уэльсе не зарегистрированы. Если вы покупаете незарегистрированную собственность, вместо проверки в реестре, является ли продавец истинным владельцем, вам придется проверить непрерывную цепочку владения, насчитывающую не менее 15 лет (достаточно длительный период, чтобы предположить, что продавец имеет достаточное право собственности). При этом вы должны убедиться, что любая передача права собственности была осуществлена правильно и что любые ипотечные кредиты, использованные для предыдущих сделок, были полностью погашены. Преимущество этой модели в улучшенной конфиденциальности, и вам не нужно полагаться на хранителя государственного земельного реестра. С другой стороны, это значительно усложняет проверку права собственности продавца для покупателя.

Свидетельство о праве собственности на незарегистрированное недвижимое имущество.
Свидетельство о праве собственности на незарегистрированное недвижимое имущество.

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

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

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

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

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

Схема

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

Эта модель, только что описанная для контрактов, проверяемых на стороне клиента, и передачи права собственности – это именно то, что было реализовано с протоколом RGB. С помощью RGB можно создать контракт, который определяет права, назначает их одному или нескольким существующим биткоин UTXO и указывает, как их право собственности может быть передано. Контракт может быть создан на основе шаблона, называемого «схемой», в котором создатель контракта только регулирует параметры и права собственности, как это делается с традиционными юридическими контрактами. В настоящее время существует два типа схем в RGB: одна для выпуска взаимозаменяемых токенов (RGB20) и вторая для выдачи предметов коллекционирования (RGB21), но в будущем кто угодно может разработать больше схем без разрешения, не требуя изменений на уровне протокола.

Вот более практический пример: эмитент взаимозаменяемых активов (например, акций компании, стейблкоинов и т. д.) может использовать шаблон схемы RGB20 и создать контракт, определяющий, сколько токенов он будет выпускать, имя актива и некоторые дополнительные связанные метаданные. Затем он может определить, какой биткоин UTXO имеет право передать право собственности на созданные токены, и назначить другие права другим UTXO, например, право на вторичный выпуск или повторное номинирование актива. Каждый клиент, получающий токены, созданные по этому контракту, сможет проверить содержание контракта Genesis и подтвердить, что любая передача права собственности в истории полученного токена соответствовала изложенным в нем правилам.

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

С точки зрения масштабируемости RGB также предлагает некоторые преимущества. Прежде всего, большая часть данных хранится вне сети, поскольку блокчейн используется только в качестве уровня обязательств, что снижает комиссии, которые необходимо платить, и означает, что каждый клиент проверяет только те переводы, в которых он заинтересован, а не всю деятельность глобальной сети. Поскольку для передачи RGB по-прежнему требуется транзакция Биткоина, экономия на комиссиях может показаться минимальной, но когда вы начнете вводить пакетную обработку транзакций, они могут быстро стать огромными. Действительно, можно передать все токены (или, в более общем смысле, «права»), связанные с UTXO, произвольному количеству получателей с одним обязательством в одной биткоин-транзакции. Предположим, вы являетесь поставщиком услуг, осуществляющим выплаты сразу нескольким пользователям. С RGB вы можете за одну биткоин-транзакцию совершать тысячи переводов тысячам пользователей, запрашивающих различные типы активов, что делает предельные затраты на каждую отдельную выплату абсолютно незначительной.

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

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

Заключение

RGB – это революционная инновация, которая открывает новые варианты использования с помощью совершенно новой парадигмы, но какие инструменты доступны для ее использования? Если вы хотите поэкспериментировать с ядром самой технологии, вам следует непосредственно опробовать узел RGB. Если вы хотите создавать приложения поверх RGB, не углубляясь в сложность протокола, вы можете использовать библиотеку rgb-lib, которая предоставляет простой интерфейс для разработчиков. Если вы просто хотите попробовать выпускать и передавать активы, вы можете поиграться с Iris Wallet для Android, чей код также находится в открытом доступе на GitHub. Если вы просто хотите узнать больше о RGB, вы можете просмотреть этот список ресурсов.

Это гостевой пост Федерико Тенга, долгое время участвовавшего в проектах Биткоина с опытом работы в качестве основателя стартапа, консультанта и преподавателя. Точки зрения, высказанные в этой статье, принадлежат автору и не обязательно отражают взгляды BTC Inc. или Bitcoin Magazine.

Как правильно обращаться с токенами BRC-20 и Ordinals Как правильно обращаться с токенами BRC-20 и Ordinals Прагматичный взгляд на проблему Ordinals и токенов в Биткоине и на то, как решить проблему их потребительства блочного пространства. Робби Гринфилд 19 мая 2024
Почему Биткоин – это «заморозка», в которой отчаянно нуждаются ваши сбережения Почему Биткоин – это «заморозка», в которой отчаянно нуждаются ваши сбережения По мере развития технологического прогресса свободный рынок неумолимо движется к разбавлению средств. Биткоин – это глубокая «заморозка», в которой отчаянно нуждаются ваши сбережения. Unchained Capital 12 мая 2024
Настройка мультиподписи своими руками или совместное хранение с мультиподписью? Настройка мультиподписи своими руками или совместное хранение с мультиподписью? Решение перевести биткоин на самостоятельное хранение – это только первый шаг. Держатели должны решить, как они хотят защитить свои сбережения: с помощью единой подписи, самостоятельно созданной мультиподписи или совместного хранения. Unchained Capital 12 мая 2024