
La finalité d'une transaction blockchain représente le moment où celle-ci est irréversible. Elle est alors inscrite de manière immuable et permanente sur la blockchain. C'est un algorithme de consensus qui détermine la finalité des transactions d'un réseau blockchain.
Le concept de finalité est crucial, car il détermine la confiance qu'un utilisateur peut accorder à un réseau de paiement blockchain. Il doit en effet être certain que ses transactions sont sécurisées, immuables et incorruptibles.
On distingue deux grandes catégories :
- Finalité instantanée (instant finality) lorsqu'une transaction finalisée dès l'ajout du bloc la contenant à la chaîne ;
- Finalité délayée (delayed finality) lorsque la finalisation intervient après un certain délai.
La finalité des transactions, un concept multifacettes
Chaque blockchain a ses propres règles selon lesquelles les transactions sont validées et inscrites dans le registre. Une fois qu'un bloc de transactions fait consensus, il est ajouté à la chaîne. Cela n'implique pas nécessairement que les transactions qu'il contient sont finalisées. En effet, la finalité est établie lorsqu'il est théoriquement impossible de modifier la chaîne, qu'il s'agisse :
- D'un fork ;
- D'une réorganisation ;
- D'une attaque ou d'un bug.
Chaque blockchain a donc également sa propre définition de la finalité. Comme pour une sculpture d'argile (ou un bloc de ciment), il faut attendre que la matière soit parfaitement sèche pour être sûr qu'elle gardera sa forme. Cette analogie a ses limites, car les transactions blockchain sont réellement inaltérables une fois finalisées.
Dans le cas des blockchain complexes, par exemple sous-jacentes à une plateforme de smart contracts telle qu'Ethereum, la notion de finalité va au-delà de la simple transaction. Elle concerne l'état général du système. Il faut être sûr que toutes les transactions sont valides, immuables, que le code des contrats est à jour, et que toutes les variables d'état stockées sur les nœuds font consensus.
On peut donc finaliser une transaction, ou l'état d'un réseau, grâce à diverses méthodes.
Finalité probabiliste
La finalité probabiliste concerne principalement les blockchains fonctionnant en preuve de travail. Avec ce mécanisme de consensus, la garantie d'immutabilité de la chaîne se renforce au fur et à mesurer que de nouveaux blocs y sont ajoutés. Pour comprendre, il faut rappeler plusieurs points :
- Un protocole en PoW considère qu'en cas de fork, la chaîne présentant le plus de preuve de travail cumulée est valide ;
- Pour réécrire une partie de la chaîne (une série de blocs) il faut donc proposer une chaîne présentant une preuve de travail plus importante ;
- Il faut une puissance de calcul considérable pour réaliser cela. On parle d'attaque 51 %, car il faut théoriquement plus de la moitié de la puissance de calcul totale du réseau pour cumuler plus de preuve de travail.
Ainsi, plus le nombre de blocs successifs ajoutés au bloc qu'un attaquant souhaite modifier est élevé, plus sa probabilité de réussite est faible. En d'autre termes, la probabilité d'une modification de la chaîne diminue avec le nombre de blocs suivant la partie à modifier. Sur le réseau Bitcoin, on considère cette probabilité nulle après 6 blocs. C'est pour cela qu'on considère qu'une transaction est finalisée (confirmée) après 6 blocs.
La finalité probabiliste n'est donc pas une finalité instantanée mais délayée.
Finalité déterministe
La finalité déterministe est un type de finalité instantanée. C'est le cas des algorithmes de consensus dit BFT (Byzantine fault tolerant) comme XRP, Tendermint ou Algorand. Une fois que les nœuds du réseau font consensus sur un bloc, il est finalisé dans le registre, et ne pourra jamais être modifié par quiconque.
Finalité économique
La finalité économique concerne les réseau en preuve d'enjeu (proof of stake). Elle est basée sur les coûts financiers d'une attaque de la chaîne. Avec le PoS, les validateurs verrouillent des fonds (le stake). Ils perdent leurs fonds en cas d'attaque, ainsi, c'est le risque financier qui assure la sécurité du réseau. Le bloc est alors finalisé lorsqu'une certaine proportion des validateurs ont établi un consensus à un bloc précis, appelé checkpoint. Lorsque c'est le cas, le bloc checkpoint et tous les précédents sont finalisés. Tout validateur qui tenterait de réorganiser la chaîne subit une perte financière colossale.
Dans le cas de la finalité économique, comme pour la finalité probabiliste, il d'agit de finalité délayée (delayed finality). La fréquence des checkpoints est variable selon les systèmes.
Sécurité et limites
Chaque type de finalité a son modèle de sécurité, mais aucun n'est exempt de vecteurs d'attaques. De même, ils présentent tous des limites.
Dans le cas de la finalité probabiliste de la preuve de travail, la sécurité du système se renforce avec le temps (au fur et à mesure que l'on ajoute de blocs à la chaîne). Elle a donc un premier défaut : elle est plus lente que les autres méthodes. Sur Bitcoin, 6 confirmations prennent en moyenne une heure : on peut donc considérer qu'il faut une heure pour qu'une transaction soit finalisée.
La finalité déterministe est une réponse à ces problèmes de lenteur, cependant, pour être fiable, le réseau doit :
- Bénéficier d'une synchronisation parfaite entre les nœuds ;
- Etre résistant à une éventuelle collusion des validateurs ;
- Dépendre d'un mécanisme de gouvernance solide (il faut pouvoir facilement et rapidement empêcher des acteurs malicieux de nuire au système) ;
- Présenter une scalabilité satisfaisante ,pour affronter les pics de trafic.
Les challenges à venir
Il n'y a donc pas de mécanisme de finalisation idéal dans l'univers des blockchains. La finalité a fait l'objet de recherches intensives. Le graal de la finalité serait évidemment une méthode instantanée, en un bloc, ultra-sécurisée et à la latence très faible.
Dans le cas des couches secondaires, la finalité est un défi. En effet, de nombreuses solutions, comme certains types de rollups, souffrent de long délais de finalisation, allant jusqu'à plusieurs jours.