Algorand, un aperçu de la technologie

Algorand est un projet créé par Silvio Micali, un informaticien italo-américain du Laboratoire d’informatique et intelligence artificielle et également professeur d’informatique au Département d’ingénierie électrique et informatique du MIT depuis 1983. Sa recherche porte sur cryptographie théorique et sécurité de l’information. Micali a été lauréat du Prix Gödel en 1993 et du prix Turing 2012. Ses travaux fondamentaux sur la cryptographie asymétrique sont un pilier du domaine. Il est de plus un des co-inventeurs de la très connue zero-knowledge proof.

Cet article est principalement une traduction en français de l’article LinkedIn du professeur Micali du 4 Avril 2019: ALGORAND’S CORE TECHNOLOGY (in a nutshell)

Nos réseaux de données sont plus rapides que jamais, et nos messages font le tour du monde en une fraction de seconde pour un coût négligeable. Bizarrement, l’argent ne transite pas aussi vite et une transaction financière peut encore prendre des jours avant d’être finalisée. Le processus est de plus très coûteux: 5.000 milliards de dollars gaspillés chaque année en frais de transaction de tous types. Avec 2,2 milliards de personnes dans le monde qui n’ont toujours pas accès aux services financiers modernes: leurs transactions sont tout simplement trop petites pour intéresser les banques.

La  blockchain est la technologie qui peut résoudre tout ça. Elle est potentiellement la clé  pour un système financier plus efficace et inclusif. En termes simples, une blockchain est un grand livre public. C’est une séquence de transactions organisée en blocs, garantissant trois propriétés fondamentales:

    1. Tout le monde peut lire chaque bloc, de sorte que les blocs deviennent des connaissances communes.
    2. Tout le monde peut écrire une transaction dans un bloc futur.
    3. Personne ne peut modifier les transactions d’un bloc ou de l’ordre des blocs.


Ainsi, plutôt que d’avoir une base de données propriétaire, gardée et gérée par une autorité centrale, typiquement une banque, nous pourrions avoir un seul grand livre public pouvant être lu par tout le monde, dans lequel tout le monde pourrait écrire, mais personne ne peut plus modifier ce qui a déjà été écrit. Avec ces propriétés, une blockchain peut permettre une économie plus rapide, moins chère, plus sûre et sans frontières .

Un trilemme apparent.

L’implémentation d’une technologie blockchain dois trouver un point d’équilibre entre trois forces opposés. On dit qu’elle est constamment sous la contrainte d’un trilemme. Essentiellement une blockchain ne peut offrir au plus deux des trois propriétés suivantes: 

  • Sécurité,  
  • Evolutivité, 
  • Décentralisation.


En effet

    • Sans décentralisation, nous nous situons dans le système financier d’aujourd’hui: exclusif et secret
    • Sans sécurité, des blocs de transactions peuvent disparaître: une personne qui a vendu ses services pourrait découvrir que le paiement reçu en échange a disparu; les dettes pourraient être effacées; et le grand livre être manipulé par des pirates à leur avantage
  • Sans évolutivité, on ne pourrait effectuer des transactions qu’avec un petit réseau, sans pouvoir participer au système financier mondial.

Sécurité, évolutivité et décentralisation sont donc des variables interdépendantes. Une blockchain qui n’est pas rapide ne peut pas évoluer, mais garantir la rapidité en augmentant les coûts n’est pas une solution: une blockchain trop coûteuse à exploiter ne peut pas évoluer. En effet, si le coût est supporté par tout le monde, peu de personnes rejoindront la blockchain. Et si le coût est limité à quelques entités, le système sera centralisé. Et tout système centralisé est intrinsèquement instable, car peu de cibles seront toujours plus faciles à attaquer que des millions de cibles.

La bonne nouvelle est que le trilemme n’est qu’une affaire du passé: Algorand affirme l’avoir résolu et construit une blockchain qui offre ces trois propriétés simultanément.

Une sentence tellement riche en conséquences que Charles Hoskinson, chef de file du projet Cardano (ADA), avait publiquement loué Algorand dans un tweet dans lequel il s’écriait  “Enfin nous avon de la véritable concurrence”.

