#ZETACHAIN, part 1.
zetachain - прежде всего, очередной космофорк, но модный: про
omnichain.
/// what is omnichain?
омничейновость - способность свободно обмениваться данными между разными блокчейнами. кроссчейновость* позволяет смарт-контрактам различных блокчейнов взаимодействовать друг с другом без необходимости отправлять фактические токены с одного чейна на другой.
*в данном тексте
omnichain = crosschain = multichain потому что я так сказал.
/// zetachain > layer-zero?
ближайший омничейн-конкурент - это
layer-zero, с которым мы и будем сравнивать зетачейн. полтора слова про реализацию лэйер-зеро:
чтобы отправить
100 $USDT из
ETH в
ARB via layer-zero, пользователю нужно вызывать специальный
bridge-контракт
lz в
sender-chain (
ETH), который обрабатывает транзакцию и отправляет сообщение, содержащее всю информацию о желаниях юзера, в
layer-zero-protocol.
протокол межсетевой коммуникации
layer-zero получает это сообщение и отдаёт команду другому специальному
bridge-контракту
lz в уже
recipient-chain (
ARB), чтобы тот, в свою очередь, начислил на кошелёк пользователя, переданного в качестве получателя средств, честные
100 $USDT.
то есть, в каждой из поддерживаемых сетей должны быть развёрнуты свои смарт-контракты, которые посредством
layer-zero-protocol обмениваются друг с другом межсетевыми сообщениями, в которых передаётся информация: кто, куда, кому и зачем пересылает активы.
получается, чтобы
lz связал 10 сетей, ему по крайней мере потребуется 10 смарт-контрактов. а это дорого. особенно, если контракт хранит лёгкий клиент сети-донора, чтобы проверять истинность транзакций в исходной цепочке. да,
lz-smart-contract - это ультра-лёгкие-ноды (
ULN), которые хранят только несколько последних
headers блоков, но и этот подход далёк от бесплатного.
в свою очередь,
zeta-omnichain-smart-contract создаётся только в
zeta, но позволяет управлять активами и в других цепочках. то же верно и в обратную сторону: из любой сети можно вызвать
zeta-omnichain-smart-contract. данный подход позволяет легко связывать и те сети, в которых невозможно развернуть смарт-контракт, например,
BTC.
/// zetachain architecture
в
zetachain с технической точки зрения выделяют 3 функции, которые
на практике ложатся на плечи обычных нод (одна нода-валидатор выполняет сразу все роли, что я бы отнёс к недостатку):
•
валидатор (
validator): внешне, типикал космос-валидатор - пропоузит 1 блок в неделю, участвует в голосованиях с 0.0e+1% вотинг павера, ожидает делегацию от фаундейшна и делает любовь с космовизором;
•
наблюдатель (
observer): наблюдает за изменениями состояния во внешних сетях и пингует валидатора в случае надобности;
•
подписант (
signer): участники сети, имеющие доступ к ключам с активами во внешних сетях и в случае согласия большинства - виновники изменения балансов хранилищ.
интересен факт, что единоличного доступа к смарт-контрактам и кошелькам (а значит и депозитам) во внешних сетях ни у кого нет и вот почему:
во время инициализации смарт-контракта в
zetachain (если подразумевается, что контракт будет омничейновым) на каждой из выбранных сетей автоматически создаётся
TSS-кошелёк. каждая нода-валидатор получает кусочек приватного ключа от
TSS-хранилища.
собираясь вместе, ноды могут совершать какие-либо действия с балансом, но только, если это одобрит большинство участников сети. назвали такой прикол как
Threshold Signature Scheme (TSS), который чем-то напоминает #OBOL с их
distributed validators.
так же, в
zetachain размещён совместимый с
EVM уровень исполнения -
zEVM. все активы
ERC20 практически полностью совместимы с
ZRC20 и всё такое.
подробнее разницу между реализациями
layer-zero и
zetachain, плюсы и минусы рассмотрим в
следующем посте.