Logo
Nuevos usuarios de RPC: 35% de descuento el primer mesVer oferta
OnFinality Learn
Integración y Desarrollo11 min de lectura

Conectando blockchains: interoperabilidad, puentes y mensajería entre cadenas

Una guía práctica para conectar blockchains mediante puentes, capas de mensajería y oráculos, con diagnósticos ejecutables para verificar el estado entre cadenas.

TL;DR

Conectar blockchains significa hacer que dos ledgers independientes coincidan en un hecho: un activo se movió, un mensaje se entregó o un precio se observó. No existe una forma nativa de que una cadena lea el estado de otra, por lo que cada enlace depende de un partido o protocolo externo que observa una cadena y da fe de otra. Este artículo explica los principales patrones de conexión, muestra cómo verificar una transferencia entre cadenas con código ejecutable y cubre los modos de fallo y las compensaciones que debes medir antes de confiar en un puente o capa de mensajería.

Qué requiere realmente conectar blockchains

Una blockchain es una máquina de estado cerrada. Los validadores solo ejecutan transacciones que hacen referencia a un estado ya conocido por esa cadena, por lo que un contrato en una red no puede leer de forma nativa un saldo, evento o slot de almacenamiento en otra. Conectar blockchains es la práctica de cerrar esa brecha: un sistema externo observa una cadena de origen, produce una atestación y una cadena de destino actúa según esa atestación.

Ese sistema externo es el límite de confianza. Ya sea que se llame puente, protocolo de mensajería entre cadenas, red de oráculos o relé de cliente ligero, la seguridad del enlace depende de quién puede producir una atestación válida y cómo la cadena de destino la verifica. Por lo tanto, entender la conexión de blockchains tiene menos que ver con la palabra 'puente' y más con el modelo de verificación.

Esta guía cubre los patrones de conexión comunes, una forma reproducible de verificar una transferencia entre cadenas y las compensaciones a medir. Para la selección de endpoints por red, las respuestas del RPC Assistant complementario se enlazan al final en lugar de repetirse aquí.

Suposiciones y requisitos previos

Los procedimientos a continuación asumen que tienes acceso RPC a al menos dos redes, una forma de leer recibos de transacciones y una comprensión básica de eventos y logs. No necesitas una billetera con fondos para ejecutar los pasos de verificación de solo lectura; solo la necesitas si pretendes iniciar una transferencia.

Mantén los marcadores de posición literales. Reemplaza RPC_URL_SOURCE y RPC_URL_DEST con endpoints que controles, y nunca pegues una clave privada real en un script compartido. Si estás eligiendo proveedores, comienza con la guía de endpoints RPC multicadena y la guía de endpoints RPC.

  • URLs RPC de origen y destino para las dos cadenas que estás conectando
  • Las direcciones del contrato de puente o mensajería en ambas cadenas
  • El hash de la transacción del depósito o envío de mensaje en la cadena de origen
  • Un explorador de bloques para cada cadena para verificar los logs

Los cuatro patrones principales para conectar diferentes redes blockchain

La mayoría de los enlaces en producción caen en uno de cuatro patrones. Difieren en qué se mueve y quién da fe de ello.

Puentes lock-and-mint / burn-and-release. Un activo se bloquea en un contrato en la cadena de origen y se acuña una representación envuelta en el destino. Revertir el flujo quema el activo envuelto y libera el original. El custodio o conjunto de validadores del puente controla la acuñación, por lo que el enlace es tan seguro como ese conjunto.

Capas de mensajería entre cadenas. En lugar de mover activos, estos protocolos entregan cargas útiles arbitrarias. Un contrato de origen emite un mensaje, un comité fuera de cadena o un cliente ligero da fe de él, y un contrato de destino ejecuta la carga útil. Las transferencias de tokens se convierten en una aplicación sobre la capa de mensajería.

Oráculos para datos externos y entre cadenas. Las redes de oráculos observan datos, incluido el estado de otras cadenas, y escriben valores atestiguados en cadena. A menudo se utilizan para feeds de precios y para activar lógica de contratos basada en eventos en otros lugares.

Enlaces nativos de clientes ligeros y rollups. La cadena de destino verifica directamente el consenso de la cadena de origen, por ejemplo, un rollup que prueba su estado a una cadena principal. Este es el modelo de verificación más fuerte pero es costoso y específico de cada cadena.

Modelo mental: observar, atestiguar, verificar, ejecutar

Cada enlace se puede descomponer en cuatro etapas. Primero, un observador lee la cadena de origen y espera la finalidad. Segundo, un atestiguador firma o prueba una declaración sobre ese estado. Tercero, la cadena de destino verifica la atestación contra una autoridad o regla de consenso conocida. Cuarto, el contrato de destino ejecuta el efecto.

Cuando una transferencia entre cadenas parece atascada, identifica qué etapa falló. Una transacción de destino ausente generalmente significa que el observador no ha alcanzado la finalidad o que el atestiguador no ha firmado. Una transacción de destino revertida generalmente significa que la verificación falló o que la carga útil ya se procesó. Esta descomposición es más útil que tratar el puente como una caja negra.

Las suposiciones de finalidad importan aquí. Un enlace que actúa con una sola confirmación está expuesto a reorganizaciones de la cadena de origen; un enlace que espera la finalidad económica es más lento pero más seguro. Mide la política de confirmación real en lugar de asumirla.

Comprobación ejecutable: verificar una transferencia entre cadenas con curl

El primer diagnóstico es confirmar que la transacción de origen existe e inspeccionar sus logs. Usa una llamada JSON-RPC para obtener el recibo y buscar el evento del contrato del puente. La firma exacta del evento depende del puente, así que lee primero su documentación o ABI.