Un des principaux besoins blockchain consiste à trouver la manière de générer de nouveaux blocs: comment sélectionner un nouveau bloc à ajouter à la chaîne alors que l’ensembles de transactions vues par les noeud pair-à-pair à l’instant T, sont différents (même si elles se chevauchent souvent de manière significative) ?

Les trois approches généralement utilisées sont

  • La PoW (preuve de travail)
  • La DPoS, preuve de participation déléguée
  • La PoS, prouve de participation par séquestre d’avoirs.

    Toutes ces approches présentent le défaut fatal suivant: l’ensemble de l’économie est à la merci d’une petite partie de l’économie.

Cette faille est fatale car elle impacte à la fois la sécurité et la décentralisation. Que le destin de l’ensemble d’une crypto soit à la merci d’une petite partie de son économie est une bombe à retardement.

Certes, si les membres décideurs se conduisent mal, ils dévaluent les actifs de la monnaie qu’ils détiennent. Toutefois, si leurs propres actifs ne représentent qu’une petite partie de l’économie totale, il peut être facile de récupérer leurs pertes, si un arbitrage vers un autre profit venait à se présenter. Cela causerait des dommages énormes à tous les autres membres qui sont non-décideurs. En règle générale donc et dans un mode idéal, aucun petit sous-ensemble d’une économie ne devrait pouvoir contrôler l’ensemble de la dite économie.

Silvio Micali nous explique comment cette faiblesse caractérise les approches dans les algorithmes de consensus antérieures, utilisés dans les autres blockchain.


Preuve de travail (PoW)

La première approche est la preuve de travail, utilisée à merveille par Nakamoto pour lancer Bitcoin et héritée de nombreuses autres blockchain. Dans cette approche les utilisateurs-mineurs s’efforcent de résoudre un casse-tête cryptographique très complexe. Le premier à résoudre le casse-tête a le droit d’ajouter le bloc suivant à la chaîne. La proof-of-work souffre de plusieurs défauts.

Premier défaut : elle n’est pas scalable, étant trop lente. Les énigmes cryptographiques de Bitcoin sont extrêmement difficiles à paramétrer afin qu’une solution ne soit trouvée toutes les 10 minutes, quel que soit le nombre de mineurs qui tentent de résoudre l’énigme. Nous pouvons comprendre cher et rapide. Cher et lent est difficile à accepter. Le monde est vaste et un bloc de transactions toutes les 10 minutes est trop juste pour assurer un service mondial.

Deuxième défaut : la preuve du travail entraîne une centralisation factuelle, la  concentration du pouvoir. Cette centralisation est une conséquence du fait que la preuve de travail est à la fois coûteuse et inutile. L’effort cumulé en calcul effectué par les mineurs—tous ceux qui essaient de résoudre les énigmes cryptographiques est extrêmement élevé. Le mineurs du Bitcoin utilise des racks et du matériel spécialisé qui consomme une énorme quantité d’électricité. Lorsqu’un mineur gagne la course et génère le nouveau bloc, les efforts de tous les autres tombent à l’eau. On calcule que coût d’une transaction unique sur la blockchain Bitcoin serait d’environ 20 dollars. Sans doute pas la voie à suivre si vous voulez utiliser la blockchain pour des transactions quotidiennes comme acheter une part de pizza ou si vous voulez offrir des services financiers aux 2,2 milliards de personnes qui ne sont actuellement pas inclus au système financier. L’utilisateur-mineur ordinaire est statistiquement perdant puisqu’il ne peut tenter de résoudre l’énigme PoW qu’avec son ordinateur maison. Qu’il gagne ou qu’il perde, il devra payer l’électricité nécessaire pour calculer. Cette quantité d’électricité n’est peut-être pas énorme, mais sa probabilité de gagner est si faible que, le fait de perdre de l’argent devient pour lui une certitude mathématique.

Seuls les mineurs professionnels, qui ont effectué les dépenses d’investissement nécessaires à l’achat de supports d’équipement minier hyper spécialisé, peuvent donc espérer réaliser des bénéfice. En conséquence, le mining se centralise au tour de peu d’acteurs qui forment une poignée de mining-pools.

Aujourd’hui, la blockchain de Bitcoin est contrôlée par trois pools miniers et celle d’Ethereum par deux. S’ils le décident, ou s’ils sont corrompus, ils peuvent réécrire la base de données: ils peuvent effacer des blocs ou modifier leur ordre. La proof-of-Work a transformé ce qui devait être un système décentralisé en un système dans les faits tout à fait centralisé.

