Phala y Acala muestran la primera demo de Cross-chain sobre la red Rococo Testnet

image

¿Por que necesitamos transacciones entre cadenas (Cross-chain)?

Las Parachains de Polkadot van a revolucionar las tecnologías de blockchian existentes. Las Parachains no solo combinan las ventajas de las cadenas de Capa 1, como la autonomía y la seguridad, con características específicas de la aplicación, sino que también pueden interoperar entre ellas con transacciones arbitrarias. No solo se pueden hacer transferencias de valor entre Parachainsen Polkadot, sino que se puede tener una interoperabilidad total entre ellas.

¿Qué es la interoperabilidad? Tenemos un ejemplo compartido por uno de los desarrolladores principales de Parity, Tomasz Drwięga, en la primera reunión de la comunidad Polkadot Decoded:

Suponga que compra un seguro en caso de que se retrase su vuelo. La compañía de seguros obtendrá los datos de retraso de vuelo de la aerolínea facilitados por el aeropuerto. Con los datos se verificara si ha llegado al aeropuerto a tiempo y si se cumplen las dos condiciones anteriores, se enviará una suma de dinero a su cuenta bancaria.

Por lo tanto, en este ejemplo tenemos una parachain con un a Oraculo que contiene los datos relevantes para la asistencia al vuelo y el tiempo de registro y además una parachain financiera que envía los fondos , como en este ejemplo, a su proveedor de salida, que también puede ser otra parachain , la cual luego envía el dinero a su cuenta bancaria.

Hay muchos tipos de parachains, como parachains con tokens o sin ellos, parachains que se especializan en un determinado campo o caso de uso, así como hubs de cadenas que sirven a una determinada comunidad (por ejemplo, una parachain DeFi)

Con el fin de hacer las cosas menos abstractas y acercarlas al ecosistema actual de Polkadot / Kusama, ¿qué se puede hacer exactamente ahora con esta tecnología de cadena cruzada (cross-chain)?

  • Acala son las finanzas descentralizadas de Polkadot que ofrece un conjunto de funciones primitivas DeFi que incluyen stablecoin, DEX y derivados de participación.
  • Phala Network es un protocolo de privacidad de blockchain. Phala permite una computación generalizada (es decir, ejecuciones de contratos inteligentes en una maquina completa de Turing) que también preserva la privacidad, a través de una combinación de Trusted Execution Environment (TEE) y tecnologías blockchain. Phala garantiza la ejecución escalable y confiable de contratos inteligentes, como transacciones financieras, sin brechas de seguridad que expongan datos confidenciales.

Ahora imaginemos que queremos conseguir lo siguiente:

  • Permitir que los activos y contratos DeFi en Acala usen las propiedades de privacidad y ejecución escalables de Phala;
  • Permitirque los activos privados de Phala se utilicen dentro del conjunto de aplicaciones de Acala

Utilizando el protocolo de cadena cruzada (cross-chain) de Polkadot / Kusama, podemos lograr ambos objetivos sin cambiar una sola línea de código. Para cualquier interacción entre cadenas de bloques que no sea Polkadot / Kusama, se habría consumido enormes recursos y energía en desarrollo.

Cross-chain demostración — Caso de Uso

Video demostración

Github : https://github.com/Phala-Network/phala-blockchain/tree/rococo

Rococo relay chain

¿Cómo lograr la interacción Cross-chain?

La funcionalidad de cadena cruzada (cross-chain) está habilitada por el protocolo XCMP disponible para cadenas de relay chains, parachains y puentes. Las transacciones entre cadenas se ejecutan con un mecanismo de cola simple basado en árboles Merkle para garantizar la precisión. La tarea de un validador de cadena de relay chains es “mover” transacciones de la cola de salida de una parachain de envío a la cola de entrada de la parachain de recepción. Solo los metadatos asociados se almacenan como un hash en la memoria de la cadena de retransmisión.

