Documentation
Concepts
Pools protégés, actifs, frais, mémos, blocs et validateurs, et le pool d’échange.
Réseau de test§: les pièces n’ont aucune valeur
Pools protégés et notes
Votre solde sur Tint est un ensemble de notes. Une note est un enregistrement, chiffré pour une seule adresse, qui dit « cette quantité de cette pièce vous appartient§». Les notes sont stockées sur la chaîne sous forme d’engagements dans un arbre de Merkle, de sorte que personne ne peut les lire ni savoir à qui elles appartiennent.
Pour payer, votre portefeuille dépense des notes et en crée de nouvelles§: une pour le destinataire, et la monnaie pour vous. Il prouve, avec une preuve Halo 2, qu’il possède les notes dépensées, qu’elles existaient et que les valeurs s’équilibrent, sans dire de quelles notes il s’agit. Chaque note dépensée révèle un annulateur (nullifier), une étiquette que le réseau utilise pour refuser une seconde dépense de la même note sans apprendre de quelle note il s’agissait.
Le portefeuille du destinataire lit chaque bloc et tente de déchiffrer chaque nouvelle note avec sa clé de visualisation. Une note qui se déchiffre est la sienne. Ce déchiffrement d’essai explique pourquoi un nœud ne peut pas savoir à qui est destiné un paiement.
Actifs
Une pièce est un actif doté d’un numéro. L’actif 0 est la pièce native TINT§; l’actif 1 est le dollar de test TUSD. Une chaîne peut définir jusqu’à 16 actifs. Chaque actif est son propre pool protégé§: un paiement déplace des notes d’un seul actif, et l’échange est le seul endroit où deux actifs se rencontrent.
Les montants sont des nombres entiers d’unités. Une pièce vaut 100,000,000 unités (8 décimales), donc le plus petit montant de TINT est 0.00000001.
Frais
Chaque action d’un paiement règle des frais minimaux, et les frais sont payés dans la pièce que vous envoyez. Vous n’avez jamais besoin d’une seconde pièce pour payer le gas. Sur le réseau de test actuel, le minimum est le suivant§:
| Pièce | Frais par action |
|---|---|
TINT | 0.00005 |
TUSD | 0.001 |
Une transaction comporte au moins une action et au plus 64. Le portefeuille affiche les frais exacts avant que vous confirmiez. Les frais sont publics.
Mémos
Chaque note contient un champ de mémo de 512 octets, chiffré avec la note. Placez-y un court texte et seul le portefeuille du destinataire pourra le lire. Un mémo vide ne coûte rien de plus, puisque chaque note possède ce champ de toute façon.
Blocs et validateurs
Tint fonctionne en preuve d’enjeu. Un ensemble fixe de validateurs s’accorde sur chaque bloc au moyen d’un consensus BFT (Simplex, de la bibliothèque commonware). Un bloc est final dès que les validateurs se sont accordés sur lui§: il n’y a pas à attendre que des confirmations s’accumulent.
- Un bloc contenant des paiements est construit dès qu’il y a un paiement à inclure.
- Une chaîne calme construit un bloc vide environ toutes les 5 secondes, afin que les blocs vides ne remplissent pas le disque. Un paiement n’attend pas ce repos.
- Les paramètres du consensus fixent un minimum d’une demi-seconde entre deux blocs.
- Les validateurs sont choisis à la genèse et ne changent pas encore. Sur le réseau de test public, les quatre tournent sur un seul serveur.
Les récompenses de bloc rémunèrent les validateurs§: le réseau de test démarre à 2 TINT par bloc, divise la récompense par deux tous les 15,768,000 blocs et se stabilise à une récompense résiduelle de 0.1 TINT.
Le pool d’échange
La chaîne dispose d’un pool intégré qui échange TINT et TUSD l’un contre l’autre. Il suit la règle du produit constant (x · y = k)§: le prix varie à mesure que les deux réserves du pool changent. Le pool conserve 0.3 % de ce qui est versé, et les frais restent dans le pool.
Il démarre avec 200,000 TINT et 100,000 TUSD, soit un prix d’un demi-dollar de test par pièce. Personne ne gère le pool, et ses pièces ne peuvent pas être retirées§: il ne peut que faire des échanges.
Un échange indique le minimum qu’il accepte. Si le prix du pool a varié au point de ne plus pouvoir le donner, le nœud répond price_moved et rien n’est dépensé.
Limites
| Limite | Valeur sur le réseau de test |
|---|---|
| Actions dans une transaction | 64 |
| Actions dans un bloc | 2,048 |
| Racines récentes auxquelles une transaction peut s’ancrer | 1,000 blocs |
| Jusqu’où une transaction peut fixer son expiration à l’avance | 1,000 blocs |