paint-brush
ERC-7683: Unificación de Ethereum con intenciones entre cadenaspor@2077research
367 lecturas
367 lecturas

ERC-7683: Unificación de Ethereum con intenciones entre cadenas

por 2077 Research26m2025/01/12
Read on Terminal Reader

Demasiado Largo; Para Leer

ERC-7683 introduce un estándar para habilitar intenciones entre cadenas en Ethereum, lo que permite una comunicación fluida entre diferentes cadenas de bloques. Al mejorar la interoperabilidad, mejora la funcionalidad y la facilidad de uso de las aplicaciones descentralizadas en múltiples redes. Este artículo analiza ERC-7683 en detalle, cubriendo sus especificaciones técnicas, beneficios, posibles limitaciones y consideraciones asociadas.
featured image - ERC-7683: Unificación de Ethereum con intenciones entre cadenas
2077 Research HackerNoon profile picture

Introducción

La tecnología blockchain, y en particular las finanzas descentralizadas (DeFi), han abierto posibilidades poderosas para los sistemas financieros. Sin embargo, a medida que el ecosistema crece, también lo hace la complejidad de interactuar entre múltiples redes blockchain. Cada blockchain opera de forma independiente, lo que crea silos de liquidez y funcionalidad que los usuarios y desarrolladores deben abordar manualmente.


Los sistemas basados en intenciones surgieron como una solución a esta fragmentación, ofreciendo una manera de abstraer la complejidad de interactuar con varias cadenas de bloques. En lugar de requerir que los usuarios interactúen directamente con la infraestructura subyacente de cada cadena, estos sistemas les permiten definir los resultados deseados (como transferir tokens o ejecutar transacciones) mientras delegan la ejecución técnica en actores externos, conocidos como "fillers".


Las intenciones entre cadenas (uno de los muchos tipos de intenciones) son acciones predefinidas que los usuarios desean ejecutar en diferentes redes de cadenas de bloques. Por ejemplo, un usuario podría querer intercambiar tokens entre Ethereum y Arbitrum. En lugar de realizar transacciones manualmente en ambas cadenas, una intención entre cadenas permite al usuario definir la acción en un solo paso. Los fillers ejecutan la intención interactuando con las respectivas cadenas, abstrayendo el proceso para el usuario y reduciendo la fricción, una característica valiosa para las operaciones DeFi multicadena.


A pesar de su potencial, los sistemas basados en intenciones enfrentan desafíos que limitan su escalabilidad y efectividad, particularmente en lo que respecta al acceso a la liquidez y el desarrollo de redes de relleno. Destacamos algunos de estos problemas a continuación:


  • Acceso a suficiente liquidez : un desafío importante en los sistemas de cadenas cruzadas es garantizar suficiente liquidez en las diferentes cadenas. Por ejemplo, un usuario que desee intercambiar activos entre Ethereum y Fantom puede descubrir que la liquidez es insuficiente en cualquiera de las cadenas, lo que da como resultado demoras o fallas en las transacciones. En la práctica, las grandes transacciones en los intercambios descentralizados (DEX) a veces tienen dificultades debido a los grupos de liquidez fragmentados, lo que genera un alto deslizamiento y transacciones ineficientes. Las intenciones entre cadenas enfrentan problemas similares: sin suficiente liquidez en las cadenas de destino, las intenciones no se pueden cumplir de manera efectiva. Las operaciones complejas, como la agricultura de rendimiento entre cadenas o los intercambios de tokens, pueden fallar cuando la liquidez es escasa en múltiples cadenas de bloques al mismo tiempo.
  • Creación de redes de relleno activas entre cadenas: otro desafío es crear redes de relleno activas y confiables que admitan interacciones entre cadenas. Se debe incentivar a los rellenos para que ejecuten intenciones rápidamente, pero los diversos entornos de las diferentes cadenas de bloques dificultan esta tarea. Sin un ecosistema de relleno activo y bien estructurado, las intenciones entre cadenas pueden quedar sin cumplir o experimentar ineficiencias, lo que afecta negativamente la experiencia del usuario.


Para superar estos desafíos es necesario integrar infraestructura compartida y marcos universales en los sistemas de cadenas cruzadas. En particular, un marco unificado para gestionar las intenciones de cadenas cruzadas puede ayudar a coordinar los rellenos, mejorar el flujo de liquidez y establecer redes de rellenos más eficientes. Al aprovechar los protocolos compartidos, los sistemas de cadenas cruzadas pueden escalar y brindar una experiencia más fluida, lo que permite una mayor eficiencia y utilización de la liquidez en todo el ecosistema de la cadena de bloques.


Aquí es donde entra en escena ERC-7683.

ERC-7683 y la necesidad de mejores interacciones entre cadenas

ERC-7683: Cross Chain Intents propone un marco unificado para definir y cumplir con las intenciones entre cadenas y facilita a los usuarios la participación en operaciones multicadena, como transferencias de tokens o ejecuciones de contratos inteligentes. La propuesta representa el primer intento de crear una interfaz estandarizada para las intenciones utilizadas en operaciones entre cadenas y tiene implicaciones positivas para el ecosistema Ethereum.


Al estandarizar la forma en que se crean y procesan las intenciones, ERC-7683 tiene como objetivo agilizar las interacciones entre cadenas, mejorar el acceso a la liquidez y promover una mejor interoperabilidad entre cadenas de bloques. También simplifica las interacciones al permitir que los usuarios y las aplicaciones descentralizadas especifiquen su intención sin interactuar directamente con la infraestructura de cada cadena.


Es importante destacar que ERC-7683 reduce la fragmentación y las ineficiencias causadas por protocolos aislados y redes de relleno. Los rellenos actualmente están aislados dentro de ecosistemas específicos, lo que limita el flujo de liquidez a través de las cadenas de bloques. ERC-7683 aborda esto consolidando esfuerzos en una red de relleno cohesiva que abarca múltiples cadenas y protocolos, agilizando la creación, el cumplimiento y la verificación de intenciones al tiempo que fomenta una participación más amplia en todo el ecosistema de cadenas de bloques.

¿Cuáles son las características y funcionalidades clave del ERC-7683?