La cola XCMP debe iniciarse abriendo el canal entre las dos parachains. El canal se identifica mediante las parachains del remitente y el receptor, lo que significa que es un canal unidireccional. Puede haber hasta dos canales entre un par de parachains, uno para enviar mensajes y otro para recibir mensajes.

El protocolo XCMP puede dividirse en las siguientes partes::

  • VMP: comunicación entre Parachain-relay chain
  • HRMP: comunicación Parachain-relay y chain-parachain relay
  • XCMP: comunicación directa entre Parachain-parachain

VMP y HRMP están implementados actualmente en Rococo v0, pero Rococo v1 aún está en desarrollo, por lo que hemos implementado esta funcionalidad de cadena cruzada entre Phala y Acala en la versión 0.

Arquitectura

Como se muestra en la figura superior , la implantación de cross chain entre Acala y Phala basada en Polkadot XCMP consiste en 3 partes:

  • Chain: Rococo relay chain, dos parachains: Acala, Phala
  • Transacción Cross-chain : La transferencia de mensajes entre Acala a Phala y viceversa a través de la relay chain realiza la transferencia de tokens de Acala a la billetera privada y al reves, de la billetera privada a Acala.
  • Caja negra de privacidad: Todas las transacciones de privacidad en Phala se dan en el contrato confidencial que se ejecuta en el TEE, y el estado de todos los datos cifrados no es visible para el exterior, logrando así el efecto de privacidad.

Iniciar la transferencia desde Acala a Phala

En el mundo de Polkadot, además de las cuentas controladas personalmente, también existe el concepto de “cuentas soberanas”. Por ejemplo, un módulo Pallet (o un contrato inteligente) en Substrate puede contener ciertos activos. Cuando una parachain se une a Polkadot, también puede obtener su propia cuenta en otras parachains. La cuenta soberana está controlada por la parachain correspondiente. Cada parachain tiene una identificación única, que se asignará a su cuenta soberana correspondiente.

Cuando Alice inicia una transacción de transferencia de Acala a Phala, por ejemplo al transferir 1000 ACA a la cuenta de Bob de Phala, los siguientes eventos se ejecutan en segundo plano:

Primero, en la cadena Acala, (Retirar) 1000 ACA se retirarán de la cuenta de Alice y se depositarán en (Depósito) la cuenta soberana de Phala.

La cadena Acala iniciará un mensaje de transferencia XCMP, indicando que se ha iniciado una transferencia entre cadenas a la cuenta Bob bajo Phala en Acala, y el mensaje se enviará a la realy chain. Este es un mensaje de VMP

Después de que la relay chain reciba el mensaje, lo analizará para encontrar el ID de parachain, cuyo destinatario del mensaje es Phala, y reenviará el mensaje a Phala, que es un VMP DownwardMessage

HRMP es un método simple de mensajería de cadena cruzada que es compatible con Rococo v0. Su principio es que la cadena A inicia UpwardMessage a la relay chain, y luego la relay chain inicia DownwardMessage para transferir el mensaje a la cadena B. Por lo tanto, HRMP se implementa mediante una combinación de dos VMP.

La wallet privada de Phala acepta transferencias de activos y las convierte en sus respectivas versiones privadas.

Phala es muy diferente a otras cadenas. Por lo general, una parachain adoptará la implementación estándar proporcionada por Polkadot para aceptar transferencias externas y establecer cuentas de usuarios. Sin embargo, Phala es una capa de computación privada generalizada y es muy importante que la cadena permanezca neutral respecto a la aplicación. Por lo tanto, la cadena principal de Phala no procesa ni liquida las transferencias entre cadenas, sino que las transfiere directamente al contrato confidencial manteniendo así la privacidad.

Por parte de Phala, después de que la cadena principal acepte el mensaje de transferencia entre cadenas, este se enruta directamente al contrato de billetera privada en el TEE. Cuando el contrato confidencial reciba el mensaje, agregará 1000 ACA a la cuenta de Bob.

