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

Zetachain - децентрализованная платформа блокчейна и смарт-контрактов

1/ #Blockchain4Blockchains

Добро пожаловать на 1-ю сессию Zeta Education.🤖

Чтобы начать нашу серию #ZetaEd, давайте обсудим, почему ZetaChain является первой #Blockchain4Blockchains.

Один из популярных подходов к межцепочечным (cross-chain) решениям называется "Блокчейн для Блокчейнов" (BoBs). Вспомните Cosmos и Polkadot.

BoB — это фреймворки, которые предоставляют уровни данных, сети, консенсуса, поощрения и контрактов для создания блокчейнов для конкретных приложений, которые взаимодействуют друг с другом.

Чтобы обеспечить совместимость, эти блокчейны, как правило, должны быть построены на какой-то общей основе (например, IBC). Проблема в том, что устаревшие блокчейны или новые блокчейны с их собственным консенсусом не могут быть частью BoB.

Мы описываем ZetaChain как Блокчейн ДЛЯ Блокчейнов из-за его более общего подхода: нативные межцепочечные смарт-контракты, которые напрямую взаимодействуют практически с любым внешним блокчейном. Другими словами, вы можете рассматривать ZetaChain как более независимый связующий слой по сравнению с BoB и другими чейнами, которые пытаются втянуть как можно больше экосистем в свои собственные. ZetaChain против фрагментации.

С ZetaChain нет необходимости в новой обертке или блокировке активов для передачи ценности между цепочками, а также не нужны новые мосты для каждой пары блокчейнов. Таким образом, каждая сеть может легко получить доступ к единой ликвидности.

Смарт-контракты ZetaChain также могут напрямую хранить активы во внешней цепочке и управлять активами в соответствии с запрограммированной логикой (смарт-контракты Биткойн?👀). Каждое взаимодействие с внешней цепью осуществляется непосредственно на внешних цепях.

Как первый Layer1 блокчейн со встроенной функциональной совместимостью представляется целесообразным использовать ZetaChain в качестве первого настоящего #Blockchain4Blockchains.


2/ Межсетевой обмен

ZetaChain — единственная децентрализованная платформа блокчейна и смарт-контрактов, созданная для совместимости с омниканальными сетями.

Добро пожаловать на вторую сессию Zeta Education🤖.

В этой сессии #ZetaEd мы вернемся к whitepaper с примером межцепочечного обмена до и после ZetaChain.


Сравнение обменов между блокчейнами

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

Для повышения уровня совместимости используется несколько межцепочечных стратегий, но основная проблема фрагментации блокчейна сохраняется.

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

Если бы у вас был блокчейн общего назначения, поддерживающий обмен сообщениями и смарт-контракты на всех цепочках, то межцепочечный обмен прошел бы гораздо более гладко. Давайте рассмотрим этот пример сейчас на примере ZetaChain 👇

ZetaChain - это децентрализованный блокчейн PoS с многосторонней схемой пороговой подписи (TSS - простой криптографический метод генерации распределенного ключа и подписи к нему). Валидаторы ZetaChain подтверждают достоверность событий/транзакций на Цепочке 1 и 2 (смарт-контракт Цепочки 2 вносит адрес TSS ZetaChain в белый список доверия). Это позволяет условно выполнять контракт цепочки 2 в зависимости от транзакций/сообщений из цепочки 1. К сообщениям можно прикреплять ценность в виде монеты ZETA (встроенная кросс-цепь), что упрощает передачу ценности.

С помощью TSS ZetaChain может хранить и управлять собственными активами на любой цепочке. Только благодаря передаче сообщений можно создавать такие важные приложения, как межцепочечные DEX, займы/кредитование и многоцепочечные NFT.


3/ Мосты

Давайте поговорим о мостах 🌉 — решения для создания мостов объединяют активы и создают риск атак.

ZetaChain — это первый блокчейн со «встроенной» функциональной совместимостью (передача стоимости без моста 👀) #ZetaEd #interoperability

Проще говоря, мосты — это популярный способ перемещения активов между блокчейнами. Они работают, сообщая и доказывая цепочке B, что определенная транзакция произошла в цепочке A. Давайте рассмотрим базовый сценарий одностороннего моста в Ethereum из Биткоина 👇

Когда пользователь Биткойн отправляет 1 BTC на адрес, в Ethereum выпускается один wBTC. Чтобы сделать это без доверия, смарт-контракт на Ethereum может проверить TX (транзакцию) в Биткойне и выпустить монету wBTC на Ethereum. BTCRelay и Rainbow Bridge — хорошие примеры ненадежных мостов.

