Imaginez deux mineurs aux deux bouts du monde. Chacun trouve un bloc valide presque au même moment. Sur la plupart des chaînes de blocs, un seul de ces blocs peut survivre. L'autre est rejeté, avec le travail qui l'a produit. ATON est conçu pour garder les deux.
Ce billet explique pourquoi les égalités arrivent, ce qu'une chaîne unique en fait, et comment la règle de type GHOSTDAG d'ATON place chaque bloc dans un seul ordre sur lequel tout le monde s'entend.
Pourquoi les égalités arrivent
Un nouveau bloc prend du temps à atteindre chaque ordinateur du réseau. Pendant ce trajet, un autre mineur qui ne l'a pas encore vu peut trouver son propre bloc. Aucun des deux n'a mal agi. Ils n'avaient tout simplement pas encore entendu parler l'un de l'autre.
Ce qu'une chaîne unique fait d'une égalité
Dans une chaîne unique, chaque bloc doit avoir exactement un parent. Quand deux blocs arrivent ensemble, le réseau doit donc en choisir un. Le perdant est abandonné, et le travail de son mineur ne compte pour rien.
Ça a un coût. Le travail rejeté ne protège rien. Et pour que les égalités restent rares, une chaîne unique doit créer ses blocs assez lentement pour que chacun atteigne habituellement tout le monde avant que le suivant soit trouvé.
Ce que fait ATON
ATON est un DAG de blocs : un graphe de blocs plutôt qu'une seule ligne. Quatre étapes transforment ce graphe en une histoire convenue.
- Créés en parallèle. Les mineurs n'attendent pas qu'un bloc atteigne tout le monde avant de créer le suivant. Plusieurs blocs peuvent apparaître presque au même moment, et chacun est conservé.
- Liés à leurs parents. Chaque nouveau bloc nomme comme parent chaque bloc que son mineur a vu au sommet. Un bloc peut avoir plusieurs parents.
- Colorés en bleu ou en rouge. Une règle de type GHOSTDAG colore chaque bloc. Bleu veut dire bien relié au reste, comme les blocs minés honnêtement et publiés sans tarder. Rouge veut dire le contraire, comme un bloc retenu puis publié en retard.
- Placés dans un seul ordre. À partir du graphe et de ses couleurs, la même règle place chaque bloc dans un ordre unique. Chaque nœud qui a les mêmes blocs obtient le même ordre, et chaque bloc vient après ses parents.
| Question | Une chaîne unique | ATON |
|---|---|---|
| Deux blocs à la fois | Un est rejeté | Les deux sont gardés |
| Parents par bloc | Exactement un | Un ou plusieurs |
| Comment l'histoire est convenue | La plus longue ligne gagne | Un ordre tiré du graphe entier |
Pourquoi les couleurs comptent
Garder chaque bloc soulève une question légitime : qu'en est-il d'un mineur qui bâtit des blocs en secret et les publie plus tard ? Ses blocs ne sont pas bien reliés à ce que tout le monde bâtissait au même moment, alors la règle les colore en rouge. Les blocs honnêtes, publiés sans tarder, finissent en bleu.
Ce qui n'est pas encore décidé
La règle d'ordonnancement a un paramètre appelé k : combien de blocs peuvent être créés en parallèle avant qu'un bloc soit coloré en rouge. Sa valeur n'est pas encore spécifiée. Le rythme visé de création des blocs non plus. Quand les deux seront fixés, ils entreront d'abord dans la spécification, puis sur le site.
D'ici là, vous ne verrez aucun chiffre de vitesse ou de débit de notre part, parce qu'il n'y en a pas d'honnête à donner.