ERC-7683 permite una amplia gama de intenciones para acciones entre cadenas. Estas intenciones pueden implicar transferencias simples, intercambios de tokens entre cadenas, participación de activos u operaciones más complejas como proporcionar liquidez en múltiples cadenas de bloques. Los usuarios pueden especificar detalles como la cadena de destino, los tipos de tokens y las restricciones, como los plazos de ejecución o los límites de precio. ERC-7683 proporciona un formato estandarizado para enviar estas intenciones, lo que permite que las aplicaciones descentralizadas y los rellenadores funcionen sin problemas en todas las cadenas.


Si bien ERC-7683 estandariza cómo se envían las intenciones entre cadenas y cómo se estructuran las soluciones, no prescribe cómo se lleva a cabo la verificación entre cadenas. En cambio, ERC-7683 deja el proceso de verificación en manos de la dApp o el usuario a través del campo “Contratos de liquidación”. Este campo les permite seleccionar un contrato de liquidación con un proceso de verificación en el que confíen, adaptado a su caso de uso.


Este enfoque flexible permite la diversidad de métodos de verificación. Algunos protocolos pueden comunicarse mediante verificaciones de múltiples firmas, mientras que otros pueden utilizar configuraciones optimistas con mecanismos de desafío o pruebas de conocimiento cero. ERC-7683 no impone un modelo específico, lo que fomenta la diversidad en los diseños de contratos de liquidación y permite que las aplicaciones descentralizadas elijan el que mejor se adapte a sus necesidades. En última instancia, ERC-7683 se centra en la estandarización de las órdenes entre cadenas para unificar los flujos de liquidez y mejorar la coordinación, sin exigir un método de verificación en particular.

El papel de la colaboración y la participación comunitaria en ERC-7683

ERC-7683 es el resultado de la colaboración entre Across (un puente líder) y Uniswap Labs (desarrollador del mayor DEX de Ethereum), ambos destacados en el espacio DeFi. Al aprovechar su experiencia combinada, propusieron un estándar que aborda las necesidades del mundo real de los usuarios y desarrolladores en el ecosistema Ethereum. ERC-7683 también ha recibido el apoyo de más de 35 protocolos, incluidos Arbitrum, Base, Optimism y Base.


Además, el ERC-7683 fue presentado al grupo de trabajo CAKE ( Chain Abstraction Key Elements ), un colectivo centrado en el desarrollo y la interoperabilidad entre cadenas. Su participación es crucial, ya que representan una amplia gama de proyectos de cadenas de bloques. Con sus aportes, el estándar se puede perfeccionar para satisfacer las diversas necesidades del ecosistema. Este proceso garantiza que el ERC-7683 sea sólido y práctico para su adopción a gran escala.

Una descripción general del flujo de intenciones de cadena cruzada estándar en ERC-7683

ERC-7683 describe un proceso claro para ejecutar intenciones entre cadenas, lo que permite transferencias de activos e interacciones fluidas entre múltiples cadenas de bloques. Este flujo estandarizado garantiza que los usuarios puedan definir sus intenciones mientras los rellenadores se encargan de la ejecución, lo que da como resultado un ecosistema entre cadenas más eficiente. A continuación, se incluye un desglose detallado de cada paso del flujo estándar de intenciones entre cadenas.


Mensaje de cierre de sesión del usuario fuera de la cadena

El proceso comienza con el usuario, que inicia la intención de crosschain. El usuario firma un mensaje offchain que contiene detalles clave sobre la transacción, como los tokens que se intercambiarán, la cadena de destino y otros parámetros relevantes codificados en la estructura CrossChainOrder. Este mensaje se firma offchain utilizando la clave privada del usuario, lo que garantiza la integridad y autenticidad de la orden. Al firmar offchain, el usuario evita la interacción directa con la blockchain, lo que reduce los costos de gas y mejora la eficiencia.

Difusión de órdenes e iniciación de operaciones

El proceso comienza con la difusión del mensaje offchain firmado. Este mensaje, creado por el usuario y firmado con su clave privada, se comparte con los fillers (actores externos responsables de ejecutar intenciones crosschain). La difusión se produce a través de canales offchain, como redes descentralizadas o sistemas de retransmisión de órdenes, lo que permite a los fillers revisar los detalles de la orden. Los fillers pueden entonces decidir si aceptan la orden, fomentando la competencia que promueve una ejecución más rápida y tarifas más bajas.


Una vez que un usuario acepta la orden, inicia la transacción en la cadena de origen llamando a la función de apertura de IOriginSettler. Esta función verifica la firma del usuario, bloquea los tokens del usuario en depósito para evitar que se utilicen en otro lugar y señala que el intercambio entre cadenas está listo para continuar. En este punto, los detalles de la orden se preparan para su ejecución en la cadena de destino y se transmiten a través del sistema de mensajería entre cadenas.

Cumplimiento de pedidos en la cadena de destino

Una vez que se inicia el intercambio en la cadena de origen, el rellenador cumple la orden en la cadena de destino llamando a la función de resolución, que decodifica el CrossChainOrder en un ResolvedCrossChainOrder. Esto proporciona al rellenador todos los detalles necesarios (como los tokens que se transferirán y las direcciones de los destinatarios) para completar el intercambio. Luego, el rellenador transfiere los tokens al usuario en la cadena de destino, cumpliendo con la intención original.

Proceso de liquidación entre cadenas

El paso final es la liquidación entre cadenas, donde los contratos de liquidación tanto en la cadena de origen como en la de destino garantizan que la intención se ha ejecutado correctamente. Los activos bloqueados en la cadena de origen se liberan y el usuario recibe sus tokens en la cadena de destino. Según el contrato de liquidación utilizado, la verificación puede ocurrir a través de la comunicación directa entre cadenas o mediante modelos de verificación optimistas. Esta flexibilidad permite diferentes métodos para confirmar el cumplimiento de la intención, lo que garantiza que tanto el usuario como el que la completa puedan confiar en el proceso.

Componentes clave del ERC-7683

ERC-7683 introduce varios componentes esenciales diseñados para ofrecer flexibilidad y adaptarse a diversas implementaciones de cadenas cruzadas. Estos componentes permiten que los sistemas basados en intenciones se adapten a varios protocolos, modelos de precios y mecanismos de verificación, manteniendo al mismo tiempo una estructura unificada para los pedidos de cadenas cruzadas.

