Swaps atómicos en pocas palabras

A partir de julio de 2019, hay alrededor de 2,000 criptomonedas, pero no hay un mecanismo de intercambio único entre diferentes blockchains. En este artículo, consideramos de manera simplista cómo se organiza una de las tecnologías de intercambio sin intermediarios: los intercambios atómicos.
Que tengas una buena lectura!


logo


Swaps atómicos: ¿qué es y con qué se come?


Los intercambios atómicos son una serie de transacciones en ambas cadenas de bloques que le permiten intercambiar monedas sin la participación de un tercero y confiar en el segundo participante del intercambio. En esencia, se crea una transacción de este tipo, cuyo resultado se puede gastar en presencia de una determinada clave o después de un tiempo.
No todas las cadenas de bloques permiten implementar AtomicSwap. Hay dos requisitos principales:


  • soporte para contratos inteligentes (generador de esta transacción muy "inicial");
  • uso de la misma criptomía (función hash).

Contratos inteligentes? No, no escuchado

Los contratos inteligentes son, en un sentido amplio, un algoritmo "no adherente" que realiza acciones en condiciones conocidas y nada más. En nuestro caso, un contrato inteligente puede considerarse como una gran caja negra, que se alimenta a la dirección del destinatario, la dirección del remitente, la cantidad de envío, el tiempo de retención de dinero y se le asigna un identificador único (hash). La salida es la transacción deseada con las condiciones.


Hash y sus amigos.

Una función hash es otro personaje de un cuento de matemáticas superiores. Convierte la secuencia de entrada a un valor diferente. Los mismos datos dan el mismo resultado. Normalmente, la entrada es un gran número llamado clave secreta, y la salida es un hash. No es posible convertir un hash a una clave secreta.


Cuando todo va bien


Considere el intercambio entre Alice (sí, sí, Alice ya no es la misma) y Bob. Alice tiene Bitcoin (btc), Bob tiene Ether (eth). Ambos personajes tienen direcciones en ambas cadenas de bloques. Ej: grandes signos de criptomonedas simbolizan blockchains.



Alice genera una clave (un gran número) y modestamente no le dice a nadie:



Según la clave, ella considera el hash:



Crea un contrato con un identificador único igual a un hash:



Envía dinero a un contrato. Ahora no puede pasarlos un cierto tiempo (bloqueo de tiempo):


Se acabó el tiempo o bloqueo de tiempo

Timelock: tiempo después del cual el creador del contrato podrá devolver el dinero si envía una transacción de cierto tipo (llamémosle "reembolso"). No se necesita clave secreta para esta transacción. Otro usuario puede retirar dinero para la dirección del destinatario especificado en el contrato (importante: no el suyo) si envía una transacción de un tipo diferente (llamémosla canjear) con la clave secreta.


En general, el mecanismo de procesamiento de transacciones contractuales es el siguiente:


if (transaction_type == "refund" and sender == contract_creater and timelock < now()) { send_to(creator_address); } else if (transaction_type == "redeem" and hash(secret_key) == contract_id) { send_to(receiver_address); } 


Alice informa el hash a Bob. Ahora puede auditar (verificar) todos los campos del contrato: asegúrese de que las direcciones sean correctas, el monto del envío, el tiempo de almacenamiento del dinero en el contrato (el período durante el cual Alice no podrá retirarlos):



Si todo está bien, Bob crea un contrato en la segunda cadena de bloques similar a Alisinom (con el mismo identificador). El destinatario y, posiblemente, la cantidad cambia (si la tasa no es de 1 a 1).



Alice audita el contrato:



Si ella triplica todo, crea una transacción en Ethereum que gasta dinero en el contrato de Bob. La única forma de hacerlo es proporcionar una clave. Ahora se sabe:



Alice tiene eth:



Bob mira la clave y crea una transacción que gasta dinero en el contrato de Alice usando su clave:



Éxito! ¡Los lobos están llenos, las ovejas están a salvo!


Cuando el mundo no es perfecto


Sin embargo, a veces algo puede salir mal. Hay dos lugares donde el intercambio puede fallar. Para hacer esto, hay un mecanismo para devolver el dinero a sus legítimos propietarios.


Supongamos que Alice, como una chica decente, envía dinero para un contrato, pero después de una auditoría, Bob cambió de opinión acerca de separarse:



Alice espera la expiración del bloqueo de tiempo especificado en el contrato (por ejemplo, 48 horas) y devuelve los grillos de sangre:



Otra historia cuenta la voluble Alice, que no quería continuar el intercambio atómico después de que Bob creó el contrato. Escenario alternativo: Alice perdió la llave y no puede hacer esto:



Bob espera el momento de cerrar el dinero (generalmente es menos que el de Alice, de modo que Alice no retira el dinero de Bob en el último minuto y luego no devuelve el suyo; por ejemplo, 24 horas). Alice devuelve su dinero después de su bloqueo de tiempo.



Conclusión


Los intercambios atómicos son muy convenientes para intercambios punto a punto, evitando los intercambios e intermediarios. Los participantes se comprometen a pagar solo una comisión por el envío de transacciones.


En resumen, en el intercambio entre A y C en las cadenas de bloques B1 y B2, se pueden distinguir los siguientes pasos:


  1. inicialización del contrato en B1 por el participante A;
  2. escuchando un contrato en B1 por parte C;
  3. inicialización del contrato en B2 por el participante C;
  4. Escuchar un contrato B2 de A;
  5. proporcionar una clave y retirar dinero a B2 por el participante A;
  6. obtener una clave en B2 por el participante C;
  7. Retiro de dinero en B1 por parte S.

La tecnología es nueva, pero ya se está introduciendo activamente. Quizás en el futuro cercano pueda reemplazar a la centralizada y tan ideológicamente ajena al intercambio de blockchain.

Source: https://habr.com/ru/post/458646/


All Articles