Intercambios entre Cadenas

Un intercambio entre cadenas permite el comercio de tokens en diferentes blockchains sin utilizar un intermediario (por ejemplo, un servicio de intercambio) en el proceso.

../_images/cross-chain-swap.png

Intercambio entre cadenas p煤blicas y privadas

Bitxor sigue el protocolo de Contrato de Tiempo Bloqueado por Hash (HTLC) para crear un entorno sin confianza para el intercambio descentralizado de activos. El protocolo garantiza que, si todos los participantes est谩n de acuerdo, el intercambio se llevar谩 a cabo. Por el contrario, cada participante deber谩 recibir sus fondos bloqueados de vuelta si algunos de ellos deciden no concluir el proceso.

HTLC utiliza hashlocks y timelocks para reducir el riesgo de contraparte. Cada participante en el intercambio de tokens debe presentar una prueba (hashlock) para completarlo. Si no lo hace, los activos bloqueados se devuelven a sus propietarios originales despu茅s de que expire el timelock.

Se puede encontrar una explicaci贸n detallada del protocolo en la Wiki de Bitcoin.

Protocolo

Alice y Bob quieren intercambiar 10 alice.tokens por 10 bob.tokens.

El problema es que no est谩n en la misma red: alice.token est谩 definido en una cadena privada que utiliza la tecnolog铆a Bitxor, mientras que bob.token solo est谩 presente en la cadena p煤blica de Bitxor.

El comercio directo de tokens entre una cadena y otra es imposible debido a las diferencias tecnol贸gicas entre ellas. En el caso de la cadena p煤blica y privada de Bitxor, el mismo nombre de token podr铆a tener una definici贸n diferente, distribuci贸n o incluso no existir. Entre Bitcoin y Bitxor, la diferencia es a煤n m谩s evidente, ya que cada cadena utiliza una tecnolog铆a completamente diferente.

En lugar de transferir tokens entre cadenas de forma literal, el intercambio se realizar谩 dentro de cada cadena. El protocolo de intercambio entre cadenas garantiza que el intercambio de tokens se realice de forma at贸mica.

sequenceDiagram participant Alice participant Private Chain participant Public Chain participant Bob Note over Alice: proof = 'random' Note over Alice: h = sha_256() Note over Alice: secret = h(proof) Alice ->> Private Chain: announces TX1(secret) Note right of Alice: TX1 waits for proof Alice -->> Bob: tells secret Bob ->> Public Chain: announces TX2(secret) Note left of Bob: TX2 waits for proof Alice ->> Public Chain: announces TX3(proof, secret) Note left of Public Chain: proof becomes public Note left of Bob: TX2 executes Note left of Bob: Alice receives funds Bob ->> Private Chain: announces TX4(proof, secret) Note right of Alice: TX1 executes Note right of Alice: Bob receives funds

Diagrama de secuencia de intercambio entre cadenas

Antes de comenzar con el intercambio, todos los participantes involucrados en el intercambio deben tener al menos una cuenta en cada cadena.

  1. Alice genera un conjunto aleatorio de bytes llamado prueba. La prueba debe tener un tama帽o entre 10 y 1000 bytes.

  2. Alice realiza el hash de la prueba obtenida con uno de los algoritmos disponibles para generar el secreto.

  3. Alice define la transacci贸n de bloqueo de secreto TX1:

Propiedad de TX1

Valor

Tipo

Transacci贸n de Bloqueo de Secreto

Token

10 alice.token

Destinatario

Direcci贸n de Bob (Cadena Privada)

Algoritmo

h

Duraci贸n

96 h

Secreto

h(prueba)

Red

Cadena Privada

Una vez anunciada, esta transacci贸n permanecer谩 bloqueada hasta que alguien descubra la prueba que coincide con el secreto. Si nadie lo desbloquea antes de que se alcance la duraci贸n establecida, los fondos bloqueados se devolver谩n a Alice.

  1. Alice anuncia TX1 en la red privada y comparte el secreto con Bob.

  2. Bob debe recuperar el secreto de la cadena y anuncia la siguiente Transacci贸n de Bloqueo de Secreto TX2 en la red p煤blica:

Propiedad de TX2

Valor

Tipo

Transacci贸n de Bloqueo de Secreto

Token

10 bob.token

Destinatario

Direcci贸n de Alice (Cadena P煤blica)

Algoritmo

h

Duraci贸n

84 h

Secreto

h(prueba)

Red

Cadena P煤blica

  1. Alice anuncia la transacci贸n de prueba de secreto TX3 en la red p煤blica. Esta transacci贸n define el algoritmo de cifrado utilizado, la prueba original y el secreto:

Propiedad de TX3

Valor

Tipo

Transacci贸n de Prueba de Secreto

Destinatario

Direcci贸n de Alice (Cadena P煤blica)

Algoritmo

h

Secreto

h(prueba)

Prueba

prueba

Red

Cadena P煤blica

  1. Una vez confirmada TX3, se revela la prueba. La transacci贸n TX2 se desbloquea, y Alice recibe los fondos bloqueados.

  2. Bob selecciona la prueba y anuncia la Transacci贸n de Prueba de Secreto TX4 en la red privada, recibiendo los fondos bloqueados de TX1.

Propiedad de TX4

Valor

Tipo

Transacci贸n de Prueba de Secreto

Destinatario

Direcci贸n de Bob (Cadena Privada)

Algoritmo

h

Secreto

h(prueba)

Prueba

prueba

Red

Cadena Privada

El proceso es at贸mico, pero debe completarse con mucho tiempo de antelaci贸n a las fechas l铆mite:

  • La duraci贸n de TX1 debe ser significativamente mayor que la de TX2 para garantizar que el segundo participante tenga tiempo suficiente para desbloquear TX1 despu茅s de que el primero revele la prueba.

  • Cada participante debe esperar al menos maxRollBackBlocks entre anuncios para evitar sufrir reversiones de transacci贸n.

Transacciones relacionadas

Id

Tipo

Descripci贸n

0x4152

SecretLockTransaction

Transacci贸n para iniciar un intercambio de tokens entre diferentes cadenas.

0x4252

SecretProofTransaction

Transacci贸n para concluir un intercambio de tokens entre diferentes cadenas.

Gu铆as relacionadas