Но это не единственный подход к передаче активов между сетями. Существует ряд стратегий с различными уровнями доверия и возможностями (дополнительную информацию см. в нашем техническом документе: https://bit.ly/Zetachainpaper).

Одна из проблем с обертыванием активов заключается в том, что пользователи несут риск, например, не иметь возможности выкупить свой wETH.

В феврале 2022 г. мост-контракт Wormhole (кроссчейн-сервис) был взломан, и в результате одной из крупнейших DeFi эксплойтов они потеряли 320 млн долларов в wETH.

Итак, у нас есть несколько проблем:

  1. Обернутые активы и централизованные хранилища часто являются точками отказа, которые приводят к потерям в сотни миллионов долларов;
  2. Пользователи и разработчики разделены на соответствующие цепочки, что приводит к серьезной, растущей фрагментации.

Текущая экосистема:

В ZetaChain все средства, находящиеся в состоянии покоя, не подвергаются риску, поскольку отсутствует взаимозависимость через обертку/блокировку. Единственная (собственная) ценность, которая может проходить через цепочку, - это токен $ZETA, что значительно сокращает площадь атаки.

Транзакции также производятся немедленно. Считайте ZETA промежуточным токеном, который мы можем обменять на ZETA в источнике, сжечь его, а затем добыть ZETA для обмена на целевой актив на месте назначения.

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

Если это не взорвет ваш мозг, мы поговорим о смарт-контрактах ZetaChain, которые могут напрямую хранить/управлять активами (и рассчитываться по транзакциям) на внешних цепочках в соответствии с предопределенной произвольной логикой (но об этом подробнее в другом #ZetaEd 😏).

Мы надеемся, что этот обзор мостов был вам полезен.


4/ Omnichain dApps

Что такое omnichain dApps? Проще говоря, odApps охватывают все цепочки и обеспечивают беспрепятственные транзакции между ними. ZetaChain - единственный публичный блокчейн, который поддерживает #odApps 🤓.

"Omni" означает "все", поэтому в данном контексте omnichain описывает что-то, что охватывает несколько и/или все цепи и функционирует в этих цепях бесперебойно. Стоп 🛑 как мы вообще пришли к этому новому криптографическому примитиву? 👇

Первым появился Bitcoin, пионер блокчейна и децентрализованной криптовалюты. Несмотря на ограниченность поддерживаемых им сценариев, Биткойн может работать с несколькими простыми (но принципиально очень полезными приложениями), такими как multi-sig (мультиподпись) и атомарные свопы (atomic swaps — это метод функционирования цифровых активов, предоставляющий возможность быстрого обмена между двумя криптовалютами работающими на разных блокчейнах).

На втором месте оказался Ethereum, который расширил сферу применения блокчейна до поддержки полной программируемости по Тьюрингу с помощью виртуальной машины Ethereum Virtual Machine (EVM) и основанной на учетных записях системы закрытых ключей и смарт-контрактов, что сделало его самым распространенным блокчейном для развертывания dApps.

На третьем этапе произошло быстрое расширение мультичейна с помощью таких L1, как Polkadot, Solana, Avalanche и Cosmos, все из которых поддерживают почти полные по Тьюрингу смарт-контракты и обеспечивают компромиссы в трилемме блокчейна:

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

В многоцепочечном мире у пользователей больше возможностей, но приложения фрагментированы, а ликвидность разрознена. Текущие решения по межблокчейновому соединению требуют мостов и обернутых активов (мы говорим об опасностях таких подходов в другой теме #ZetaEd: https://bit.ly/3rtu370).


5/ Onmichain счета

Что такое Omnichain-аккаунты (счета)? Эта функция позволяет ZetaChain управлять средствами и данными в любом #blockchain (даже в устаревших цепочках, таких как #Bitcoin) 😮 давайте погрузимся и узнаем, как это работает.

#zetaed#интероперабельность#omnichain

Часть того, что делает смарт-контракты такими мощными, заключается в том, что они могут получать, удерживать и манипулировать активами в соответствии с запрограммированной логикой. Однако так было не всегда.

Важные устаревшие сети, такие как #Bitcoin, #Dogecoin, #Monero и другие, не имеют общего уровня возможностей смарт-контрактов для поддержки сложных dApps (биржи AMM, рынки залогового заимствования/кредитования с пулами и т.д.).

Обходные пути включают в себя обёртку таких активов, но существующие модели доверия сомнительны. Мы много говорили о рисках.

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

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

🎬 представляем ✨Учетные записи Omnichain✨ - эта функция описывает способность ZetaChain поддерживать управляемые смарт-контрактом внешние активы и счета на любом блокчейне и уровне. Как именно? 👇

Секретный соус заключается в схеме распределенной пороговой подписи ZetaChain (TSS): все валидаторы коллективно владеют единым открытым/закрытым ключом, который может напрямую инициировать транзакции в других блокчейнах.

Наличие единого распределенного публичного ключа и адреса позволяет ZetaChain хранить активы в цепочках, даже не поддерживающих смарт-контракты, избегая при этом единой точки отказа (что и дало ей название "Omni "chain Accounts 😬).

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

Omnichain Accounts - это большой прорыв для криптоэкосистемы. По сути, он предоставляет универсальные возможности смарт-контрактов для любого внешнего блокчейна.

Это означает, что odApps (Omnichain dApps) теперь могут напрямую хранить и манипулировать активами в блокчейнах и обеспечивать безопасность на уровне "холодных кошельков" с функциональностью на уровне "горячих кошельков" (да, включая Биткоин).


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

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

#zetaed#интероперабельность#omnichain#web3

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

  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 - мы здесь для совместной разработки с вами 💪.


7/ Механизмы верификации в блокчейне

Как узнать о прошлых событиях на #blockchain? Вот 1️⃣0️⃣1️⃣ механизм верификации блокчейна 🤓.

#zetaed#interoperability#omnichain#web3#fullnode#lightclient#merkletree#notarization#spv#hashfunction#utxo

Накопленные в прошлом события на блокчейне довольно важно знать. Они показывают свидетельства транзакций. Обратите внимание, что события и состояния блокчейна обрабатываются по-разному в разных цепочках⛓️.

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

Но остается большой вопрос: как узнать, что произошло, не доверяя централизованному органу, который расскажет вам, что случилось? Это ставит под сомнение предпосылки публичных блокчейнов.

Решение заключается в принципе: проверяй, а не доверяй. Блокчейн устроен таким образом, что любой пользователь может запустить "полный узел", чтобы проверить все в соответствии с правилами консенсуса. Полный узел обладает двумя важными свойствами 👇

A) Валидность: что блокчейн, которому соответствует полный узел, использует те же правила консенсуса.
B) Каноничность: все полные узлы в сети имеют единообразное представление о генезисной цепочке блоков. Другими словами, их блокчейны являются префиксами друг друга.

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

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

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

Биткойн решил эту проблему с помощью системы под названием SPV (простая проверка платежа). Проще говоря, это похоже на использование функции хэширования (MD5, SHA1, SHA256 и т. д.) для хэширования загруженного файла и сравнения хэша с надежным источником для проверки подлинности.

Хэш-функция:

  1. уникальна: даже изменение одного бита приведет к совершенно другому хэшу (коллизии хэшей редки);
  2. необратима: хэш-функция практически односторонняя: ее нельзя отменить.

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

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

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

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

Чтобы проверить, что транзакция TD включен в блок, вы берете корневой хэш (HABCDEFGH), запрашиваете сеть о HD, и она возвращает HC, HAB и HEFGH. Дерево Меркла проверяет, что все учтено с помощью этих трех хэшей и что HD (единственный отсутствующий хэш) должен присутствовать в данных.

Поздравляю. Теперь вы эксперт в верификации блокчейна 🎉 Следующий уровень - это то, как информация перемещается между блокчейнами, но это уже для другого #ZetaED.


8/ Межцепочечный обмен сообщениями против смарт-контрактов Omnichain

Обмен сообщениями между цепочками - это функция ZetaChain, но особенной и уникальной является поддержка омничейн смарт-контрактов 👇.

#zetaed#blockchain#interoperability#omnichain

Смарт-контракты Omnichain не только позволяют приложениям работать везде по умолчанию, но и позволяют разработчикам создавать более сложные приложения.

Например, вы не сможете создать следующие приложения, используя только обмен сообщениями: смарт-контракты Биткоина, многоцепочечный Curve (сложный обмен стейблами/DEX) или многоцепочечный Aave (кредитование).

Причина в том, что обмен сообщениями становится очень сложным, когда приложение полагается на активы во многих цепочках (более 3-х). При использовании обмена сообщениями необходимо отправлять сообщения между всеми соответствующими цепочками для синхронизации состояния.

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

Смарт-контракты Omnichain упростят развитие упомянутых приложений.

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