Documentación
Conceptos
Pools blindados, activos, comisiones, notas, bloques y validadores, y el pool de intercambio.
Red de pruebas: las monedas no tienen valor
Pools blindados y notas
Tu saldo en Tint es un conjunto de notas. Una nota es un registro, cifrado para una dirección, que dice «tanto de esta moneda te pertenece». Las notas se guardan en la cadena como compromisos en un árbol de Merkle, de modo que nadie puede leerlas ni saber de quién son.
Para pagar, tu cartera gasta algunas notas y crea otras nuevas: una para el destinatario y el cambio para ti. Demuestra, con una prueba Halo 2, que posee las notas gastadas, que existían y que los valores cuadran, sin decir cuáles son. Cada nota gastada revela un nullifier, una etiqueta que la red usa para rechazar un segundo gasto de la misma nota sin saber de qué nota se trataba.
La cartera del destinatario lee cada bloque e intenta descifrar cada nota nueva con su clave de visualización. Una nota que se descifra es suya. Este descifrado de prueba es la razón por la que un nodo no puede saber para quién es un pago.
Activos
Una moneda es un activo con un número. El activo 0 es la moneda nativa TINT; el activo 1 es el dólar de prueba TUSD. Una cadena puede definir hasta 16 activos. Cada activo es su propio pool blindado: un pago mueve notas de un solo activo, y el intercambio es el único lugar donde se encuentran dos activos.
Los importes son números enteros de unidades. Una moneda son 100,000,000 de unidades (8 decimales), así que la cantidad mínima de TINT es 0.00000001.
Comisiones
Cada acción de un pago abona una comisión mínima, y la comisión se paga en la moneda que envías. Nunca necesitas una segunda moneda para pagar el gas. En la red de pruebas actual el mínimo es:
| Moneda | Comisión por acción |
|---|---|
TINT | 0.00005 |
TUSD | 0.001 |
Una transacción tiene al menos una acción y como máximo 64. La cartera muestra la comisión exacta antes de que confirmes. La comisión es pública.
Notas de pago
Cada nota lleva un campo de memo de 512 bytes, cifrado junto con la nota. Pon ahí un texto breve y solo la cartera del destinatario podrá leerlo. Un memo vacío no cuesta nada extra, porque todas las notas tienen el campo de todos modos.
Bloques y validadores
Tint es proof-of-stake. Un conjunto fijo de validadores acuerda cada bloque mediante un consenso BFT (Simplex, de la biblioteca commonware). Un bloque es final en cuanto los validadores lo han acordado: no hay que esperar a que se acumulen confirmaciones.
- Un bloque con pagos se construye en cuanto hay un pago que incluir.
- Una cadena tranquila construye un bloque vacío más o menos cada 5 segundos, para que los bloques vacíos no llenen el disco. Un pago no espera ese descanso.
- Los parámetros del consenso fijan un mínimo de medio segundo entre dos bloques.
- Los validadores se eligen en el génesis y todavía no cambian. En la red de pruebas pública los cuatro funcionan en un solo servidor.
Las recompensas por bloque pagan a los validadores: la red de pruebas empieza con 2 TINT por bloque, se reduce a la mitad cada 15,768,000 bloques y se estabiliza en una recompensa residual de 0.1 TINT.
El pool de intercambio
La cadena tiene un pool integrado que intercambia TINT y TUSD entre sí. Sigue la regla del producto constante (x · y = k): el precio se mueve a medida que cambian las dos reservas del pool. El pool se queda con el 0,3 % de lo que se paga, y la comisión permanece en el pool.
Empieza con 200,000 TINT y 100,000 TUSD, un precio de medio dólar de prueba por moneda. Nadie gestiona el pool y sus monedas no se pueden retirar: solo puede intercambiar.
Un intercambio indica lo mínimo que aceptará. Si el precio del pool se ha movido de modo que ya no puede darlo, el nodo responde price_moved y no se gasta nada.
Límites
| Límite | Valor en la red de pruebas |
|---|---|
| Acciones en una transacción | 64 |
| Acciones en un bloque | 2,048 |
| Raíces recientes a las que puede anclarse una transacción | 1,000 bloques |
| Con cuánta antelación puede fijar una transacción su caducidad | 1,000 bloques |