Troisième défaut : la preuve de travail n’est pas sécurisée. Comme nous l’avons dit, toute blockchain centralisée, que ce soit par sa conception ou de facto, n’est pas sécurisée. Cependant, la preuve de travail comporte des vulnérabilités supplémentaires et est particulièrement vulnérable aux attaques du réseau. Une blockchain est un protocole de communication, exécuté sur le réseau de communication sous-jacent. Un pirate peut donc attaquer soit le protocole, par exemple en envoyant des messages différents de ceux prescrits, soit le réseau de communication lui-même, en interférant avec les routeurs, les câbles… bref le sous-jacent.

L’analyse de la sécurité d’une blockchain se concentre généralement uniquement sur les attaques de protocole et néglige les attaques de réseau qui peuvent être létales, en particulier dans un contexte PoW. Par exemple, un pirate capable de partitionner le réseau de communication pendant une heure ou deux pourrait dépenser deux fois ses avoirs en toute impunité.

Lors d’une attaque de partitionnement, un pirate empêche les messages envoyés par les utilisateurs appartenant à un ensemble d’utilisateurs A d’atteindre les utilisateurs dans un ensemble séparé B, et inversement. Le partitionnement de réseau n’a pas attiré beaucoup d’attention, car il est considéré trop coûteux à exercer. Mais le coût d’une attaque réseau peut être justifié si que les gains deviennent suffisamment élevés. Une économie véritablement sans frontières peut être évaluée en milliards de dollars. Et un pirate peut être disposé à investir des millions de dollars s’il risque de gagner illicitement des milliards de dollars.

Quatrième défaut : Les forks. Un autre inconvénient de la preuve de travail est l’existence inévitable de ramifications de la chaine. Chaque fois que deux utilisateurs ou plus résolvent les énigmes cryptographiques à quelques secondes d’intervalle, la chaîne bifurque, car les utilisateurs peuvent maintenant voir plusieurs candidats (parfaitement légitimes) pour le bloc suivant. Une fourche peut continuer d’exister pendant un certain temps et toutes ses branches peuvent même être allongées par l’ajout de nouveaux blocs. Tôt ou tard toutefois, toutes les branches sauf une mourront et tous les blocs des branches mortes disparaîtront à jamais.

Ces forks sont source d’incertitude et de retard. Si un paiement qui vous est destiné apparaît dans le dernier bloc du Bitcoin, vous ne pouvez pas encore considérer cet argent à vous et donc expédier la marchandise. En effet, certaines branches peuvent surmonter la chaîne que vous voyez à l’instant T et votre bloc peut se retrouver dans une branche morte et disparaître. Avant de considérer que vous êtes payé, vous devez donc attendre qu’une séquence de blocs soit ajoutée au vôtre, afin de minimiser les risques d’apparition d’une fork et de retrouver votre paiement dans une future branche morte.

Combien de temps devriez-vous attendre? Certaines personnes recommandent d’ajouter six blocs après le vôtre pour être sûr que votre bloc restera dans la chaîne. D’autres recommandent une attente encore plus longue, si le paiement qui vous est versé est considérable. Ainsi, plutôt que d’attendre dix minutes, pour avoir une confiance raisonnable dans la finalité d’une transaction, vous devez en théorie attendre des heures.

On pourrait imaginer de simplifier les énigmes cryptographiques afin d’accélérer le processus, en permettant par exemple de trouver une solution toutes les minutes plutôt que toutes les 10 minutes. Cependant, ce faisant, la probabilité d’obtenir deux solutions à quelques secondes d’intervalle augmente considérablement. Le système peut gérer une fork occasionnel, mais ne peut pas pas avec des fourches très fréquentes.

Les dépenses, la lenteur et l’incertitude sont certes des défauts majeurs de l’approche de la preuve de travail, mais ils sont encore mineurs en comparaison de son défaut le plus grand.

Rappelons le défaut fatal qu’on a déjà illustré: toute l’économie est à la merci d’une petite partie de l’économie.

En preuve de travail, cette petite partie de l’économie est celle des mineurs. Etant donné que les mineurs ne possèdent qu’une petite fraction de l’argent dans une blockchain pour preuve de travail, la chaîne n’est pas sécurisée.

