Новая гибридная модель транзакций в блокчейне
Давайте поговорим о моделях “бухгалтерского учета” блокчейна 🤓. Новый гибридный подход ZetaChain позволяет смарт-контрактам напрямую взаимодействовать с состояниями в любой внешней цепочке.
Если вы собираетесь добиться универсальной поддержки смарт-контрактов на всех цепочках, то вам необходимо преодолеть:
- проблему асинхронности блокчейна (в отличие от смарт-контрактов в одной цепочке, таких как EVM);
- ограничения моделей транзакций блокчейна для поддержки межцепочечных 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:
- Смарт-контракт ZetaChain запускает сообщение и генерирует событие, которое пытается потратить UTXO на ZetaChain.
- Затем это событие подхватывается подписавшими ZetaClient, и они подписывают транзакцию во внешней цепочке.
- ZVM и ZetaClient будут проверять определенные инварианты, один из которых заключается в том, что выходная ZETA должен быть равен входному ZETA в UTXO.
- После подтверждения и наблюдения за исходящей транзакции, UTXO помечается как израсходованная и удаляется из машины состояний. Если исходящая транзакция не удалась (недостаточно газа и т.д.), UTXO помечается как возврат, и возврат ZETA и/или связанных монет осуществляется по цепочке источника. Когда возврат подтвержден, UTXO удаляется из машины состояний.
Виртуальная машина Zeta Chain (ZVM) ограничена в некоторых ключевых аспектах для поддержки атомарности транзакций между блокчейнами и обеспечения безопасности. Мы обсудим это более подробно:
- Каждый UTXO может генерировать только одно выходное событие. По сути, только одна внешняя цепочка может обновить свое состояние в ответ на UTXO. Поскольку исходящие транзакции во внешних цепочках, как правило, не подлежат возврату (например, отправленные токены не могут быть возвращены обратно), множественные выходные события сделают невозможным возврат всей транзакции.
- Все переводы ценностей через блокчейн должны осуществляться в 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