Campo OrderData genérico

El campo OrderData dentro de la estructura CrossChainOrder juega un papel fundamental al permitir la personalización y la flexibilidad en diferentes implementaciones.

  1. Posibilitación de varios diseños de implementación: el campo OrderData está diseñado para contener datos arbitrarios específicos de la implementación que pueden variar según el protocolo o el caso de uso. Esto permite a los desarrolladores codificar cualquier información adicional necesaria para el pedido, como detalles del token, datos de la cadena de destino y restricciones de ejecución, sin modificar la estructura general del pedido. Esta flexibilidad garantiza que los diferentes protocolos puedan implementar diseños únicos y, al mismo tiempo, cumplir con el estándar ERC-7683.
  2. Flexibilidad en la resolución de precios, restricciones de cumplimiento y procedimientos de liquidación: a través del campo OrderData, ERC-7683 admite una amplia gama de configuraciones para mecanismos de resolución de precios (como subastas o precios basados en oráculos), restricciones de cumplimiento como plazos o condiciones. Esta versatilidad es clave para permitir que diferentes dApps adopten el estándar y, al mismo tiempo, mantengan sus métodos preferidos de fijación de precios y ejecución. Por ejemplo, un sistema podría utilizar un modelo de precio fijo, mientras que otro podría basarse en precios dinámicos basados en datos de mercado en tiempo real, todo ello aprovechando la misma estructura CrossChainOrder.

Función Resolver y ResolvedCrossChainOrder

La función de resolución y la estructura ResolvedCrossChainOrder son esenciales para garantizar que los rellenadores puedan validar y ejecutar órdenes entre cadenas sin necesidad de comprender los detalles específicos del campo OrderData original. La función de resolución simplifica el proceso de validación y ejecución al convertir la orden CrossChainOrder compleja y específica del protocolo en una ResolvedCrossChainOrder.


Esta desagregación abstrae la complejidad de los datos de pedidos originales y proporciona a los encargados de completar el pedido un formato estandarizado de entradas y salidas necesarias para completarlo. Además, permite a los encargados de completar el pedido participar en el proceso de cadena cruzada sin necesidad de tener un conocimiento profundo de los detalles específicos del protocolo codificados en los datos de pedidos, lo que mejora la escalabilidad y reduce la fricción.

Uso del Permiso 2

ERC-7683 integra opcionalmente Permit2 , un mecanismo de aprobación que permite que las transferencias de tokens y la ejecución de órdenes se gestionen con una sola firma del usuario. Esto reduce la complejidad operativa para los usuarios, que de otro modo necesitarían aprobar tanto la transferencia de tokens como el intercambio por separado. Al utilizar Permit2, las dApps pueden garantizar que la transferencia de tokens esté vinculada de forma segura al inicio exitoso del intercambio, lo que mejora tanto la seguridad como la experiencia del usuario. Sin embargo, esto también introduce consideraciones para el manejo de parámetros específicos de Permit2, como nonces y fechas límite, que deben alinearse con la estructura de órdenes entre cadenas.

Análisis en profundidad de las especificaciones técnicas del ERC-7683

Nota para los lectores : La siguiente sección profundiza en las especificaciones técnicas detalladas del sistema. Si bien proporciona información detallada para los desarrolladores y aquellos interesados en los aspectos técnicos, no es una lectura obligatoria para comprender los conceptos más generales. No dude en saltarse esta sección si está más interesado en descripciones generales de alto nivel o aplicaciones prácticas.

Antes de profundizar en los componentes técnicos, revisemos el Glosario de términos proporcionado en la propuesta:

  • Cadena de destino : la cadena en la que se ejecuta la intención y el usuario recibe sus fondos. Las intenciones pueden involucrar múltiples cadenas de destino.
  • Relleno : El participante responsable de cumplir la intención de un usuario en la(s) cadena(s) de destino a cambio de una recompensa.
  • Pierna : una parte de la intención del usuario que se puede ejecutar de forma independiente. Para que la intención se complete por completo, se deben ejecutar todas las piernas.
  • Cadena de origen : La cadena donde el usuario inicia la transacción y envía sus fondos.
  • Sistema de liquidación : El sistema que maneja los depósitos de los usuarios, verifica los rellenos y paga a quienes los rellenan, todo para facilitar las intenciones.
  • Colonizador : Un contrato que implementa parte del sistema de liquidación en una cadena de bloques específica.
  • Usuario : El usuario final que crea el pedido e inicia la intención.


Dado que tenemos un glosario, podemos centrarnos en los componentes críticos introducidos por ERC-7683 para habilitar intenciones entre cadenas:

  • Estructura CrossChainOrder : formato estandarizado para crear órdenes entre cadenas.
  • Estructura ResolvedCrossChainOrder : desagrega los datos del pedido para su ejecución en la cadena de destino.
  • Estructuras de salida : definen los tokens y las cantidades involucradas en el intercambio tanto para el usuario como para el rellenador.
  • Contratos de liquidación : implementados tanto en la cadena de origen (originSettler) como en la de destino (destinationSettler), estos contratos gestionan el ciclo de vida de las intenciones entre cadenas. El originSettler bloquea los activos del usuario y prepara la orden para su ejecución, mientras que el destinationSettler verifica el cumplimiento de la intención y facilita las transferencias de activos en la cadena de destino. El proceso de verificación queda en manos de la dApp o del usuario, que puede seleccionar un contrato de liquidación a través del campo de contrato de liquidación, lo que les permite elegir un método de verificación adaptado a su caso de uso.

Estructuras GaslessCrossChainOrder y OnchainCrossChainOrder

ERC-7683 admite dos tipos de órdenes entre cadenas: GaslessCrossChainOrder y OnchainCrossChainOrder. La diferencia clave entre ambas radica en cómo se inicia la orden y quién asume los costos de transacción.


Con un GaslessCrossChainOrder, el usuario firma la orden fuera de la cadena y delega su envío a un ejecutante. Luego, el ejecutante envía la orden al contrato del ejecutante de origen en nombre del usuario y cubre las tarifas de gas asociadas. Este enfoque ofrece una experiencia fluida y sin gas para el usuario, ya que los ejecutantes tienen incentivos para recuperar los costos a través de recompensas por ejecución. Para habilitar esta delegación, la estructura incluye campos como originSettler, user y nonce, lo que garantiza la seguridad, la protección contra la repetición y el manejo adecuado de la intención del usuario.


