Skip to main content
IntentionBFT est le protocole de consensus d’Intention — un protocole BFT de la famille HotStuff, étendu pour l’infrastructure financière. La sûreté tient sans condition sous le seuil de fautes ; la vivacité tient une fois le réseau stabilisé. Le consensus fait ici deux choses que celui d’une chaîne généraliste ne fait pas : il entérine un séquencement comme objet de première classe, et il entérine un vecteur de prix certifié dans le même événement. Tout ce que le noyau peut garantir de l’exécution repose sur le fait que les deux sont arrêtés avant qu’elle ne commence.

Le modèle

IntentionBFT tolère un adversaire byzantin contrôlant jusqu’à un tiers de la mise totale. La mise honnête dépasse donc toujours les deux tiers, et le quorum standard est n’importe quel ensemble de validateurs dont la mise cumulée dépasse les deux tiers — ce que ces pages appellent un quorum 2f+12f+1 pondéré par la mise. Le réseau est partiellement synchrone : avant un point de stabilisation, les délais sont arbitraires ; après, les délais entre validateurs honnêtes sont bornés.
Sidecar oracleun par validateur
Le validateur valide et signefraîcheur comprise, face à des seuils configurés
Gossip entre validateursmessage du réseau de consensus
Prix certifiéspar epoch et tour
La disponibilité du prix conditionne les blocsUn validateur n’est éligible pour proposer un bloc que s’il présente des observations de prix valides pour le tour courant — les signatures qui entérinent les transactions entérinent donc aussi les prix contre lesquels elles se règlent.
Ce que cela n’affirme pasCela lie le prix à la transaction ; cela ne rend pas le prix juste — le consensus certifie qu’un quorum de validateurs a soumis ces observations à ce tour, rien de plus.
Chaque tour a un leader désigné. À l’intérieur d’un tour, une proposition collecte des agrégats de signatures 2f+12f+1 successifs, et les phases s’enchaînent en pipeline sur des tours adjacents, si bien qu’un bloc atteint la finalité — le moment où il devient irréversible — en deux allers-retours réseau dans le cas courant. Sous réactivité optimiste, la progression est bornée par le délai réel des messages ; la temporisation du pacemaker ne s’engage que si le réseau est adverse ou partitionné.

Entériner un séquencement

La séquence des transactions à l’intérieur d’un bloc est promue au rang d’objet entériné par le consensus, plutôt que laissée comme un sous-produit de l’exécution. Le hash du bloc couvre la charge utile ordonnée, si bien que tout réordonnancement postérieur au consensus invalide les signatures qui l’ont entérinée. L’effet : une fois un bloc finalisé, un quorum 2f+12f+1 pondéré par la mise a signé un engagement sur ce séquencement exact, et aucun validateur honnête n’aura signé un autre séquencement des mêmes transactions dans le même tour. Combiné à une exécution séquentielle suivant cette séquence entérinée, c’est ce qui fait passer le rejeu déterministe d’une convention d’implémentation à une propriété que n’importe qui peut vérifier.
La latitude du leader à l’intérieur d’une même proposition — quels lots disponibles inclure et comment les agencer — reste une surface résiduelle, atténuée par la réputation des leaders et par le fait qu’un leader ne peut produire aucun bloc sans observations de prix valides. Des constructions d’équité de séquencement plus fortes sont suivies comme candidates à une évolution future.

Disponibilité des lots

Dans un protocole naïf, un leader propose un bloc dont la charge utile porte toutes les transactions du tour, ce qui couple la taille des messages de consensus au débit. IntentionBFT sépare la diffusion des données du séquencement. Les validateurs diffusent en continu des lots de transactions en arrière-plan. Chaque lot est accusé de réception jusqu’à ce que son émetteur puisse prouver une disponibilité 2f+12f+1 pondérée par la mise ; ce n’est qu’alors qu’une proposition peut le référencer — par empreinte, non par contenu. Les messages de consensus restent petits quel que soit le débit, et un bloc entériné est toujours rejouable, parce qu’aucun bloc ne peut référencer des données que seule une minorité byzantine détenait.

Certifier les prix

