Documentación
Puente
Un puente entre TUSD en Tint y USDT en Ethereum y BNB Chain, que se está construyendo y probando primero en las redes de prueba Sepolia y BSC Testnet.
Red de pruebas: las monedas no tienen valor
Cómo funciona
Un contrato de puente vive en cada red de la familia Ethereum. Guarda tokens; no conoce la red de Tint.
Depósito: de Ethereum o BNB Chain a Tint
- Llamas a
deposit(token, amount, tintAddress)en el puente, indicando la dirección de Tint a la que se debe pagar. El token entra en el contrato. - El contrato emite un evento de depósito con el token, el importe, tu dirección y la dirección de Tint.
- El puente paga el mismo importe de
TUSDen la red de Tint a esa dirección.
Retiro: de Tint a Ethereum o BNB Chain
- Pagas
TUSDen Tint al puente e indicas la dirección en la otra red. - Los firmantes del puente ven llegar ese pago y firman una liberación para él.
- Cualquiera puede entonces presentar
release(token, to, amount, order, signatures)con al menos el umbral de firmas, de 65 bytes cada una. El contrato las comprueba y paga los tokens; solo los firmantes pueden generar las firmas.
Cada liberación lleva un número order, un hash del pago en Tint. El contrato recuerda cada orden que ha pagado, así que un pago de Tint se abona una sola vez.
Qué es custodial hoy
- El contrato confía en sus firmantes para que liberen solo lo que realmente llegó a Tint. Una liberación necesita que un umbral de ellos (por ejemplo, 2 de 3) firme un resumen al estilo EIP-712.
- El contrato confía en su propietario para que designe firmantes honestos. El propietario puede cambiar las reglas, los firmantes y pausar el puente. La propiedad se transfiere en dos pasos: se ofrece y luego se acepta.
- Hoy el propietario y los firmantes los elige el equipo de Tint. Si no son honestos o pierden sus claves, los tokens depositados pueden ser sustraídos o quedar bloqueados. Eso es lo que significa custodial.
Límites que aplica el contrato
Están para acotar el daño que podría causar un error o una clave robada. Cada token tiene su propia regla:
| Regla | Significado |
|---|---|
| Enabled | Si los depósitos y las liberaciones de este token están abiertos o no. |
| Granularity | Todo importe debe ser múltiplo de este valor, para que no se pierda polvo entre los decimales de un token (6 para USDT en Ethereum, 18 en BNB Chain) y los 8 de Tint. |
| Minimum | Lo mínimo que puede mover un depósito o una liberación. |
| Maximum | Lo máximo que puede mover un depósito o una liberación. |
| Daily limit | Lo máximo que pueden mover juntas todas las liberaciones de un día UTC. |
| Pause | Mientras el puente está en pausa, no se deposita ni se libera nada. |
Qué hace el puente con la privacidad
El lado de Ethereum es público. Un evento de depósito muestra el token, el importe, el remitente y la dirección de Tint a la que va. Una liberación muestra el destinatario y el importe. Mover fondos por el puente vincula tu dirección pública con una dirección de Tint y con un importe, así que considera visible un cruce. Cuando tu TUSD está en Tint, los pagos entre notas vuelven a ser privados.
El token de prueba
Para probar el puente donde no existen stablecoins reales, el repositorio incluye un contrato TestDollar. Cualquiera puede acuñar algunos para sí mismo, hasta un tope por llamada, y no vale nada. Tiene 6 decimales para comportarse como USDT en Ethereum, o 18 como USDT en BNB Chain. No lo despliegues nunca en una red con dinero real.
Estado
- El contrato del puente y el token de prueba están escritos, con tests. No están auditados.
- La parte del lado de Tint, es decir, cómo se pagan los depósitos y se detectan los retiros, aún no está publicada, y el flujo descrito arriba puede cambiar.
- La cartera muestra el puente como «pronto». Todavía no hay nada que pasar por el puente.