Por otro lado, un OnchainCrossChainOrder es creado directamente por el usuario onchain. Aquí, el usuario interactúa con el contrato del liquidador de origen como el remitente del mensaje, asumiendo la responsabilidad de las tarifas de gas. Esta estructura es más simple, ya que excluye los campos específicos de la delegación como originSettler o user, centrándose en cambio en campos como fillDeadline y orderData que son directamente relevantes para la ejecución de la orden. Este método es ideal para los usuarios que prefieren el control directo sobre sus transacciones y se sienten cómodos administrando las interacciones onchain.

Campos clave

  • originSettler : este campo contiene la dirección del contrato responsable de gestionar la liquidación de la orden en la cadena de origen. Permite a la dApp o al usuario definir el método de verificación, sirve como contrato clave para la cadena de origen y garantiza la correcta ejecución del swap.

  • usuario : el usuario es la dirección de la persona que inicia la transacción. Sus activos se bloquean o se almacenan en custodia en la cadena de origen cuando comienza el pedido. Esta dirección es fundamental para garantizar que se intercambien los activos de la parte correcta y para verificar la firma del usuario, lo que confirma la autenticidad del pedido.

  • nonce : el nonce actúa como un identificador único para la orden, evitando ataques de repetición. Cada CrossChainOrder debe tener un nonce único, lo que garantiza que ninguna orden pueda ejecutarse más de una vez, evitando así el doble gasto o transacciones redundantes.

  • originChainId y destinationChainId : estos campos identifican las cadenas donde se origina el pedido y donde se completará, respectivamente. Garantizan que el sistema dirija el pedido al destino correcto al distinguir entre diferentes redes de cadenas de bloques.

  • openDeadline y fillDeadline : estas marcas de tiempo establecen los límites de tiempo para iniciar y completar el pedido. La openDeadline define cuándo se debe iniciar el pedido en la cadena de origen y la fillDeadline marca cuándo se debe completar en la cadena de destino. Esto ayuda a garantizar que los pedidos se ejecuten de manera oportuna y no permanezcan pendientes indefinidamente.

  • orderData : un campo de datos arbitrario que permite la personalización. Incluye detalles como los tokens que se intercambian, las cantidades, la cadena de destino, los límites de precio y otras restricciones. Esta flexibilidad permite una amplia gama de operaciones entre cadenas, manteniendo intacta la estructura central.


     /// @title GaslessCrossChainOrder CrossChainOrder type /// @notice Standard order struct to be signed by users, disseminated to fillers, and submitted to origin settler contracts struct GaslessCrossChainOrder { /// @dev The contract address that the order is meant to be settled by. /// Fillers send this order to this contract address on the origin chain address originSettler; /// @dev The address of the user who is initiating the swap, /// whose input tokens will be taken and escrowed address user; /// @dev Nonce to be used as replay protection for the order uint256 nonce; /// @dev The chainId of the origin chain uint256 originChainId; /// @dev The timestamp by which the order must be opened uint32 openDeadline; /// @dev The timestamp by which the order must be filled on the destination chain uint32 fillDeadline; /// @dev Type identifier for the order data. This is an EIP-712 typehash. bytes32 orderDataType; /// @dev Arbitrary implementation-specific data /// Can be used to define tokens, amounts, destination chains, fees, settlement parameters, /// or any other order-type specific information bytes orderData; } /// @title OnchainCrossChainOrder CrossChainOrder type /// @notice Standard order struct for user-opened orders, where the user is the msg.sender. struct OnchainCrossChainOrder { /// @dev The timestamp by which the order must be filled on the destination chain uint32 fillDeadline; /// @dev Type identifier for the order data. This is an EIP-712 typehash. bytes32 orderDataType; /// @dev Arbitrary implementation-specific data /// Can be used to define tokens, amounts, destination chains, fees, settlement parameters, /// or any other order-type specific information bytes orderData; }


Estructura ResolvedCrossChainOrder

Una vez que se transmite un CrossChainOrder a la cadena de destino, se decodifica en la estructura ResolvedCrossChainOrder. Este proceso simplifica los datos, presentándolos en un formato estandarizado que los rellenadores pueden usar para ejecutar el intercambio.

Propósito y componentes: ResolvedCrossChainOrder ofrece a los rellenadores una estructura clara y práctica con la que trabajar. Al desagrupar el complejo campo orderData, ResolvedCrossChainOrder garantiza una ejecución fluida en la cadena de destino.

La estructura ResolvedCrossChainOrder incluye campos de matriz clave que definen restricciones y parámetros para transacciones entre cadenas:

  • maxSpent : especifica la cantidad máxima de tokens que el usuario puede gastar durante la transacción. Estos valores actúan como un límite para las obligaciones del usuario, lo que garantiza que no se le exija que exceda un límite establecido, incluso en situaciones dinámicas como las subastas.
  • minReceived : especifica los tokens mínimos que el emisor debe recibir durante la liquidación. Estos valores garantizan un límite mínimo para las devoluciones del emisor, lo que proporciona resultados predecibles, especialmente en entornos de transacciones inciertos.
  • fillInstructions : una matriz que define los pasos necesarios para completar la transacción en las cadenas de destino. Cada instrucción proporciona la información que los rellenadores necesitan para ejecutar tramos específicos de la orden.

Estos campos se basan en las estructuras Output y FillInstruction, que proporcionan datos detallados para una ejecución sin problemas.

Estructura de salida

La estructura Output define los tokens y destinos involucrados en una transacción. Cada entrada en las matrices maxSpent y minReceived es una instancia de esta estructura e incluye los siguientes atributos:

  • token : el identificador del token ERC20 en la cadena de destino. Se representa como un valor de bytes32 para brindar flexibilidad en el manejo de tokens nativos o encapsulados.
  • cantidad : La cantidad del token especificado involucrado en la transacción.
  • destinatario : un identificador bytes32 para la entidad que recibe los tokens en la cadena de destino.
  • chainId : el ID de la cadena de bloques donde se envían los tokens.

