Glossaire
Certificat, fold, omission, garant, cellule. Plusieurs de ces mots signifient ici quelque chose de plus étroit qu'ailleurs, et deux ou trois nomment des événements pour lesquels la plupart des chaînes n'ont pas de mot.
Le vocabulaire qu'emploie ce protocole, au sens où il l'emploie. Plusieurs de ces mots signifient ici quelque chose de plus étroit qu'ailleurs, et deux d'entre eux — l'omission et le rejet — nomment des événements pour lesquels la plupart des chaînes n'ont pas de mot faute d'équivalent.
Certificat#
L'unique type de transaction de Zycord. Un certificat porte l'état qu'il a lu et l'état qu'il a écrit, plus le programme qui les relie, les signatures qui l'autorisent, un garant, un TTL, et une enchère dans chacun des deux marchés de frais. Parce qu'il porte ses propres entrées et sorties, vérifier s'il est valide n'exige aucun état.
Fold#
La boucle déterministe qui fait avancer le registre. Elle parcourt les certificats d'un bloc dans un ordre total et vérifie pour chacun si ses lectures déclarées tiennent encore : si oui elle valide les écritures, si non elle l'omet. Le fold effectue des comparaisons, des additions et des écritures sur un ensemble de travail clé-valeur en mémoire chaude — aucune exécution de code, aucune vérification de signature, aucune réexécution, et aucune arithmétique sur courbe elliptique. C'est la seule étape du système qui ne se parallélise pas.
Omission#
Ce qui arrive à un certificat dont les lectures déclarées ne tiennent plus. Ses frais sont facturés à son garant, et le bloc reste valide. L'omission est une sémantique, non un échec : l'inclusion et l'application sont des événements distincts, et c'est ce qui permet à un producteur de blocs d'être aveugle — il ne peut jamais produire un bloc invalide en incluant un certificat périmé.
Rejet#
Un non-événement non facturé, et le terme que l'implémentation ajoute au vocabulaire du livre blanc. Un certificat qui atteint l'application avec son dépôt déjà consommé est rejeté : non facturé, non marqué comme vu, et libre d'être resoumis contre un dépôt frais. Les utilisateurs honnêtes ne perdent donc rien aux courses sur leur propre cellule de dépôt.
Garant#
La partie dont les fonds engagés répondent d'un certificat. Aucun certificat n'existe sans garant. L'omission ne doit pas être gratuite, sinon le mempool se noie — mais le certificat omis n'a jamais touché le solde de l'expéditeur, il n'y a donc rien à facturer à l'expéditeur. Le garant est ce qui donne un propriétaire à chaque conflit. À l'Ère 0, le seul mode est l'auto-garantie : l'expéditeur attache un petit dépôt pris sur une cellule non grevée.
Cellule#
La valeur à un slot — un entier non signé de 256 bits stocké en gros-boutien sur 32 octets. Zéro est absence : un slot jamais écrit et un slot écrit à zéro sont le même slot. C'est une exigence de consensus, non une commodité : cela garde la racine d'état fonction de l'état plutôt que de l'historique qui l'a produit.
Adresse à usage unique (0x01)#
Une adresse dont l'autorité de signature est brûlée définitivement par son premier débit. Payer une adresse à usage unique fraîchement dérivée est le chemin rapide sans contention, et en dériver une nouvelle par paiement est ce qui rend un paiement non reliable au suivant. Le prix en est que “en dépenser une partie” n'est pas quelque chose qu'une adresse à usage unique sait faire — voyez la règle 1 du portefeuille.
Adresse persistante (0x02)#
Une adresse réutilisable. Elle ne peut jamais entrer dans le registre des dépensées, elle n'a donc aucune surface de nuisance par brûlage. Les commerçants, les adresses de dons et les paiements de minage doivent en utiliser une ; zycordd --payout refuse toute autre chose.
Registre des adresses dépensées#
L'ensemble de consensus permanent des adresses à usage unique dont l'autorité a été brûlée. Les valeurs de cellules sous une adresse dépensée peuvent être élaguées après l'horizon d'annulation, mais jamais l'entrée du registre — c'est elle qui empêche l'adresse d'être ressuscitée. Environ 33 octets par adresse, pour toujours : le problème ouvert que le protocole assume, partagé structurellement avec toute conception à ensemble de nullificateurs.
Valide et applicable#
Deux prédicats qu'une chaîne conventionnelle confond. Valide est sans état, parallèle, et vérifiable par quiconque à partir des seuls octets du certificat. Applicable est avec état, séquentiel, et décidé seulement par la position dans le registre. Deux certificats valides peuvent déclarer la même valeur d'entrée pour le même slot ; un seul au plus peut être applicable.
Delta gardé#
Une discipline d'accès dans laquelle un certificat affirme un prédicat sur un slot — balance ≥ 10 — sans lire la valeur dans le calcul, et écrit un delta signé. Un nombre quelconque de débits et de crédits gardés sur le même slot commutent, si bien qu'une omission ne survient que sur un découvert réel et non simplement parce que le solde a changé. Cette seule discipline couvre les transferts, les frappes à offre plafonnée, les autorisations et les parts de coffre.
Delta pur#
Un delta signé sans garde. Il ne peut jamais entrer en conflit et ne donne jamais lieu à une omission. Pourboires, compteurs, accumulateurs, décomptes de récompenses.
Lecture exacte#
La discipline de style SLOAD : la lecture renvoie la valeur du slot dans le calcul et y arrime le certificat. Logique arbitraire, conflits sur les slots chauds, et domaine des séquenceurs applicatifs.
Balise d'époque#
Un slot réservé que le protocole écrit une fois par époque. Les programmes ne doivent pas lire directement des valeurs ambiantes comme l'horodatage ou la hauteur — cela ferait de l'exécution une fonction d'autre chose que les lectures déclarées — ils lisent donc la balise comme n'importe quel autre slot, idéalement avec une garde d'intervalle. C'est une sortie de preuve de travail et elle est impropre aux loteries de forte valeur tant qu'une VRF n'est pas arrivée.
Époque#
2 880 blocs — environ une journée à raison de blocs de 30 secondes. L'unité sur laquelle la subvention décroît par palier, la cible de capacité séquentielle se déplace, et la balise est rafraîchie.
TTL#
La hauteur avant laquelle un certificat doit être validé pour être valide. Bornée par le consensus à 240 blocs (environ deux heures), ce qui est ce qui garde l'ensemble des vus élaguable. Inclure un certificat déjà vu ou expiré rend le bloc invalide — une signature n'est donc facturable qu'une fois au plus, et seulement à une position que son signataire a acceptée en signant.
Gas séquentiel et gas parallèle#
Les frais se scindent en deux marchés : un pour la mutation d'état séquentielle, qui est rare, et un pour la vérification parallèle, qui ne l'est pas. Une vérification de signature ne concourt donc pas dans la même enchère qu'une écriture de stockage, et c'est ce qui rend la cryptographie lourde bon marché par conception.
Ère#
Une étape du lancement, déclenchée par des seuils mesurés sur la chaîne — hauteur de bloc et mise soutenue — jamais par une date de calendrier ni par un vote. L'Ère 0, c'est le minage et les actifs natifs, et deux hauteurs en son sein allument les cautions (40 320) puis la cEVM, les séquenceurs et l'inclusion forcée (80 640) ; l'Ère 1 ajoute la finalité par points de contrôle dès que la mise cautionnée tient 1 % de l'offre ; l'Ère 2 déplace la proposition vers un comité de mise ; l'Ère S ajoute les paiements confidentiels, et seulement après des audits publiés.
RandomX#
La fonction de preuve de travail, optimisée pour les processeurs généralistes afin que le matériel ordinaire reste compétitif. C'est un paramètre de consensus, non un réglage : un binaire qui ne peut pas calculer le pow_engine d'un réseau refuse de démarrer plutôt que de retomber sur autre chose.
Trésorerie#
La cellule de solde propre à l'adresse du protocole, créditée de 3 % de chaque subvention de bloc depuis le bloc 0. Elle n'a ni clé, ni adresse, ni quorum à la genèse et ne peut pas être ouverte avant l'Ère 2, où un jeu de clés 3-sur-5 pourra être fixé par hard fork. Si personne ne se présente jamais publiquement pour la réclamer, les pièces ne sont jamais émises.
Racine d'état#
L'engagement sur la totalité de l'état à une hauteur donnée. Un nœud la recalcule au démarrage et refuse de tourner si celle qui est stockée diverge, et elle sert aussi de garde différentielle en production entre nœuds : deux implémentations qui atteignent des racines différentes depuis une même suite de blocs ont trouvé un bogue chez l'une des deux.
Où chaque terme est défini de façon normative#
Cette page est une aide à la lecture. Les définitions qui lient sont dans la spécification et les vecteurs de référence ; le raisonnement est dans le livre blanc, et la section de vocabulaire propre à l'implémentation se trouve dans docs/ARCHITECTURE.md.