Les validateurs sont aussi des observateurs de prix, et un bloc porte les prix contre lesquels il a été exécuté.
Validateursconsensus · mempool · sidecar oracle · noyau · stockage
Les seuls participants qui votent
Nœuds complets de validateursuivent et exécutent les blocs entérinés, sans voter
Isolation — ils absorbent lectures publiques et connexions de pairs pour que les validateurs ne soient pas exposés à l’internet ouvert
Nœuds complets publicsouverts à tous ; suivent, exécutent, servent les lectures
L’étage ouvert
Clientsinterfaces · agents · market makers · indexeurs
Ils se connectent aux nœuds complets, jamais aux validateurs. Qui veut la vue la plus complète et rapide fait tourner le sien.
Quatre étages, en partant du consensus
Pourquoi cet étage
Chaque validateur fait tourner son propre sidecar oracle, qui collecte les données des plateformes et produit un prix d’indice par instrument. Le validateur récupère ce prix, le valide — y compris sa fraîcheur par rapport à des seuils configurés —, le signe et diffuse par gossip la soumission signée aux autres validateurs, comme message du réseau de consensus. Les prix certifiés sont assemblés par epoch (époque) et par tour, puis portés dans le bloc, de sorte que les signatures qui entérinent les transactions entérinent aussi les prix contre lesquels ces transactions se règlent. Un validateur n’est éligible pour proposer un bloc que s’il peut présenter des observations de prix valides pour le tour courant. La disponibilité des prix est donc une condition préalable à la production de blocs, et non une entrée que l’exécution espère trouver.
Cela lie le prix à la transaction ; cela ne rend pas le prix correct. Le consensus certifie qu’un quorum de validateurs a soumis ces observations à ce tour. La justesse des plateformes sous-jacentes est une autre question, traitée par les règles d’agrégation de la page Oracle et encadrée par les avertissements sur les risques.

Réputation des leaders

Les leaders sont désignés tour par tour par une rotation déterministe pondérée par la mise, étendue par une heuristique de réputation sur une fenêtre glissante. Un validateur dont les propositions échouent de façon répétée — signe d’indisponibilité ou de comportement adverse — est rétrogradé dans les désignations suivantes et ses créneaux sont redistribués à des validateurs récemment réactifs, de sorte qu’un validateur indisponible n’enraye pas la progression en revendiquant la conduite de ses créneaux attribués. Comme les observations de prix conditionnent l’éligibilité à proposer, la réputation doit aussi éviter de concentrer la conduite chez les validateurs disposant de la meilleure connectivité aux données de marché. Une exigence de diversité des sources — des observations tirées de plusieurs plateformes indépendantes par instrument — ferme ce chemin.

Epochs et reconfiguration

Le temps est organisé en epochs. À l’intérieur d’un epoch, l’ensemble des validateurs et la plupart des paramètres sont constants. Aux frontières d’epoch, ils peuvent changer par une reconfiguration autorisée par la gouvernance : changements de l’ensemble des validateurs, changements de paramètres de consensus, mises à jour des paramètres de risque et actions d’urgence. Les transitions sont atomiques — chaque validateur honnête voit la même transition à la même hauteur de bloc.

Topologie du réseau

Leader
Validateurs
Chaîne
Agrégat 2f+1 pondéré par la mise
Séquencement et prix immuables
Propose un bloc — empreintes de lots et prix certifiés
Vérifient disponibilité, séquencement, prix
Vote
Certifie le tour
Entérinent
Les validateurs participent au consensus. Chacun fait tourner la pile complète : consensus, mempool, un sidecar oracle, l’exécution du noyau et le stockage. Ce sont les seuls participants qui votent. Les nœuds complets de validateur se placent directement derrière les validateurs. Ils suivent les blocs entérinés et les exécutent, mais ne votent pas. Leur rôle est l’isolation — ils absorbent le trafic de lecture public et les connexions de pairs pour que les validateurs ne soient pas directement exposés à l’internet ouvert. Les nœuds complets publics forment l’étage ouvert. N’importe qui peut en faire tourner un. Ils suivent la chaîne, exécutent les blocs entérinés, servent les lectures et alimentent les systèmes en aval. Les clients — interfaces, agents de trading, market makers, indexeurs — se connectent à des nœuds complets plutôt qu’à des validateurs. Un client qui a besoin de la vue la plus complète et de la latence la plus faible fait tourner son propre nœud complet plutôt que de dépendre de celui d’un autre. Les nœuds qui rejoignent le réseau ne rejouent pas depuis la genèse par défaut ; voir synchronisation d’état pour la façon dont un nouveau nœud rattrape son retard.

Pour aller plus loin

Mempool

Ce qui atteint le consensus, dans quelle séquence, et ce qui est écarté.

IntentionKernel

Ce qu’il advient d’un bloc une fois son séquencement et ses prix entérinés.

Oracle

Comment un prix d’indice est produit avant qu’un validateur ne le signe.

Faire tourner un nœud

Pourquoi l’ensemble des validateurs est fermé, et comment demander à le rejoindre.