// TECHNOLOGIE

Finalité : quand une transaction est-elle vraiment finie ?

6 min de lecturenijitech

« Confirmée » et « irréversible » ne sont pas la même chose. Pour un système qui encaisse des paiements, cet écart décide du nombre de secondes d’attente.

Article complet

La première question posée quand on construit un système qui encaisse sur une blockchain est généralement : combien de temps une transaction met-elle à se confirmer ? Ce n’est pas la bonne question. La bonne question est combien de temps elle met à devenir irréversible.

L’écart entre les deux, c’est la différence entre encaisser un café et encaisser une voiture.

La confirmation n’est pas la finalité

Une transaction qui entre dans un bloc est une confirmation. Mais sur certaines chaînes ce bloc peut perdre sa validité si une chaîne plus longue apparaît sur le réseau, et les transactions qu’il contient reviennent en arrière. La première confirmation n’est donc pas une garantie mais un énoncé de probabilité.

À mesure que le temps passe et que les blocs s’empilent, la probabilité d’un retour en arrière diminue — mais en théorie elle n’atteint jamais zéro. C’est ce qu’on appelle la finalité probabiliste : « attendez assez longtemps et c’est assez sûr ».

Ce que change la finalité déterministe

Dans certains modèles de consensus un bloc est final dès qu’une majorité de validateurs l’approuve, et il ne peut pas être annulé. Attendre n’y sert à rien : soit la transaction est finale, soit elle n’a jamais eu lieu. La zone grise disparaît.

Pourquoi cela compte tant du côté paiement

Si vous remettez un bien physique ou déverrouillez un service immédiatement, vous avez accepté un paiement susceptible d’être annulé. Dans le monde des cartes on appelle cela une rétrofacturation, et les commerces gèrent ce risque depuis des années. Sur la chaîne, le risque dépend du modèle de finalité du réseau que vous avez choisi.

Questions pour la conception

  • La finalité sur ce réseau est-elle déterministe ou probabiliste ?
  • Si elle est déterministe, quel est le délai typique — des secondes ou des minutes ?
  • Si elle est probabiliste, combien de confirmations attend-on à quel montant ?
  • Que montre-t-on à l’utilisateur pendant qu’il attend ?

Le dernier point relève du produit et c’est celui qu’on saute le plus souvent. Un écran affichant « traitement en cours » sans dire combien de temps l’attente durera est une mauvaise expérience, quelle que soit la durée réelle.

La compatibilité est un axe distinct

Le modèle de finalité et l’environnement de développement sont deux choix indépendants. Un réseau peut offrir une finalité rapide et déterministe tout en étant compatible EVM, auquel cas les contrats Solidity, les portefeuilles et les outils de développement existants fonctionnent tels quels.

En pratique cela découple la décision d’architecture de l’équipe : vous choisissez le modèle de finalité qu’exige votre infrastructure, et l’équipe continue de travailler avec les outils qu’elle connaît.

En bref

Trois phrases

  • Confirmation veut dire « c’est entré dans un bloc » ; finalité veut dire « ça ne peut plus être annulé »
  • Sous finalité probabiliste, c’est le montant qui décide du temps d’attente
  • Sous finalité déterministe cette décision disparaît — la logique produit se simplifie

Produits cités dans cet article

Du glossaire : Finalité · Compatibilité EVM

← Tous les articles