El siguiente comando obtiene un recibo. Reemplaza los marcadores de posición; no uses endpoints públicos inventados en producción.

curl -s RPC_URL_SOURCE \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_getTransactionReceipt",
    "params": ["0xSOURCE_TX_HASH"]
  }'

Comprobación ejecutable: comparar el estado de origen y destino en JavaScript

Una transferencia entre cadenas solo se completa cuando la cadena de destino refleja el evento de origen. El script a continuación lee el recibo de origen y el recibo de destino, luego imprime ambos estados y números de bloque para que puedas compararlos. Utiliza ethers y dos URLs RPC que proporciones.

Ejecútalo después de que el puente informe la finalización. Si el estado de destino es null, la transacción no ha sido minada o el hash es incorrecto. Si es 0, la ejecución en destino se revirtió.

import { JsonRpcProvider } from 'ethers';

const source = new JsonRpcProvider('RPC_URL_SOURCE');
const dest = new JsonRpcProvider('RPC_URL_DEST');

async function compare(sourceTxHash, destTxHash) {
  const [srcReceipt, dstReceipt] = await Promise.all([
    source.getTransactionReceipt(sourceTxHash),
    dest.getTransactionReceipt(destTxHash),
  ]);

  console.log('source status:', srcReceipt?.status, 'block:', srcReceipt?.blockNumber);
  console.log('dest status:', dstReceipt?.status, 'block:', dstReceipt?.blockNumber);

  if (!dstReceipt) {
    console.log('destination not mined yet: check attester and finality policy');
  } else if (dstReceipt.status === 0) {
    console.log('destination reverted: check verification and replay protection');
  }
}

compare('0xSOURCE_TX_HASH', '0xDEST_TX_HASH');

Resultado de verificación esperado y procedimiento de tabla de resultados

Un enlace saludable produce un recibo de origen con estado 1, un recibo de destino con estado 1 y un número de bloque de destino mayor que el número de bloque de origen. El recibo de destino también debe contener el evento de finalización del puente, y el saldo envuelto debe aumentar en la cantidad esperada menos las comisiones.

Registra tus propias mediciones en lugar de confiar en números publicados. Usa una tabla como la siguiente y complétala por transferencia; deja las celdas en blanco hasta que las hayas observado.

  • | Campo | Cadena de origen | Cadena de destino |
  • | Estado de la transacción | | |
  • | Número de bloque | | |
  • | Marca de tiempo | | |
  • | Evento del puente emitido | | |
  • | Cantidad antes / después | | |
  • | Latencia observada (segundos) | | |

Solución de problemas de transferencias entre cadenas atascadas o desajustadas

Transacción de origen pendiente. El observador no puede actuar hasta que la transacción de origen se mine y alcance el umbral de confirmación del puente. Verifica las condiciones de gas de la cadena de origen y la política de finalidad del puente.

Transacción de destino ausente. Es posible que el atestiguador no haya firmado, o que el mensaje esté en cola detrás de un límite de velocidad. Consulta la página de estado del puente y la actividad en cadena del atestiguador. Si el puente utiliza un período de desafío, el retraso puede ser intencional.

Transacción de destino revertida. Las causas comunes son la protección contra repetición (el mensaje ya se procesó), gas insuficiente en destino o un fallo de verificación porque la atestación no coincidía con el conjunto de firmantes esperado. Lee el motivo de la reversión en los logs del recibo.

Discrepancia de cantidad. Las comisiones, el deslizamiento y las diferencias de decimales entre cadenas son culpables frecuentes. Confirma los decimales del token envuelto y el esquema de comisiones del puente antes de asumir una pérdida.

Limitaciones y compensaciones de conectar blockchains

Cada enlace agrega una suposición de confianza que no existe en una sola cadena. Los puentes custodiales y de conjunto de validadores concentran el riesgo en un grupo pequeño; los enlaces de cliente ligero reducen ese riesgo pero son costosos y específicos de cada cadena. Las capas de mensajería heredan la seguridad de su conjunto de atestiguadores, y los oráculos heredan la seguridad de sus operadores de nodo.

La liquidez es otra restricción. Los puentes lock-and-mint dependen de que el pool de destino tenga suficiente liquidez para liberar activos; las capas de mensajería dependen de que haya gas disponible en destino. Ninguno es gratuito, y ambos pueden fallar bajo carga.

Finalmente, la composabilidad es limitada. Un enlace que mueve un token no mueve automáticamente sus derechos de gobernanza, acumulación de rendimiento o permisos a nivel de contrato. Trata cada activo enlazado como un instrumento distinto y verifica su comportamiento en la cadena de destino.

Próximos pasos: medir y operar un enlace

Antes de confiar en un enlace en producción, ejecuta el procedimiento de verificación en varias transferencias a diferentes horas del día y registra la latencia, la tasa de fallos y la variación de comisiones. Compara los resultados con las garantías publicadas del puente.

Para la infraestructura, elige endpoints RPC que cubran ambas cadenas y expongan los métodos que necesitas. Las páginas descripción general del servicio API y precios de RPC explican las opciones, y los nodos dedicados son apropiados cuando necesitas un rendimiento constante para un observador o relay. Explora las redes compatibles en la página de redes.

Si estás seleccionando un proveedor para una cadena específica, usa RPC Assistant para la recomendación concreta en lugar de adivinar a partir de una lista. Las respuestas relacionadas incluyen mejor proveedor RPC para proyectos Web3 y guía de alojamiento de nodos blockchain.

Nunca te preocupes por la infraestructura nuevamente

OnFinality elimina la carga pesada de DevOps para que puedas construir de forma más inteligente y rápida.

Comenzar