Estructura FillInstruction

El campo fillInstructions contiene una matriz de instrucciones, y cada entrada parametriza una única parte de la transacción entre cadenas. Esta estructura garantiza que los rellenadores tengan todos los datos generados por el origen necesarios para ejecutar la transacción con precisión. Los atributos clave incluyen:

  • destinationChainId : el ID de la cadena de bloques donde se ejecuta esta parte de la transacción.
  • destinationSettler : un identificador bytes32 del contrato en la cadena de destino responsable de liquidar la transacción.
  • originData : datos generados en la cadena de origen que el colonizador de destino necesita para procesar la transacción. Esto garantiza que toda la información necesaria se transmita sin problemas a la cadena de destino.

Estas estructuras garantizan que todas las partes involucradas (usuarios y rellenadores) reciban la compensación adecuada con los tokens correctos, lo que garantiza que el intercambio se ejecute de forma segura y eficiente en todas las cadenas.

 /// @title ResolvedCrossChainOrder type /// @notice An implementation-generic representation of an order intended for filler consumption /// @dev Defines all requirements for filling an order by unbundling the implementation-specific orderData. /// @dev Intended to improve integration generalization by allowing fillers to compute the exact input and output information of any order struct ResolvedCrossChainOrder { /// @dev The address of the user who is initiating the transfer address user; /// @dev The chainId of the origin chain uint256 originChainId; /// @dev The timestamp by which the order must be opened uint32 openDeadline; /// @dev The timestamp by which the order must be filled on the destination chain(s) uint32 fillDeadline; /// @dev The unique identifier for this order within this settlement system bytes32 orderId; /// @dev The max outputs that the filler will send. It's possible the actual amount depends on the state of the destination /// chain (destination dutch auction, for instance), so these outputs should be considered a cap on filler liabilities. Output[] maxSpent; /// @dev The minimum outputs that must be given to the filler as part of order settlement. Similar to maxSpent, it's possible /// that special order types may not be able to guarantee the exact amount at open time, so this should be considered /// a floor on filler receipts. Output[] minReceived; /// @dev Each instruction in this array is parameterizes a single leg of the fill. This provides the filler with the information /// necessary to perform the fill on the destination(s). FillInstruction[] fillInstructions; } /// @notice Tokens that must be received for a valid order fulfillment struct Output { /// @dev The address of the ERC20 token on the destination chain /// @dev address(0) used as a sentinel for the native token bytes32 token; /// @dev The amount of the token to be sent uint256 amount; /// @dev The address to receive the output tokens bytes32 recipient; /// @dev The destination chain for this output uint256 chainId; } /// @title FillInstruction type /// @notice Instructions to parameterize each leg of the fill /// @dev Provides all the origin-generated information required to produce a valid fill leg struct FillInstruction { /// @dev The contract address that the order is meant to be settled by uint64 destinationChainId; /// @dev The contract address that the order is meant to be filled on bytes32 destinationSettler; /// @dev The data generated on the origin chain needed by the destinationSettler to process the fill bytes originData; }

Interfaces de liquidación

Las interfaces IOriginSettler e IDestinationSettler definen los métodos básicos para los contratos de liquidación en las cadenas de origen y destino. Estos contratos garantizan un manejo estandarizado y eficiente de las intenciones entre cadenas, lo que permite tanto pedidos sin gas como en cadena, al tiempo que permite un cumplimiento sin inconvenientes en las cadenas de destino.

Interfaz de IOriginSettler

La interfaz IOriginSettler administra el ciclo de vida de los pedidos entre cadenas en la cadena de origen, desde la creación del pedido hasta su resolución. Admite tanto GaslessCrossChainOrder como OnchainCrossChainOrder, lo que ofrece flexibilidad para las transacciones iniciadas por el usuario y facilitadas por el proveedor.

Funciones clave:

  • openFor y open : inicia órdenes entre cadenas, ya sea sin gas a través de un rellenador o directamente por el usuario.
  • resolveFor y resolve : convierten órdenes sin gas o en cadena en formatos ResolvedCrossChainOrder estandarizados para su procesamiento posterior.

Funciones openFor y open

Las funciones openFor y open inician órdenes entre cadenas en la cadena de origen. La función openFor es utilizada por los rellenadores para enviar órdenes sin gas en nombre de los usuarios, mientras que la función open permite a los usuarios crear órdenes directamente en cadena sin la participación de un rellenador.

La diferencia clave es que openFor incluye una firma y datos de relleno opcionales proporcionados por el remitente (originFillerData) para autenticar y parametrizar la transacción, mientras que open no los requiere ya que el usuario interactúa directamente con el contrato del remitente del origen como msg.sender.

Parámetros :

  • orden : La definición del orden entre cadenas (sin gas o en cadena).
  • firma : La firma criptográfica del usuario (requerida solo para openFor).
  • originFillerData : datos adicionales definidos por el relleno (usados solo en openFor).

funciones resolveFor y resolve

Las funciones resolveFor y resolve convierten los pedidos entre cadenas en un formato ResolvedCrossChainOrder estandarizado. La función resolveFor maneja los pedidos sin gas, mientras que la función resolve procesa los pedidos dentro de la cadena. Ambas funciones proporcionan una estructura unificada para la integración posterior, lo que simplifica la ejecución para los rellenadores.

Parámetros :

  • orden : La definición del orden entre cadenas (sin gas o en cadena).
  • originFillerData : datos adicionales proporcionados por el relleno (usados solo en resolveFor).

Interfaz de IDestinationSettler

La interfaz IDestinationSettler regula el proceso de liquidación en la cadena de destino, lo que permite a los rellenadores ejecutar partes específicas de órdenes entre cadenas.

Función clave:

  • llenar: ejecuta una sola pata de una orden de cadena cruzada en la cadena de destino.

función de relleno

La función de relleno permite a los rellenadores procesar una parte específica de una orden entre cadenas en la cadena de destino. Se basa en los datos generados en la cadena de origen, combinados con preferencias adicionales proporcionadas por el rellenador, para parametrizar y ejecutar la transacción.