Preuve de participation déléguée (dPoS)

Une approche différente est la preuve de participation déléguée. C’est une idée très simple. La communauté autorise des utilisateurs spéciaux, les délégués , à choisir le prochain bloc, au moins pour un temps. (Par exemple, dans EOS, le nombre de délégués est 21.)

Les délégués sont donc centralisés dès le départ. Il est aisé de choisir des délégués honnêtes pour le démarrage. Cependant, compter sur le fait que les délégués restent honnêtes pendant une longue période est risqué.

Une fois encore, nous constatons que toute l’économie est à la merci d’une petite partie de l’économie. En effet, dans une blockchain dPoS, les délégués possèdent généralement une infime fraction de l’argent total du système, et cette dernière est entièrement sécurisée si et seulement si la majorité des délégués est honnête.

Problèmes de sécurité supplémentaires. Même en supposant qu’il existe une garantie absolue que tous les délégués resteront honnêtes pour toujours, ils peuvent facilement être attaqués. En particulier, ils peuvent être neutralisés par une attaque par déni de service (DoS). Dans une telle attaque, un adversaire bombarde n’importe quel utilisateur de son choix de zillions de messages indésirables, provoquant un débordement du tampon de cet utilisateur malheureux. Si un délégué était bombardé de la sorte, il lui serait dans l’impossibilité de s’acquitter de sa tâche, à savoir de rassembler des transactions nouvelles et valables dans le bloc suivant. La blockchain serait alors paralysée.

Les attaques par déni de service sont assez économiques et peuvent être montées instantanément non seulement contre 21 personnes, mais même contre des milliers de noeuds. Étant donné que les délégués sont par définition connus, même s’ils ne restaient au commandes que pendant une courte période, une heure ou une minute, un pirate déterminé pourrait faire tomber tous les délégués par une attaque rapide de type DoS.

Preuve de participation par sequestre d’avoirs (PoS)

Bonded PoS permet à 20 utilisateurs, 200 utilisateurs, ceux qui le souhaitent, de mettre de l’argent sur la table – une obligation – où ils ne peuvent plus le toucher. Ce sont les utilisateurs qui sélectionnent le prochain bloc au nom de nous tous. S’ils se conduisent mal, leur argent est confisqué.

Est-ce que cette approche fonctionne?  

Permettez-moi de poser une  simple question : quelle part de votre revenu seriez vous prêt à mettre sous séquestre ? La réponse est toujours une très petite quantité. Donc la PoS, non seulement permet, mais rend facile pour des grands voleurs avec des grands moyens, d’allouer une quantité disproportionnée d’argent sur la table dans le seul but de contrôler la blockchain.

CE n’est pas grave, me direz vous: s’ils se conduisent mal, ils perdent leur argent sous séqueste. Cependant, une blockchain véritablement décentralisée, évolutive et sécurisée devrait pouvoir sécuriser des milliards de dollars d’actifs. Et en se comportant mal, un utilisateur malveillant risque ainsi de gagner quelques milliards de dollars. Croyez-vous qu’il craindrait de se voir confisquer quelques millions de dollars si le bénéfice est supérieur?  Cela serait pour lui juste le prix à payer pour faire des affaires. Et ça pourrait être un petit prix.

Une fois de plus, dans la PoS aussi, nous avons le même défaut fatal: toute l’économie est à la merci d’une petite partie de l’économie.

En résumé, les approches antérieures présentent plusieurs inconvénients. Nous avons besoin d’un meilleur design.

Un nouveau type consensus: la pure PoS

Algorand propose un nouvel algorithme de consensus: la preuve pure de participation.  La logique est simple: relier la sécurité de l’ensemble de l’économie à l’honnêteté de la majorité de l’économie et empêche un petit sous-ensemble de l’économie de contrôler le destin de l’ensemble de l’économie.

Essentiellement, un pur PoS ne cherche pas à garder les utilisateurs honnêtes en faisant valoir la  crainte d’imposer des amendes. Cela rend très difficile de tricher avec une minorité de l’argent mais facile de tricher avec des grosses sommes d’argent.

