Intercambio de tokens de la red host de Ethereum a una cadena de bloques diferente

¿Cuál es una buena manera de intercambiar tokens de la red host de Ethereum a una red diferente (es decir, la cadena de bloques de Tron)?

¿La mejor manera de hacer esto sería tener un contrato inteligente en el que los poseedores de tokens ERC20 tendrían que enviar sus tokens y también declarar una dirección de billetera Tron para crear un mapeo público y una matriz de claves públicas pertenecientes a los poseedores de tokens que ejecutaron el mapeo? ? ¿Quizás esos dos elementos se pueden iterar fuera de la cadena para distribuir tokens en la nueva red? Estoy preocupado porque no sé si este es el enfoque más óptimo o si es posible leer y devolver los datos en cadena de una matriz con muchas variables debido a los costos de gas. ¡Gracias!

Respuestas (1)

El método que describiste funcionaría. Una optimización de costos sería registrar un evento cada vez que un usuario envíe sus tokens al contrato. Esto eliminaría el requisito de una matriz y una asignación. Cuando intente leer los datos fuera de la cadena (para el intercambio con el otro token), simplemente puede leer cada evento que ocurrió en ese contrato. Un ejemplo sería:

event Swap(address indexed _from, bytes indexed _to, uint256 indexed _amount)

El _toparámetro anterior sería la dirección del usuario en la nueva cadena.

Como nota, creo que esto es similar a cómo funcionará la transición ETH1 a ETH2.


También puede ver ejemplos históricos que han sucedido y pueden ser aplicables a su situación.

EOS creó un ERC20 en Ethereum y lo cambió por tokens en la red EOS. Para hacerlo, se asociaron con intercambios para realizar el intercambio para los no residentes de EE. UU.

Si sus tokens no estuvieran en un intercambio, habría tenido que registrar sus tokens en el sitio de EOS y luego realizar un intercambio basado en su dirección registrada, similar a su propuesta. Puede encontrar más información aquí . Esto funcionó tomando una instantánea de la red en un momento dado y usando la dirección pública de Ethereum como una función de la dirección EOS. Puedes leer más detalles aquí .


Otro ejemplo son los swaps de USDT. USDT vive en algunas redes: Ethereum, Omni y Tron, por nombrar algunas. Estos activos se intercambian entre cadenas constantemente. Esto es posible gracias a su centralización, algo que quizás no sea posible en tu caso.

Para realizar un intercambio de cadena USDT, primero debe hacer un trato con el equipo de Tether para resolver los detalles. Entonces, un intercambio consiste en enviar USDT en una cadena al equipo de Tether, y luego ellos te envían USDT en la otra cadena.


Los intercambios atómicos son otra opción. Puedes leer sobre ellos aquí .

Estos intercambios requieren un nivel de coordinación y un secreto compartido entre las partes, pero pueden considerarse (desde un nivel superior) como una simple transferencia entre cadenas. Requiere un concepto de contrato Hashed Timelock , pero es posible según su caso de uso.

Puede encontrar información adicional aquí .