Parámetros:

  • orderId : un identificador único para el pedido de cadena cruzada específico.

  • originData : Datos de la cadena de origen necesarios para la liquidación.

  • fillerData : Datos adicionales definidos por el relleno para personalizar el proceso de relleno.

     /// @title IOriginSettler /// @notice Standard interface for settlement contracts on the origin chain interface IOriginSettler { /// @notice Opens a gasless cross-chain order on behalf of a user. /// @dev To be called by the filler. /// @dev This method must emit the Open event /// @param order The GaslessCrossChainOrder definition /// @param signature The user's signature over the order /// @param originFillerData Any filler-defined data required by the settler function openFor(GaslessCrossChainOrder calldata order, bytes calldata signature, bytes calldata originFillerData) external; /// @notice Opens a cross-chain order /// @dev To be called by the user /// @dev This method must emit the Open event /// @param order The OnchainCrossChainOrder definition function open(OnchainCrossChainOrder calldata order) external; /// @notice Resolves a specific GaslessCrossChainOrder into a generic ResolvedCrossChainOrder /// @dev Intended to improve standardized integration of various order types and settlement contracts /// @param order The GaslessCrossChainOrder definition /// @param originFillerData Any filler-defined data required by the settler /// @return ResolvedCrossChainOrder hydrated order data including the inputs and outputs of the order function resolveFor(GaslessCrossChainOrder calldata order, bytes calldata originFillerData) external view returns (ResolvedCrossChainOrder memory); /// @notice Resolves a specific OnchainCrossChainOrder into a generic ResolvedCrossChainOrder /// @dev Intended to improve standardized integration of various order types and settlement contracts /// @param order The OnchainCrossChainOrder definition /// @return ResolvedCrossChainOrder hydrated order data including the inputs and outputs of the order function resolve(OnchainCrossChainOrder calldata order) external view returns (ResolvedCrossChainOrder memory); }

Métodos de verificación flexibles

ERC-7683 no impone un método de verificación específico para resolver intenciones entre cadenas, lo que brinda a los desarrolladores la flexibilidad de implementar el mejor enfoque para su caso de uso. Los métodos comunes incluyen:

  • Configuraciones optimistas : asumen que las transacciones son válidas de manera predeterminada y que solo se plantean disputas si se sospecha de una actividad fraudulenta. Este método acelera la ejecución al omitir la verificación inmediata.

  • Comunicación directa en cadena : algunos sistemas, como ciertos puentes de terceros, utilizan métodos de comunicación entre cadenas a través de protocolos de mensajería. Los contratos inteligentes de la cadena de origen interactúan indirectamente con los de la cadena de destino, y las transacciones se verifican y liquidan sin largos períodos de prueba. Este método es más rápido, pero requiere retransmisores fiables y pruebas criptográficas sólidas para una implementación segura.

  • Enfoques híbridos : ERC-7683 admite modelos híbridos, en los que se combinan diferentes elementos del proceso de liquidación para lograr una mayor flexibilidad. Por ejemplo, una aplicación descentralizada podría utilizar la comunicación directa para verificar y bloquear los activos de los usuarios a través de IOriginSettler en la cadena de origen, mientras que emplea una configuración optimista para validar las acciones de relleno a través de IDestinationSettler en la cadena de destino. Este enfoque híbrido logra un equilibrio entre velocidad y seguridad al aprovechar las fortalezas de ambos métodos.


Al ofrecer flexibilidad en los métodos de liquidación y verificación, ERC-7683 permite a los desarrolladores personalizar sistemas para aplicaciones DeFi específicas, mejorando tanto la experiencia del usuario como la eficiencia.

El caso del estándar de intenciones entre cadenas ERC-7683

ERC-7683 mejora significativamente el panorama de las intenciones entre cadenas al optimizar los procesos y permitir interacciones más eficientes entre múltiples cadenas de bloques. Al introducir un marco unificado, ERC-7683 aporta varios beneficios clave que mejoran la experiencia de los usuarios, desarrolladores y rellenadores.

Interoperabilidad mejorada en todo el ecosistema Ethereum

Uno de los principales beneficios de ERC-7683 es la interoperabilidad mejorada que aporta al ecosistema Ethereum. Anteriormente, los protocolos y plataformas tenían que crear sus propias soluciones patentadas para gestionar las transacciones entre cadenas, lo que generaba fragmentación e ineficiencia. La estandarización de las intenciones entre cadenas permite que las aplicaciones descentralizadas integren la funcionalidad entre cadenas sin necesidad de diseñar soluciones únicas. Como resultado, la liquidez puede fluir más libremente entre redes, lo que crea un ecosistema entre cadenas más cohesivo que reduce la fricción tanto para los desarrolladores como para los usuarios.

Infraestructura compartida para la difusión de pedidos y redes de llenado

El protocolo ERC-7683 también fomenta el desarrollo de una infraestructura compartida para la difusión de pedidos y redes de relleno, lo que es vital para la escalabilidad y el éxito de los sistemas de cadenas cruzadas. Al estandarizar la forma en que se estructuran y procesan los pedidos, el protocolo fomenta la creación de sistemas compartidos que distribuyen de manera eficiente los pedidos de cadenas cruzadas. Esta infraestructura compartida permite que múltiples aplicaciones descentralizadas y protocolos aprovechen las mismas redes de relleno, lo que crea un entorno de relleno más sólido y competitivo.


Los rellenadores ahora pueden participar en diferentes protocolos sin necesidad de adaptarse a varios formatos propietarios, lo que conduce a una mejor coordinación y uso de la liquidez. Esta infraestructura colaborativa aumenta la confiabilidad de las transacciones entre cadenas, lo que proporciona un grupo más grande de rellenadores para completar los pedidos, lo que reduce los cuellos de botella y mejora las tasas de cumplimiento.

Mayor liquidez en todas las cadenas

ERC-7683 fortalece la liquidez al permitir el flujo continuo de activos a través de cadenas de bloques. La estandarización de las intenciones entre cadenas elimina los silos, lo que permite que los activos se muevan con mayor libertad entre cadenas y reduce las ineficiencias causadas por los fondos de liquidez fragmentados. Esta liquidez profundizada beneficia a los intercambios descentralizados (DEX), las plataformas de préstamos y otros protocolos DeFi al mejorar la ejecución de transacciones, reducir el deslizamiento y garantizar transferencias de activos más fluidas en todo el ecosistema de cadenas de bloques. Con ERC-7683, la liquidez se convierte en un recurso compartido en lugar de fragmentado, lo que mejora la eficiencia general de las operaciones multicadena.