Dans Algorand, au contraire aucune somme argent n’est jamais mise sous séquestre. Tout l’argent est toujours là où il devrait être: dans votre portefeuille, au bout de vos doigts (ou plutôt de vos clés privées), prêt à être dépensé, ou dans les divers instruments financiers que la blockchain d’Algorand vous offre. Lorsque on analyse la totalité de l’argent du système, où qu’il se trouve, on comprend que le système est forcement sécurisé puisque la majeure partie de cet argent est reste entre des bonnes mains.

Comme nous l’avons dit, il est impossible pour les propriétaires d’une petite fraction de l’argent de nuire à l’ensemble du système, et il serait ridicule que les propriétaires de la majeure partie de l’argent se comportent mal de manière à dévaluer leurs propres avoirs.

Par exemple, dans les PoS et dPoS, quelques utilisateurs peuvent empêcher d’autres utilisateurs d’effectuer des transactions. Dans Algorand, seuls les propriétaires de la majorité des fonds pourraient empêcher d’autres utilisateurs d’effectuer des transactions. Mais s’ils le faisaient, la réputation de la monnaie serait grandement compromise, la monnaie ne serait plus universellement acceptée et son pouvoir d’achat serait grandement diminué. Pas un bon résultat pour les propriétaires de la majorité de l’argent.

Mécanique du pur PoS.  

Voyons maintenant comment Algorand choisit le bloc suivant. Rappelons nous du trilemme? Nous voulons que la génération de blocs soit à la fois évolutive, sécurisée et décentralisée.

À un niveau très élevé, dans Algorand, un nouveau bloc est construit en deux phases.

    • Dans la première phase, un seul jeton est sélectionné de manière aléatoire et son propriétaire est l’utilisateur qui propose le bloc suivant.
  • Dans la seconde phase, 1000 jetons sont sélectionnés parmi tous les jetons actuellement présents dans le système. Les propriétaires de ces 1000 jetons sont sélectionnés pour faire partie d’un comité de phase 2, qui approuve le bloc proposé par le premier utilisateur.

En conséquence, certains membres du comité peuvent être choisis deux fois ou plus généralement k fois, auquel cas, ce membre disposera de k voix au comité pour approuver le prochain bloc.

Pourquoi la deuxième phase est-elle nécessaire?

Dans toutes les sociétés, et les blockchains ne font pas exception à la règle, il reste toujours un petit pourcentage de mauvais acteurs. disons 1 pour cent. Peut-être 2 pour cent. Si on a la malchance de vivre dans une société très dangereuse, on pourrait voir jusqu’à 10% de mauvais acteurs, peut-être même 20%! Mais dans aucune société, les mauvais acteurs ne seront majoritaires, sinon, il n’y aurait pas de société. Une société existe dans la mesure où la majorité de ses membres suivent les règles prescrites.

Supposons maintenant que 10% des jetons à Algorand appartiennent à des personnes malhonnêtes. Cela voudrait dire que, une fois sur dix, l’utilisateur sélectionné en phase 1 pour proposer le prochain bloc serait un mauvais acteur. En conséquence, il pourrait indiquer à certains utilisateurs un bloc X et à d’autres utilisateurs un autre bloc Y, etc… créant ainsi un désaccord qui l’arrange quant à ce qui va constituer la blockchain dans le futur immédiat.

La phase 2 élimine ce problème. En effet, si vous sélectionnez au hasard 1000 jetons quand au plus 10% des jetons sont entre des mains malhonnêtes, la probabilité que la majorité des pièces sélectionnées appartiennent à de mauvais acteurs, c’est-à-dire la probabilité que la majorité des votes du comité soit exprimée par les mauvais acteurs est si faible qu’elle devient virtuellement négligeable.

Supposons une personne qui n’a pas été sélectionnée pour proposer un bloc, ni sélectionnée pour faire partie du comité chargé qui doit approuver le bloc proposé. Indépendamment de votre participation vous voyez qu’un bloc B donné a été approuvé, par exemple, par 700 voix du comité. D’un point de vue statistique cela suffit largement pour vous convaincre que B est en effet le bloc suivant.

Une question clé. À cette description de haut niveau, plusieurs questions se posent naturellement. Commençons par le plus évident: qui choisit le comité au hasard ?

