Les Blockchain introduisent un nouvel eldorado de possibilités pour les individus et les entreprises afin de s’échanger de la valeur avec transparence, sécurité et confiance entre eux. Malgré ces avantages indéniables, un énorme défaut subsiste et qui réfrenne toute adoption des grandes BlockChain publiques par le monde de l’industrie et de la finance: la scalabilité.
Comment voulez-vous concurrencer VISA, qui effectue en moyenne plusieurs milliers de transactions sécurisées par seconde et qui est mondialement adopté alors que qu’Ethereum et BitCoin n’en sont qu’à une dizaine de transactions par seconde en moyenne. La scalabilité reste le nerf de la guerre dans un monde où la performance rime avec qualité de service et rapidité de transaction.
Le monde de la BlockChain est en pleine mutation et plusieurs solutions viennent résoudre de façon définitive l’actuel problème de scalabilité.
Le consensus trop coûteux en temps
Le frein principal lors de l’éxecution de l’algorithme de n’importe quelle BlockChain est celui du consensus. En effet, nous nous trouvons avec un réseau décentralisé qui nécessite la validation de la majorité des noeuds pour qu’un bloc soit validé puis ajouté dans la BlockChain. Dans les BlockChain comme Ethereum ou BitCoin, le consensus impose une validation de chaque noeud de la BlockChain avant la validation du bloc. Cette manoeuvre assure une décentralisation totale, mais ralentit en conséquence grandement la vitesse de validation.
Donc lorsque vous venez expliquer à des entreprises qui ont besoin d’une optimalité dans le nombre de transactions que l’on ne peut aller au-delà d’une dizaine de transactions par seconde avec des crypto-actifs (tandis que Visa peut dépasser les 2000 transactions sécurisées par seconde dans le monde), la BlockChain ne peut donc pas rivaliser en termes de performance et ne peut être adoptée dans ces conditions.
De nouveaux modes de validation pour optimiser la scalabilité
Afin d’atteindre les performances des autres moyens de paiement traditionnels comme les sociétés de carte de crédit, plusieurs solutions furent proposées afin de rattraper ce retard.
Changer de mode de consensus
Le proof-of-Work étant trop lent et très friand en ressources électriques, d’autres méthodes de consensus furent proposées.
- Le Proof-of-Stake choisit un mineur dans le réseau via une pondération de plusieurs critères : la richesse en crypto-monnaies, la durée de détention des jetons, etc. Ceci incite les noeuds à détenir des crypto-monnaies et de les garder pour avoir une chance de miner le prochain bloc. La BlockChain Ethereum compte passer en Proof-of-Stake au lieu de Proof-of-Work.
- Delegated Proof-of-Stake est une extension du Proof-of-Stake, ou plutôt une modification de sa sélection de mineur, car il y a le risque qu’un mineur fortuné du réseau ait un pouvoir considérable sur les autres, brisant la décentralisation effective du réseau. Afin de combler cette lacune, le delegated Proof-of-Stake enlève la pondération via la quantité de crypto-actifs détenus par les noeuds et établit un système de vote pour élire le prochain mineur du bloc. Chaque noeud élit ce qu’on appelle un témoin, qui aura pour rôle de miner un certain bloc. La BlockChain EOS utilise ce type de consensus, et se vante d’être ainsi 100000 fois plus rapide qu’Ethreum.
- Proof-of-Elapsed-Time utilise un facteur aléatoire dans le processus de sélection du prochain mineur. Chaque noeud est muni d’un temps d’attente qui lui est attribué de manière aléatoire. Tous les noeuds du réseau seront endormis pendant un certain temps d’attente et c’est le premier noeud qui se réveille, donc celui qui avait le temps d’attente le plus court, qui mine le prochain bloc. Ce processus a été développé par l’entreprise Intel pour résoudre le problème du « random leader election ».
Ces méthodes de consensus ont pour avantage d’être globalement plus rapides car tous les noeuds ne sont pas nécessaires pour miner un nouveau bloc. On utilise notamment l’aléatoire pour choisir les noeuds qui mineront les blocs, ce qui ne nécessite pas une recherche computationnelle énorme par rapport au Proof-of-Work du Bitcoin largement décrié. Mais elles réduisent de façon considérable la décentralisation. Ce problème peut être résumé comme « le triangle impossible » de la BlockChain : décentralisation, securité et scalabilité. A savoir, pour un niveau de sécurité donné, si vous voulez augmenter la scalabilité, il faudra diminuer la décentralisation et vous ne pourrez jamais avoir ces trois paramètres optimisés simultanément [de façon analogue à l’énoncé du théorème CAP concernant les systèmes distribués (consistency (C), availability (A), et partition tolerance (P))].
Les systèmes « off-chain »
Afin d’optimiser la scalabilité au sein de la BlockChain, on effectue ce qu’on appelle du calcul « off-chain » pour alléger le travail effectué au sein de la BlockChain. Off-chain signifie littéralement hors de la chaîne, mais pas non plus déconnecté, nous allons voir des exemples de frameworks qui travaillent off-chain.
Lightning Network
Jusqu’au déploiement du Lightning Network début 2018, il n’était possible d’envoyer des bitcoins qu’en passant par la BlockChain. Si le transfert direct par BlockChain demeure aujourd’hui encore la voie la plus sûre, c’est aussi la plus lente et la plus coûteuse.
Le Lightning Network entend changer cela en permettant des échanges de garantis par la possibilité de faire des chèques en bitcoins. Ces chèques peuvent être encaissés sur la BlockChain Bitcoin avec une garantie de provision, et on pourrait ainsi les assimiler à des chèques de banque pour lesquels on a la certitude que ce ne sont pas des chèques en bois. Une transaction Lightning n’a en effet pas besoin d’être inscrite sur la Blockchain du Bitcoin pour garantir son existence, sa validité et la solvabilité de son émetteur. Les frais de transaction et le temps d’exécution sont alors réduits au minimum. Ainsi, tous les échanges se font sur un réseau externe et on peut donc accumuler un grand nombre de transactions.
Le principe de fonctionnement de Lightning c’est qu’on va ouvrir et fermer des canaux de paiement avec des transactions Bitcoin – qui sont donc inscrites dans la blockchain – et tout ce qui se passe entre l’ouverture et la fermeture se déroule off-chain, c’est-à-dire qu’on met à jour des transactions Bitcoin valides et publiables, mais on ne les publie pas. Cela permet d’avoir un flux de transaction quasiment illimité parce qu’on a plus de recherche de consensus global.
Plasma
Solution développée par Vitalik Buterin et Joseh Poon (le créateur du Lightning Network justement), Plasma est une solution off-chain d’Ethereum qui permet d’optimiser la scalabilité du réseau Ethereum tout en se basant sur la BlockChain Ethereum pour valider toutes les transactions finales. Pour cela, on forme ce qu’on appelle une « child-chain » reliée à la chaîne Ethereum principale. Cette chaîne enfant héritera d’un consensus particulier qui permettra un nombre important de transactions (plusieurs centaines voir milliers d’après Vitalik Buterin) et une fois les transations effectuées, elles sont finalement validées sur la chaine principale via le plasma root.
Raiden
Un autre projet ayant vu le jour pour optimiser la scalabilité du réseau ethereum est le raiden network.
L’idée est de permettre des échanges de crypto-monnaies de pair à pair sans systématiquement passer par la BlockChain. Les deux personnes souhaitant échanger des fonds ouvrent un canal, soit en direct, soit en passant par d’autres canaux ouverts entre d’autres acteurs du réseau. L’empreinte (hash) de la transaction transite ainsi jusqu’à la bonne personne qui est la seule à détenir la clé de déchiffrement permettant de valider l’affaire.
Les canaux sont ouverts pour un temps limité. Lorsqu’un canal se ferme, les soldes des comptes des personnes qu’il reliait sont inscrits dans la blockchain principale. Ainsi, si deux personnes ont des échanges réguliers, une seule écriture dans la blockchain pourra en réalité contenir le résultat de plusieurs transactions afin d’alléger la chaîne principale.
Autres solutions pour l’optimisation
Il existe d’autres projets et techniques qui permettent d’optimiser encore la scalabilité. Nous en avons cité certains seulement, mais il existe également Counteractual, TrueBit et la méthode de sharding qui peuvent être utilisés en même temps, et permettront notamment à la BlockChain Ethereum de dépasser en nombre de transactions par seconde les géants du transfert d’argent et de dépasser le million de transactions par seconde, d’après les mots de l’équipe Ethereum. Le réseau BlockChain sera construit sur plusieurs couches intéragissant les unes avec les autres comme ci-dessous :
0 commentaire