Experiencia de usuario mejorada: menores costos, ejecución más rápida, tasas de fallas reducidas

ERC-7683 mejora significativamente la experiencia del usuario al abordar múltiples problemas con las transacciones entre cadenas. La introducción de un formato de orden estandarizado y redes compartidas de relleno permite que los rellenos compitan de manera más efectiva, reduciendo las tarifas y haciendo que los intercambios y transferencias entre cadenas sean más rentables.


Además, ERC-7683 reduce las tasas de fallas en los intercambios entre cadenas al abordar las redes fragmentadas de los participantes y la liquidez insuficiente. Sus procesos estandarizados de órdenes y ejecución permiten a los participantes acceder a los detalles necesarios de manera más eficiente, lo que reduce los errores, los retrasos y las transacciones fallidas. Como resultado, los usuarios experimentan interacciones entre cadenas más fluidas y predecibles.


Además, ERC-7683 facilita una ejecución más rápida de las intenciones entre cadenas. Al consolidar la liquidez y el flujo de órdenes, el protocolo garantiza que los rellenadores puedan acceder y completar rápidamente las transacciones necesarias, lo que reduce los retrasos que los usuarios podrían enfrentar al interactuar con múltiples cadenas.

Acelerando la componibilidad en DeFi

Al proporcionar una estructura estandarizada para las intenciones, ERC-7683 abre nuevas posibilidades de componibilidad en las finanzas descentralizadas (DeFi). Los protocolos ahora pueden integrar sin problemas la funcionalidad de cadenas cruzadas en sus marcos existentes, lo que permite a los usuarios combinar múltiples operaciones DeFi, como préstamos, participación e intercambio, en un solo flujo de transacciones.


Esta mayor capacidad de composición permite a los desarrolladores crear aplicaciones descentralizadas más avanzadas que aprovechan la funcionalidad entre cadenas sin complejidad adicional, lo que en última instancia fomenta la innovación en DeFi. Para los usuarios, esto significa una experiencia más fluida a medida que interactúan con protocolos interconectados, lo que libera todo el potencial de DeFi en múltiples cadenas.


En resumen, ERC-7683 aumenta la eficiencia de los sistemas de intención entre cadenas al impulsar una mejor interoperabilidad, fomentar una infraestructura compartida y brindar una experiencia más fácil de usar con costos más bajos, ejecución más rápida y menos fallas en las transacciones.

ERC-7683: Desafíos y consideraciones

Si bien ERC-7683 ofrece ventajas significativas para los sistemas de intenciones entre cadenas, también presenta desafíos y consideraciones que deben abordarse para una implementación exitosa. Estos incluyen obstáculos de adopción, problemas de seguridad y complejidades de integración que podrían afectar la forma en que los desarrolladores, las aplicaciones descentralizadas y los usuarios interactúan con el estándar.

Obstáculos para la adopción

Uno de los principales desafíos para ERC-7683 es lograr una adopción generalizada en diferentes ecosistemas de blockchain. Muchos proyectos ya han invertido recursos considerables en el desarrollo de sus propias soluciones de blockchain, lo que puede generar resistencia a la adopción de un nuevo estándar. Convencer a los desarrolladores y a las aplicaciones descentralizadas de que realicen la transición a ERC-7683 requerirá un esfuerzo significativo, especialmente para los protocolos establecidos que ya han creado su propia infraestructura.

Implicaciones de seguridad

La seguridad es un factor crítico en las interacciones entre cadenas, y ERC-7683 introduce nuevas consideraciones debido a su diseño flexible. El estándar permite diversos contratos de liquidación, pero esta flexibilidad puede generar distintos niveles de seguridad según la implementación. Los contratos de liquidación mal diseñados o probados de manera inadecuada podrían introducir vulnerabilidades, especialmente para los rellenadores y desarrolladores, lo que resalta la necesidad de un diseño sólido y pruebas exhaustivas.


Sin embargo, para los usuarios, los riesgos son relativamente bajos. Los pedidos se completan de forma irreversible utilizando los fondos del emisor antes de la liquidación final en la cadena. Si un pedido no se completa, los usuarios reciben de vuelta sus fondos iniciales en depósito, lo que minimiza su exposición a riesgos más allá de los riesgos inherentes a los contratos inteligentes que se aplican en la Web3.

Complejidades de la integración

La implementación técnica de ERC-7683 presenta varios desafíos de integración para las aplicaciones descentralizadas y las plataformas de cadena de bloques. Los desarrolladores deben integrar la interfaz de contratos de liquidación y adaptar sus sistemas para que admitan ERC-7683, lo que podría requerir la reescritura de componentes clave relacionados con la creación, difusión y liquidación de órdenes. Esto puede requerir un uso intensivo de recursos.


Además, la flexibilidad de ERC-7683 permite diversos procedimientos de liquidación, lo que puede complicar las cosas para los rellenadores y las aplicaciones descentralizadas a medida que navegan por diferentes implementaciones. La capa de mensajería entre cadenas agrega otra capa de complejidad, ya que los desarrolladores deben garantizar la transmisión segura y oportuna de mensajes y activos a través de cadenas de bloques con diferentes mecanismos de consenso y velocidades.

¿Cuáles son las posibles aplicaciones y casos de uso del ERC-7683?

El marco estandarizado de ERC-7683 para las intenciones entre cadenas abre numerosas posibilidades, especialmente en ecosistemas donde las interacciones entre cadenas son esenciales. Al agilizar la forma en que se inician, ejecutan y liquidan las transacciones entre cadenas, ERC-7683 permite nuevos casos de uso en aplicaciones y plataformas descentralizadas. A continuación, se presentan algunas de las áreas más prometedoras en las que este estándar puede tener un impacto significativo.

Protocolos DeFi que abarcan múltiples cadenas