Supposons que je vous dise que c’est moi seul qui le fais tout le temps. Vous me rétorqueriez sans doute «Mais c’est le système le plus centralisé à ce jour et vous en êtes au centre!». Supposons que je vous dise que tous les utilisateurs discutent jusqu’à ce qu’ils s’accordent sur un millier de membres du comité qui sont d’accordent ensuite sur le bloc. Là vous rétorqueriez que, l’humanité étant ce qu’elle est, une vie entière ne suffirait pas à sélectionner les mille membres du comité dont nous avons besoin.

Algorand adopte une approche nouvelle : les membres du comité se sélectionnent eux-mêmes.  Vous avez le droit de vous dire « Quoi? C’est une idée terrible! Parce que si je suis un mauvais acteur, je vais me choisir comme membre de ce comité. Et la prochaine. Et celle qui a suivi… »

Mais pas si vite.

Pour faire partie du comité, vous devez avant gagner une sorte de loterie individuelle, cryptographiquement équitable, que vous lancez de manière isolée, c’est-à-dire sans parler à personne, dans l’intimité de votre ordinateur. Et puisque la loterie est cryptographiquement neutre, vous ne pouvez pas modifier les chances d’être sélectionné. Même un État-nation disposant d’énormes ressources de calcul ne pourrait augmenter d’un pourcent la probabilité d’être sélectionné.

Tirer 1 000 jetons aléatoires parmi, par exemple, 10 milliards de jetons, chaque jeton se fait avec avec une probabilité 1 sur 10 millions. Ainsi, dès qu’un utilisateur voit qu’un bloc est proposé, il se pose la question suivante: est-ce que je vais être membre du comité sélectionné pour approuver ce bloc? Si oui, combien de voix vais-je avoir?

Pour répondre à ces questions, elle lance la loterie cryptographique sur son ordinateur pour chacun des tokens Algorand qu’il possède. Une fois la loterie lancée, un des deux cas se produit.

  1. Soit aucun de ses jetons ne gagne à la loterie, auquel cas quelle qu’elle soit l’opinion de l’utilisateur sur le bloc, elle sera ignorée.
  2. K > 1 de ses jetons gagnent à la loterie. Dans ce cas, l’utilisateur obtient un ticket gagnant, à savoir une mini certificat digital à distribuer pour que tout le monde puisse rapidement vérifier qu’il dispose bien k voix au comité.

Dans ce dernier cas, l’utilisateur est momentanément élevé au rang de validateur  et doit propager à travers le réseau

  1. Le certificat gagnant prouvant qu’il dispose de k voix
  2. Son opinion sur le bloc.

Résoudre le trilemme . Permettez-moi de dire que cette approche esquissée est finalement (!) simultanément évolutive, sécurisée et décentralisée.

A. Evolutivité.

Combien de temps faut-il pour qu’un utilisateur gère sa propre loterie? Environ une microseconde, peu importe le nombre de jetons dont elle dispose. C’est vraiment super rapide. (En outre, toutes les loteries sont exécutées indépendamment les unes des autres, de sorte qu’aucun utilisateur ne doit attendre que les autres utilisateurs aient fini de gérer leurs loteries.)

Une fois sélectionné, chaque membre propage sur le réseau un message unique, court et calculé immédiatement. Ainsi, quel que soit le nombre d’utilisateurs présents dans le système, le nombre maximal de messages à propager est de 1 000 messages courts. Est-ce évolutif? Oui!

B. Sécurité.

Maintenant nous arrivons à la sécurité. Supposons que je suis un adversaire très puissant, capable de corrompre les utilisateurs très rapidement, à tout moment. Clairement, j’aimerais beaucoup corrompre les membres du comité, mais j’ai un problème: je ne sais pas qui ils sont.

En effet, les membres du comité sont sélectionnés par une loterie individuelle secrète, cryptographiquement juste. Ainsi, ils sont les seuls à savoir qui ils sont, jusqu’au moment où ils propagent à travers le réseau leurs tickets gagnants et leurs opinions sur le bloc. C’est seulement à ce moment-là que je pourrais savoir qui sont les membres du comité et, étant donné mes super pouvoirs, je peux immédiatement corrompre l’ensemble du comité. Mais alors quoi? Il est trop tard pour les corrompre. Quoi que les membres du comité aient à dire, ils l’ont déjà dit, et leurs tickets gagnants et leurs opinions positives ou négatives sur le bloc se propagent de manière virale dans tout le réseau. Je n’ai pas plus le pouvoir de remettre leurs messages dans la bouteille que le gouvernement a le pouvoir de remettre dans la bouteille les messages transmis de manière virale par WikiLeaks.

