Образовательная серия Zetachain
November 29, 2022

Новая гибридная модель транзакций в блокчейне

Давайте поговорим о моделях “бухгалтерского учета” блокчейна 🤓. Новый гибридный подход ZetaChain позволяет смарт-контрактам напрямую взаимодействовать с состояниями в любой внешней цепочке.

Если вы собираетесь добиться универсальной поддержки смарт-контрактов на всех цепочках, то вам необходимо преодолеть:

  1. проблему асинхронности блокчейна (в отличие от смарт-контрактов в одной цепочке, таких как EVM);
  2. ограничения моделей транзакций блокчейна для поддержки межцепочечных dApps.

Исторически сложилось там, что существует 2 основные модели "бухгалтерского учета" для записи и изменения состояния в блокчейне: UTXO (вывод неизрасходованных транзакций), которая используется Биткойном, Ergo, Cardano и другими, и основанная на счетах, которая используется EVM.

Модель UTXO представляет глобальное состояние всех израсходованных и неизрасходованных выходных данных транзакций. Каждый вывод может быть привязан к событию транзакции с самого начала, а блокчейн функционирует как принятый реестр всех транзакций. Наглядно его можно представить в виде направленного ациклического графа (DAG) между адресами, ниже приведено сравнение моделей: UTXO - Вывод неизрасходованных транзакций (напр. Bitcoin) VS модель на основе аккаунта-счета (EVM-сети).

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

Ключевое различие между этими моделями - выразительность. Хотя высокая выразительность программирования на основе счетов позволяет легко создавать сложные dApps (AMM, ICO и т. д.), это достигается ценой снижения безопасности.

Так почему бы не объединить плюсы обеих моделей? Некоторые так и сделали. Ergo стала пионером модели расширенного UTXO, за которой последовала Cardano, но она не лишена серьезных перегрузок UTXO (завершенные транзакции, которые пытаются потратить один и тот же UTXO, терпят неудачу и должны ждать 1 блок и тратить новый UTXO).

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

UTXO включает в себя количество сожженной монеты ZETA, количество другой монеты (например, BTC в сети Bitcoin, где невозможно выпустить ZETA coin) и скрипт msg (примерно эквивалентный сообщению или вызову функции в Ethereum).

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

Рассмотрим гибридный поток UTXO-аккаунтов ZetaChain:

  1. Смарт-контракт ZetaChain запускает сообщение и генерирует событие, которое пытается потратить UTXO на ZetaChain.
  2. Затем это событие подхватывается подписавшими ZetaClient, и они подписывают транзакцию во внешней цепочке.
  3. ZVM и ZetaClient будут проверять определенные инварианты, один из которых заключается в том, что выходная ZETA должен быть равен входному ZETA в UTXO.
  4. После подтверждения и наблюдения за исходящей транзакции, UTXO помечается как израсходованная и удаляется из машины состояний. Если исходящая транзакция не удалась (недостаточно газа и т.д.), UTXO помечается как возврат, и возврат ZETA и/или связанных монет осуществляется по цепочке источника. Когда возврат подтвержден, UTXO удаляется из машины состояний.

Виртуальная машина Zeta Chain (ZVM) ограничена в некоторых ключевых аспектах для поддержки атомарности транзакций между блокчейнами и обеспечения безопасности. Мы обсудим это более подробно:

  1. Каждый UTXO может генерировать только одно выходное событие. По сути, только одна внешняя цепочка может обновить свое состояние в ответ на UTXO. Поскольку исходящие транзакции во внешних цепочках, как правило, не подлежат возврату (например, отправленные токены не могут быть возвращены обратно), множественные выходные события сделают невозможным возврат всей транзакции.
  2. Все переводы ценностей через блокчейн должны осуществляться в ZETA, потому что только монета ZETA находится под контролем системы ZetaChain и может быть возвращена (возмещена), если транзакция через блокчейн завершится неудачей.
Обратите внимание, что некоторые более сложные смарт-контракты, которые требуют нескольких выходных транзакций (например, должны отправляться в несколько цепочек), лучше всего записывать как многоступенчатые транзакции, где приложение само обрабатывает атомарность многоступенчатой транзакции.

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

Если вы разработчик, используйте этот примитив для создания мощных межцепочечных dApps в тестовой сети ZetaChain: https://docs.zetachain.com - мы здесь для совместной разработки с вами 💪.

ZetaChain — это фундамент для будущего мультичейна. Новый блокчейн обеспечивает функциональность мультичейна без использования мостов или обернутых токенов и легкое развертывание omnichain-dApps, или odApps. Эти приложения могут управлять и связывать данные и ценности на всех платформах смарт-контрактов, а также на платформах, не связанных с смарт-контрактами, таких как Bitcoin и Dogecoin.

Сайт: https://www.zetachain.com/

Discord: https://discord.gg/EkFxBCm8FB

Twitter: https://twitter.com/zetablockchain

Telegram: https://t.me/zetachainofficial