Клиентская валидация усложняет архитектуру кошельковых SDK: разбор интеграции RGB с WDK

Клиентская валидация усложняет архитектуру кошельковых SDK: разбор интеграции RGB с WDK

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

Компания Utexo представила поддержку RGB для Wallet Development Kit (WDK) от Tether через свой Utexo SDK. По сути, это решение помогает согласовать два принципиально разных подхода к пониманию состояния активов.

Почему кошельковые SDK и RGB плохо сочетаются

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

Эти предположения хорошо ложатся на модель UTXO в Bitcoin или на аккаунтные системы вроде Ethereum.

RGB намеренно устроен иначе. Он не публикует состояние активов в блокчейне: проверка выполняется на стороне клиента, а перенос состояния происходит вне сети. Транзакции Bitcoin в таком случае служат лишь «якорями».

Из-за этого возникает структурное несоответствие, особенно в трех аспектах:

  • Учет баланса: так как корректность зависит от локально хранимых доказательств и передаваемых пакетов данных, в блокчейне нет единого источника правды по балансам RGB.
  • Жизненный цикл транзакции: нужно согласовывать транзакцию Bitcoin и переход состояния RGB, но ни один из этих элементов по отдельности не описывает перевод полностью.
  • Хранение и восстановление состояния: простое «проигрывание» блокчейна не восстанавливает кошелек — необходимо сохранять и проверять также локальное состояние RGB.

Хотя RGB сохраняет безопасность и масштабируемость Bitcoin, он перекладывает на кошельковые SDK дополнительные обязанности: управление состоянием RGB, данными для валидации и их хранением, а также координацию всего этого с потоками транзакций Bitcoin.

Что дает интеграция

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

Чтобы устранить несоответствие, поддержка RGB от Utexo добавляет в WDK выделенный слой-адаптер. Он переводит операции RGB-кошелька в абстракции, совместимые с WDK.

Модуль wdk-wallet-rgb по-прежнему держит валидацию RGB, пакеты данных и управление состоянием вне ядра WDK, но при этом показывает балансы RGB через интерфейсы аккаунтов, ориентированные на кошелек, и согласует выпуск и переводы RGB с существующими рабочими процессами транзакций.

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

С модулем wdk-wallet-rgb RGB-ключи выводятся из стандартных seed-фраз BIP-39 и встраиваются в текущие процессы управления ключами. Выпуск и переводы RGB следуют тем же структурированным сценариям транзакций, что и другие операции кошелька. Состояние RGB можно резервировать и восстанавливать в зашифрованном виде вместе с остальными данными кошелька.

Ограничения модуля

У решения есть ряд ограничений. Модуль:

  • не предоставляет функциональность RGB Lightning-ноды.
  • не управляет сетевой конфигурацией и поиском нод.
  • не задает UX и пользовательские платежные сценарии на уровне приложения.
  • не устраняет присущую активам с клиентской валидацией сложность пользовательского опыта.

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

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

Хаб для развития блокчейн-экосистемы

Разработчик модуля, Utexo, состоит в CTDG Dev Hub. Этот хаб в рамках инициативы CTDG от dc.finance служит площадкой для взаимодействия разработчиков и пользователей разных блокчейнов.

В CTDG Dev Hub команда Utexo получает доступ к глобальному сообществу специалистов, которое может помогать идеями, участвовать в создании решений и давать обратную связь, одновременно внося вклад в развитие экосистемы Bitcoin.

Источник: dc.finance