DeFi es una de las áreas clave en las que el ERC-7683 puede tener un gran impacto. Muchos protocolos DeFi operan en múltiples redes blockchain, y el ERC-7683 puede mejorar enormemente su eficiencia al estandarizar las transacciones entre cadenas. Los usuarios de plataformas DeFi multicadena pueden mover activos entre cadenas sin necesidad de interactuar manualmente con la infraestructura de cada cadena individual.


Este estándar también brinda a los usuarios un mejor acceso a la liquidez en todas las cadenas, lo que mejora el rendimiento de operaciones como préstamos, staking y yield farming. Al garantizar interacciones más fluidas y rápidas, ERC-7683 reduce los costos y aumenta la confiabilidad para los usuarios de DeFi.

Mercados NFT de cadenas cruzadas

Otra aplicación interesante de ERC-7683 se encuentra en los mercados de NFT entre cadenas. Los tokens no fungibles (NFT) desempeñan un papel importante en los ecosistemas de cadenas de bloques, y permitir interacciones entre cadenas con NFT podría ampliar los mercados para compradores y vendedores.


Si bien el ERC-7683 no admite directamente la transferencia de un NFT de una cadena a otra si el NFT en sí no existe en ambas cadenas, permite a los usuarios comprar un NFT en la cadena A utilizando sus fondos en la cadena B sin necesidad de transferencias puente adicionales. Al facilitar intenciones como el intercambio o la adquisición de NFT en una cadena de destino, el ERC-7683 mejora la liquidez y la flexibilidad en el mercado de NFT, creando una experiencia más fluida para los usuarios. En resumen, el ERC-7683 tiene el potencial de impulsar la innovación en los mercados de DeFi multicadena y NFT entre cadenas, proporcionando un enfoque unificado y eficiente para las interacciones entre cadenas.

¿Cuáles son las implicaciones de adoptar ERC-7683?

ERC-7683 está posicionado para tener un impacto significativo en Ethereum y el ecosistema blockchain más amplio. Al introducir un marco estandarizado para las intenciones entre cadenas, aborda muchos de los desafíos asociados con las interacciones entre cadenas. A medida que evoluciona el espacio blockchain, la adopción y el desarrollo posterior de ERC-7683 podrían redefinir el modo en que las aplicaciones y los protocolos descentralizados operan en diferentes cadenas, promoviendo soluciones más eficientes, escalables y fáciles de usar.

Impacto potencial en Ethereum y el ecosistema blockchain más amplio

Para Ethereum, ERC-7683 puede fortalecer su rol como centro de actividades multicadena. Al brindar una forma fluida para que los activos y las transacciones se muevan entre Ethereum y otras cadenas de bloques, ERC-7683 refuerza la posición de Ethereum como la base para DeFi y otras aplicaciones de cadenas cruzadas. Esto es especialmente importante en el contexto de los rollups, donde la liquidez a menudo se fragmenta entre diferentes soluciones de capa 2 (L2).


Actualmente, los usuarios deben interactuar con cada rollup por separado, lo que fragmenta la liquidez y aumenta las ineficiencias. ERC-7683 ayuda a unificar la liquidez en estos rollups al estandarizar la forma en que los activos se mueven entre ellos, lo que reduce la fricción y mejora el flujo de liquidez.


El estándar ERC-7683 tiene el potencial de influir significativamente en el ecosistema blockchain más amplio al fomentar una mayor colaboración entre cadenas. A medida que el estándar gane fuerza, los proyectos que tradicionalmente estaban aislados dentro de sus propios ecosistemas podrían comenzar a integrarse de manera más fluida con cadenas de bloques externas, allanando el camino para una mayor interoperabilidad en el futuro. Esta mayor conectividad entre cadenas podría generar una mejor liquidez, DEX más robustos y ecosistemas DeFi más fuertes en general. La estandarización introducida por el estándar ERC-7683 también puede impulsar la innovación, alentando a los proyectos a aprovechar este marco y la interoperabilidad entre cadenas para ofrecer nuevos servicios y funciones.

Posibles mejoras del estándar ERC-7683

Como sucede con cualquier tecnología en evolución, es probable que el ERC-7683 experimente mejoras adicionales con el tiempo. Un área de desarrollo potencial es la mejora de los mecanismos de verificación de liquidación. Si bien la versión actual permite flexibilidad en los procesos de liquidación, las iteraciones futuras podrían introducir métodos de verificación más sólidos o estandarizados para mejorar la seguridad y simplificar la integración para desarrolladores y usuarios.


Otra área de mejora podría ser la optimización de las redes de relleno. A medida que las transacciones entre cadenas crezcan, será fundamental contar con redes de relleno más eficientes para garantizar una ejecución rápida y de bajo costo. Las versiones futuras de ERC-7683 podrían introducir mecanismos avanzados para seleccionar rellenos, incentivar la participación y minimizar la latencia en las transacciones entre cadenas.


En resumen, ERC-7683 es un proyecto muy prometedor para mejorar el ecosistema Ethereum, en particular para consolidar la liquidez en los rollups fragmentados y, al mismo tiempo, expandir la interoperabilidad entre cadenas en todo el espacio blockchain más amplio.

Conclusión

ERC-7683 proporciona un marco crucial para mejorar las interacciones entre cadenas al estandarizar la forma en que se crean, difunden y cumplen las intenciones en múltiples cadenas de bloques. Este estándar aborda desafíos clave como la liquidez fragmentada y las redes de relleno ineficientes, ofreciendo una estructura unificada que simplifica las transferencias de activos y mejora la experiencia del usuario. Su diseño flexible también permite diversos métodos de verificación, lo que brinda a los desarrolladores la libertad de implementar soluciones adaptadas a sus necesidades y, al mismo tiempo, mantener la compatibilidad en todo el ecosistema.


De cara al futuro, es probable que ERC-7683 desempeñe un papel fundamental en la configuración del futuro de la interoperabilidad entre cadenas. A medida que aumenta su adopción, podemos esperar más avances en el estándar, especialmente en áreas como la verificación de liquidaciones y la optimización de la red de relleno. Al unificar la liquidez en ecosistemas fragmentados, en particular los rollups de Ethereum, ERC-7683 prepara el terreno para un entorno de cadenas cruzadas más cohesivo, eficiente y escalable, impulsando la innovación y la colaboración en todo el panorama de la cadena de bloques.


Una versión de este artículo fue publicada originalmente aquí .