En d’autres termes, l’approche d’Algorand est sûre, car au préalable, un adversaire ne sait pas qui corrompre et, au moment où il le sait, la corruption est devenue inutile.

Cela contraste avec avoir un comité fixe de 1000 membres. Comme indiqué précédemment, même si le comité restait au pouvoir pendant une minute, il serait vulnérable à une attaque par déni de service. Si le comité restait au pouvoir beaucoup plus longtemps, disons une semaine, les membres pourraient même être corrompus dans le monde physique par des moyens traditionnels tels que des pots-de-vin. Cependant, dans le cas d’Algorand, on ne saurait pas contre qui lancer une attaque par déni de service et une fois que le comité s’est prononcé, l’attaque par déni de service est inutile.

C. Décentralisée.

Nous arrivons enfin à la décentralisation. Y at-il quelques utilisateurs en charge de choisir le prochain bloc? Non il n’y en a pas. Il n’existe pas non plus de comité permanent, composé de 1 000 membres, chargé d’approuver le blocage. Cette fois, un comité a été sélectionné au hasard (et secrètement). La prochaine fois, un autre comité sera sélectionné au hasard (et secrètement). Tout le monde a la chance de participer à la génération d’un nouveau bloc.

***

Pas de fork dans Algorand (ou presque)

Un autre avantage de la technologie d’Algorand est que sa chaîne ne se divise (fork) virtuellement jamais et la création d’un bloc peut, en pratique, être considérée non-probablistique. Puisque un seul bloc peut atteindre le seuil de votes requis dans un comité, toutes les transactions sont finales, c’est à dire deterministiques, ainsi que évidemment les bloc qui les entourent. Une fois qu’un bloc apparaît, on a la garantie qu’il fera partie de la chaîne finale: cette information est toujours implicite et unique. Donc si le nouveau bloc contient un paiement en faveur d’un commerçant, vous pouvez instantanément considérer la facture réglée définitivement et envoyer de suite la marchandise.

Le monde financier a déjà des risques propres. Aucun besoin de le charger d’une incertitude supplémentaire quant à la disparition d’un bloc, c’est à dire d’une partie de son livre comptable. À propos, quand le professeur Micali dit que la chaîne d’Algorand ne fork jamais, il ment un tout petit peu. En effet, des forks peuvent se produire même dans Algorand mais ils sont extrêmement rares. La probabilité de bifurquer dans Algorand est, par définition, de 10-¹⁸. Cette valeur pourtant peu explicite coïncide avec une autre probabilité en nature. Les physiciens nous disent que 10-¹⁸ est le nombre de secondes écoulées depuis le Big Bang. En d’autres termes, même en produisant un bloc à la seconde, ce qui au passage très proche de la vitesse maximale d’une blockchain, vous verrez peut-être un fork, mais pour cela vous devrez attendre statistiquement la durée de vie de l’univers.

***

En tant que plate-forme décentralisée, publique et sans autorisation prenant en charge l’échelle, la participation ouverte et la finalité des transactions pour des milliards d’utilisateurs, Algorand permettra aux entreprises de créer des applications de manière évolutive, sécurisée et fiable.

***

Cet article a été publié le 16 avril 2019. Algorand a annoncé ce jour même  l’ouverture au grand public de son réseau TestNet, après une période alpha au près de centaines de participants volontaires. La société invite désormais toutes les entreprises, développeurs et utilisateurs à expérimenter son protocole via le nouveau TestNet.

«L’ouverture de TestNet au public est une étape majeure de notre cheminement vers la publication de la technologie open source. Aujourd’hui marque la dernière étape de notre mission globale: permettre à la communauté plus large d’Algorand de collaborer, d’innover et de contribuer à l’évolution de notre plate-forme de blockchain publique et sans autorisation.»
[Steve Kokinos, PDG d’Algorand]

Le lancement  du testnet suit de près celui des ressources de développement qui ne cesse de s’étendre. Des kits de développement logiciel (SDK) ont récemment été publiés en Go , JavaScript et Java. Algorand fournit des API REST pour communiquer avec les nœud actifs éventuellement à partir d’un langage pas encore couvert par les SDK.