Todas las transferencias en el contrato de confidencialidad están encriptadas de un extremo a otro. Aunque se puede ver desde el exterior que Bob recibió 1000 ACA, puede iniciar una transferencia privada de regreso a Charlie nuevamente en Phala.

Por lo tanto, en la demostración, queda probado que es posible realizar una transacción protegida entre dos billeteras privadas. La transacción privada está encriptada de un extremo a otro y solo el texto cifrado es visible en la cadena, por lo que los detalles de la transacción (como la dirección de envío, la dirección de recepción y la cantidad de dinero) no son visibles .

También estamos planeando trabajar en una solución que permita el cumplimiento de las reglas globales AML/ CFTC (antiblanqueo) para que los usuarios puedan disfrutar de una privacidad absoluta mientras el protocolo asegura el cumplimiento de las regulaciones siguiendo las reglas de un algoritmo. Creemos que automatizar el cumplimiento basado en ciertos criterios es el único camino sostenible a seguir para las transacciones financieras que disfrutan de la privacidad en un entorno permissionless. De lo contrario, las regulaciones actuales seguirán siendo sorteadas por actores malintencionados, mientras que los usuarios que tengan buenas intenciones y que solo quieran ejercer un alto nivel de privacidad con sus finanzas serán expuestos / rechazados por el servicio sin una razón significativa.

Iniciar una Transferencia desde Phala a Acala

Finalmente, puede iniciar una transferencia entre cadenas desde la billetera privada de Phala para retirar su dinero de regreso a Acala. Por ejemplo, después de recibir 1000 ACA de Bob a través de una transferencia protegida, Charlie puede iniciar una solicitud en Phala para enviar 500 ACA a la cuenta Alice de Acala,lo que implica los siguientes pasos:

TEE recibe la orden de transferencia, reduce el saldo de Charlie en 500 ACA e inicia una transacción de transferencia entre cadenas ( cross-chain)a la cadena Phala.

Cuando la cadena principal de Phala recibe una solicitud de transferencia entre cadenas (cross-chain), enviará directamente el mensaje de transferencia a la relay chain, el cual seria un UpwardMessage de VMP.

De la misma manera, la cadena de retransmisión lo reenviará a Acala, utilizando un VMP DownwardMessage

Después de recibir el mensaje, el protocolo Acala puede retirar 500 ACA de la cuenta soberana de Phala y depositarlo en la cuenta de Alice. La transferencia de cadena cruzada (cross-chain) se completa.

Conclusión

En las cadenas de bloques existentes como Ethereum, la combinación de las soluciones DeFi y Privacy Layer 2 debe confirmarse mutuamente en la cadena constantemente, y un protocolo de Layer 2 no puede interoperar con otro protocolo de Layer 2.

Sin embargo, en Polkadot, el protocolo XCMP permite que las parachains altamente customizadas logren interoperabilidad entre cadenas, utilizando una carga de trabajo mínima. La capacidad de composición lograda a través de XCMP permite a los desarrolladores crear casos de aplicaciones enriquecidos, diferentes a la composición de Ethereum la cual es asincrónica, y también permite un rendimiento mucho mayor para cada aplicación involucrada.

En este artículo, hemos demostrado solo la punta del iceberg de las capacidades de XCMP. Podemos hacer que Acala y Phala interoperen directamente y a través de la combinación de parachains DeFi con cálculo de privacidad, se puede dotar a DeFi de propiedades de confidencialidad, a menudo necesarias cuando se trata de datos financieros. En el ecosistema Ethereum DeFi, ya hemos visto las ventajas de la componibilidad, por lo que creemos que XCMP se convertirá en un poderoso recurso de creación de Dapp, y esperamos ver más aplicaciones nuevas combinadas por parachains en Polkadot.

Sobre Phala

Es la primera plataforma de contratos inteligentes desarrollada cobre Substrate , en la cual se puede desarrollar apps con preservación del secreto y protección de la privacidad. Miembros del Parity Builders Program . Ganadora de Web3 Foundation Grant.

Website | Twitter | Github | Telegram | Discord