¿Cómo funciona el contrato inteligente de Serenity?

Recientemente lanzamos la versión Beta de nuestro sistema de depósito en garantía, que incluye la primera edición de nuestro contrato inteligente de depósito en garantía. Puede ver su código fuente en nuestro GitHub.

En esta publicación, quiero dar una descripción general de cómo funciona nuestro contrato inteligente.

En primer lugar, el contrato sabe que cuando acepta una transferencia y tiene suficientes tokens SRNT, debe quemarlos de inmediato. Este proceso ocurre de forma absolutamente automática. En caso de que no haya suficientes tokens en el contrato, el 1% de la transferencia va a la billetera de Serenity, y nosotros mismos compramos y quemamos tokens.

Pero la parte principal del contrato inteligente es la lógica de depósito en garantía: el contrato contiene las direcciones de Ethereum del comerciante y su empresa de corretaje. Estas direcciones se guardan en el contrato inteligente en el momento de su implementación y no podemos cambiarlas más adelante, ni siquiera nosotros. Lo principal en la lógica del contrato es que los fondos solo se pueden transferir a estas dos direcciones. Eso significa que, incluso en teoría, nadie más, ni siquiera Serenity, puede obtener dinero del contrato, porque simplemente no puede transferirlo a nadie más.

¿Cómo sabe el contrato inteligente cuándo necesita transferir el dinero? Espera dos comandos de transferencia que coincidan exactamente. Estos comandos solo pueden ser realizados por corretaje, cliente o desde la billetera de Serenity. Nuevamente, las direcciones de la billetera no se pueden cambiar después de la implementación del contrato. El comando es realmente simple: especifica qué cantidad de lo que se mantiene en el contrato inteligente debe ir a la correduría y cuál al cliente. Cuando vemos que el contrato recibió una orden de retiro de una de las partes, notificamos a la segunda parte al respecto.

Por ejemplo, si hay 10 ETH en el contrato inteligente, el cliente puede emitir un comando de transferencia, solicitando transferir 9 ETH a sí mismos y 1 ETH a la correduría. Pero la transferencia no se ejecutará hasta que llegue exactamente el mismo comando, ya sea de la corredora o de Serenity. Este procedimiento garantiza que cada decisión de transferencia sea aprobada por al menos dos de las tres partes: corretaje, cliente y Serenity.

Esta estructura simple y directa del contrato garantiza que sea seguro y pueda auditarse fácilmente.

Vasily Alexeev, director de tecnología de Serenity