Зачем нужны межсетевые транзакции?
По заявлению разработчиков Acala, парачейны Polkadot перевернут существующие технологии блокчейнов. Парачейны не только сочетают в себе преимущества цепочек уровня 1, такие как автономность и безопасность, специализация и учет особенностей конкретных приложений, но также могут взаимодействовать друг с другом с произвольными транзакциями. Это не просто передача значений между парачейнами на Polkadot, но и фактическая полноценная интероперабельность.
Что такое интероперабельность? Вот пример, которым поделился разработчик ядра Parity Томаш Дрвенга на первой встрече сообщества Polkadot Decoded:
«Предположим, вы хотите купить страховку от задержки рейса, страховая компания получит данные о задержке рейса от авиакомпании и получит их из аэропорта. Эти данные позволяют проверить, вовремя ли вы прибыли в аэропорт, и если оба вышеуказанных условия соблюдены, на ваш банковский счет будет отправлена денежная сумма».
Итак, это парачейн оракула, который содержит соответствующие данные о посещаемости рейсов и времени регистрации, и финансовый парачейн, который отправляет средства или, как в этом примере, ваш провайдер страховых услуг, который также может иметь собственный парачейн, который затем отправляет компенсацию на ваш банковский счет.
Существует много типов парачейнов, таких как парачейны с токенами или без них, парачейны, специализирующиеся в определенной области или сценариях использования, а также цепочки концентраторов, которые обслуживают определенное сообщество (например, парачейн для приложений DeFi)...
Большинство парачейнов Polkadot разработаны в рамках программы грантов Web3 Foundation.
Чтобы сделать вещи менее абстрактными и приблизить их к текущей экосистеме Polkadot/Kusama - что именно теперь можно сделать с этой кросс-чейн технологией?
- Acala - это децентрализованный финансовый центр Polkadot, который предлагает набор примитивов DeFi, включая стейблкоины, DEX и производные стейкинга.
- Phala Network - это протокол конфиденциальности блокчейна. Phala позволяет выполнять обобщенные вычисления (то есть выполнение смарт-контрактов по Тьюрингу), которые также сохраняют конфиденциальность, с помощью комбинации Trusted Execution Environment (TEE) и технологий блокчейна. Phala обеспечивает масштабируемое и надежное выполнение смарт-контрактов, таких как финансовые транзакции, без утечки конфиденциальных данных.
Теперь предположим, что мы хотим достичь следующего:
- Разрешить активам и контрактам DeFi на Acala использовать возможности масштабируемого исполнения и конфиденциальности Phala;
- Разрешить использовать частные ресурсы Phala в наборе приложений Acala.
Используя кросс-чейн протокол Polkadot/Kusama, мы можем достичь обеих целей, не меняя ни одной строчки кода! Для любых межблочных взаимодействий, не связанных с Polkadot/Kusama, это потребовало бы огромных ресурсов и энергии разработчиков.
Демонстрация межсетевых транзакций
Как выполняются кросс-чейн транзакции?
Функциональность кросс-цепочки обеспечивается протоколом XCMP, одинаково доступным для цепочек ретрансляции, парачейнов и мостов. Межсетевые транзакции выполняются с помощью простого механизма очередей, основанного на деревьях Меркла для обеспечения точности. Задача валидатора цепочки реле - «переместить» транзакции из выходной очереди парачейна отправки во входную очередь парачейна-получателя. Только связанные метаданные хранятся в виде хэша в памяти релейной цепи.
Очередь XCMP сначала должна быть запущена путем открытия канала между двумя парачейнами. Канал идентифицируется парачейном отправителя и получателя, что означает, что это односторонний канал. Между парой парачейнов может быть до двух каналов: один для отправки сообщений в другую цепочку, а другой для приема сообщений.
Протокол XCMP можно разделить на:
- VMP: связь цепочки парачейн-реле
- HRMP: связь между цепочкой и реле парачейна
- XCMP: прямая связь парачейн-парачейн
VMP и HRMP в настоящее время реализованы в Rococo v0, но Rococo v1 все еще находится в разработке, поэтому мы реализовали функциональность кросс-цепочки между Phala и Acala в версии v0.
Архитектура решения
Как показано на рисунке выше, реализация кросс-цепочки Acala-Phala на основе Polkadot XCMP состоит из трех частей:
- Блокчейн: Релейная сеть Rococo V1, два парачейна: Acala, Phala
- Кросс-чейн транзакция: передача сообщений между Acala в Phala и обратно через цепочку ретрансляции реализует передачу токенов из Acala в частный кошелек и из частного кошелька в Acala
- Черный ящик конфиденциальности: все транзакции конфиденциальности на Phala происходят в конфиденциальном контракте, выполняемом в TEE, и состояние всех зашифрованных данных невидимо для внешнего мира, таким образом достигается эффект конфиденциальности.
Иницииация перемещения из Acala в Phala
В мире Polkadot, помимо лично контролируемых счетов, существует еще понятие «суверенные счета». Например, модуль Pallet (или смарт-контракт) на Substrate может содержать определенные активы. Когда парачейн присоединяется к Polkadot, он также может получить свою учетную запись на других парачейнах. Суверенный счет контролируется соответствующим парачейном. Каждый парачейн имеет уникальный идентификатор, который будет сопоставлен с его соответствующей суверенной учетной записью.
Когда Алиса инициирует транзакцию передачи из Acala в Phala, например, для передачи 1000 ACA на счет Боба Phala, в фоновом режиме происходят следующие события:
- Во-первых, в цепочке Acala (Снятие) 1000 ACA будет снято со счета Алисы и переведено на (депозит) суверенный счет Phala.
- Цепочка Acala инициирует сообщение передачи XCMP, указывая, что передача между цепочкой на учетную запись Боба в сети Phala была инициирована на Acala, и сообщение будет отправлено в цепочку ретрансляции. Это сообщение типа VMP UpwardMessage.
- После того, как цепочка ретрансляции получит сообщение, она проанализирует его на предмет идентификатора парачейна, чтобы обнаружить, что получателем сообщения является Phala, и перенаправит сообщение в Phala, которое станет уже сообщением типа VMP DownwardMessage.
HRMP - это простой метод обмена сообщениями между цепями, уже поддерживаемый еще Rococo v0. Его принцип заключается в том, что цепочка A инициирует UpwardMessage в цепочку ретрансляции, а затем цепочка ретрансляции инициирует DownwardMessage для передачи сообщения в цепочку B. Следовательно, HRMP реализуется комбинацией двух VMP.
Личный кошелек Phala принимает переводы активов и конвертирует их в частные версии
Пхала сильно отличается от других цепей. Обычно парачейн принимает стандартную реализацию, предоставленную Polkadot, для приема внешних переводов и расчета счетов для пользователей. Однако Phala - это общий уровень частных вычислений, и очень важно, чтобы цепочка оставалась нейтральной для приложения. Таким образом, основная цепочка Phala не выполняет никакой обработки и расчета межсетевых переводов, а напрямую передает их в конфиденциальный контракт.
На стороне Phala, после того, как сообщение о передаче между цепями принято основной цепочкой, оно напрямую направляется в контракт частного кошелька в TEE. Когда конфиденциальный контракт получит сообщение, он добавит 1000 ACA к аккаунту Боба.
Все переводы в контракте о конфиденциальности защищены сквозным зашифрованием на протяжении всего пути. Хотя со стороны видно, что Боб получил 1000 ACA, он может снова инициировать частный перевод Чарли на Phala.
Поэтому в демонстрации разработчики показали также защищенную транзакцию (Shielded Transaction) между двумя частными кошельками. Частная транзакция зашифрована сквозным шифрованием, и в цепочке можно увидеть только зашифрованный текст, поэтому детали транзакции (такие как адрес отправителя, адрес получения и сумма денег) не видны в сети.
«Мы также планируем работать над решением, которое обеспечит соблюдение глобальных правил AML/CFTC, чтобы пользователи могли наслаждаться абсолютной конфиденциальностью, в то время как протокол обеспечивает их соответствие правилам алгоритмическим способом. Мы считаем, что автоматизация соответствия на основе определенных критериев - единственный надежный путь для финансовых транзакций, обеспечивающих конфиденциальность в условиях отсутствия разрешений. В противном случае действующие правила будут по-прежнему использоваться злоумышленниками, в то время как пользователи, действующие с благими намерениями, но просто желающие обеспечить высокий уровень конфиденциальности своих финансов, будут раскрыты/отклонены в обслуживании без значимой причины», - считают разработчики.
Инициировать переход из Phala в Acala
Наконец, вы можете инициировать межсетевой перевод обратно в Acala из личного кошелька Phala, чтобы вывести свои деньги. Например, после получения 1000 ACA от Боба посредством экранированной передачи, Чарли может инициировать запрос на стороне Phala, чтобы отправить 500 ACA на учетную запись Алисе в Acala, и за кулисами происходят следующие вещи:
- TEE получает заказ на перевод, уменьшает баланс Чарли на 500 ACA и инициирует транзакцию передачи между цепями в цепочку Phala.
- После того, как основная цепочка Phala получит запрос на передачу между цепями, она напрямую отправит сообщение передачи в цепочку ретрансляции, которая является сообщением VMP UpwardMessage.
- Точно так же цепочка ретрансляции будет перенаправлять его в Acala, что является VMP DownwardMessage
- После получения сообщения протокол Acala может снять 500 ACA с суверенного счета Phala и внести их на счет Алисы. Кросс-чейновая передача завершена.
Заключение
В существующих блокчейнах, таких как Ethereum, комбинация решений DeFi и Privacy Layer 2 должна каждый раз взаимно подтверждаться в цепочке, и один протокол Layer 2 не может взаимодействовать с другим протоколом Layer 2.
Однако в Polkadot протокол XCMP позволяет парачейнам с широкими возможностями настройки для достижения удобного взаимодействия между цепями с минимальной рабочей нагрузкой. Возможность компоновки, достигаемая с помощью XCMP, позволяет разработчикам создавать разнообразные сценарии приложений, которые отличаются от компоновки Ethereum тем, что они асинхронны, но также позволяют значительно увеличить пропускную способность для каждого задействованного приложения.
В этой статье мы продемонстрировали только верхушку айсберга мощных возможностей XCMP. Мы можем напрямую разрешить взаимодействие Acala и Phala, а за счет комбинации парачейна DeFi с вычислением конфиденциальности DeFi может получить возможности конфиденциальности, которые часто необходимы при работе с финансовыми данными. В экосистеме Ethereum DeFi мы уже увидели преимущества возможности компоновки, поэтому мы считаем, что XCMP станет мощным строительным блоком Dapp, и надеемся увидеть больше совершенно новых приложений, объединенных парачейнами на Polkadot.
О Phala
Phala (PHA) позиционируется разработчиками, как конфиденциальный блокчейн смарт-контракта на основе Substrate, на котором вы можете разрабатывать блокчейн-приложения, сохраняющие приватность и ориентированные на конфиденциальность. Команда проекта является членом стартового состава программы Substrate Builders и получателем гранта фонда Web3.