Introduction
L’évolutivité fait généralement référence à la capacité d’un système à se développer pour répondre à une demande croissante. En informatique, vous pouvez améliorer les performances de votre machine en mettant à niveau son matériel afin qu’elle puisse effectuer plus rapidement certaines tâches. Lorsque nous parlons d’évolutivité dans les blockchains, nous faisons référence à l’augmentation de leur capacité à gérer davantage de transactions.
Les protocoles comme Bitcoin ont de nombreux atouts, mais l’évolutivité n’en fait pas partie. Si Bitcoin était exécuté dans une base de données centralisée, il serait relativement facile pour un administrateur d’augmenter la vitesse et le débit. Mais les propositions de valeur de Bitcoin (c’est-à-dire la résistance à la censure) exigent que de nombreux participants synchronisent une copie de la blockchain.
Le problème de l’évolutivité de la blockchain
L’exécution d’un nœud Bitcoin est relativement bon marché et même des appareils simples peuvent le faire. Mais comme les milliers de nœuds doivent rester à jour les uns par rapport aux autres, leur capacité est limitée.
Des plafonds sont imposés au nombre de transactions pouvant être traitées en chaîne, afin d'éviter que la base de données n'atteigne des tailles trop lourdes. S'il devient trop grand et trop rapide, les nœuds ne pourront pas suivre le rythme. De plus, si les blocs sont trop gros, ils ne peuvent pas être relayés rapidement sur le réseau.
En conséquence, nous nous trouvons dans une sorte de goulot d’étranglement. Une blockchain peut être considérée comme un service de train qui part à des intervalles définis. Il n'y a qu'un nombre limité de places dans chaque voiture et pour obtenir un billet, les voyageurs doivent enchérir pour garantir une place. Si tout le monde essaie de monter dans le train en même temps, le prix sera élevé. De même, un réseau saturé de transactions en attente obligera les utilisateurs à payer des frais plus élevés pour que leur transaction soit incluse en temps opportun.
Une solution serait d'agrandir les wagons. Cela signifierait plus de sièges, un débit plus élevé et des billets moins chers. Mais rien ne garantit que les sièges ne se rempliront pas comme avant. Les wagons ne peuvent pas être perpétuellement élargis, tout comme les blocs ou les limites de gaz des blocs ne peuvent pas évoluer à l’infini. Ce dernier rend plus coûteux le maintien des nœuds sur le réseau, car ils auront besoin d'un matériel plus coûteux pour rester synchronisés.
Le créateur d'Ethereum, Vitalik Buterin, a inventé le trilemme d'évolutivité pour décrire le défi auquel sont confrontées les blockchains. Il théorise que les protocoles doivent faire des compromis entre évolutivité, sécurité et décentralisation. Ces éléments sont quelque peu contradictoires : en se concentrant trop sur deux des propriétés, la troisième sera médiocre.
Pour cette raison, beaucoup considèrent l’évolutivité comme quelque chose à réaliser hors chaîne, tandis que la sécurité et la décentralisation devraient être maximisées sur la blockchain elle-même.
Quelles sont les solutions de mise à l’échelle hors chaîne ?
La mise à l'échelle hors chaîne fait référence à des approches qui permettent d'exécuter des transactions sans gonfler la blockchain. Les protocoles qui se connectent à la chaîne permettent aux utilisateurs d'envoyer et de recevoir des fonds, sans que les transactions n'apparaissent sur la chaîne principale. Nous examinerons deux des avancées les plus notables dans ce domaine : les sidechains et les canaux de paiement.
Une introduction aux sidechains
Qu’est-ce qu’une sidechain ?
Une sidechain est une blockchain distincte. Cependant, il ne s’agit pas d’une plate-forme autonome, car elle est liée d’une manière ou d’une autre à la chaîne principale. La chaîne principale et la chaîne latérale sont interopérables, ce qui signifie que les actifs peuvent circuler librement de l'une à l'autre.
Il existe plusieurs façons de garantir que les fonds peuvent être transférés. Dans certains cas, les actifs sont déplacés de la chaîne principale en étant déposés à une adresse spéciale. Ils ne sont pas vraiment envoyés – ils sont plutôt verrouillés dans l’adresse et un montant correspondant est émis sur la sidechain. Une option plus simple (bien que centralisée) consiste à envoyer des fonds à un dépositaire, qui échange le dépôt contre des fonds sur la sidechain.
Comment fonctionne une sidechain ?
Supposons que notre amie Alice possède cinq bitcoins. Elle souhaite les échanger contre cinq unités équivalentes sur une sidechain Bitcoin – appelons-les sidecoins. La sidechain en question utilise un ancrage bidirectionnel, ce qui signifie que les utilisateurs peuvent transférer leurs actifs de la chaîne principale vers la sidechain et vice versa.
N'oubliez pas que la sidechain est une blockchain distincte. Ainsi, il aura différents blocs, nœuds et mécanismes de validation. Pour obtenir ses sidecoins, Alice lui envoyait cinq bitcoins à une autre adresse. Il pourrait appartenir à quelqu'un qui créditera ensuite son adresse sidechain de cinq sidecoins une fois qu'il aura reçu les bitcoins. Alternativement, il peut avoir une sorte de configuration de confiance minimisée dans laquelle les sidecoins sont automatiquement crédités une fois que le logiciel détecte un paiement.

Alice a maintenant converti ses pièces en sidecoins, mais elle peut toujours inverser le processus pour récupérer ses bitcoins. Maintenant qu’elle est entrée dans la sidechain, elle est libre d’effectuer des transactions sur cette blockchain distincte. Elle peut envoyer des sidecoins ou en recevoir d’autres, comme elle le ferait sur la chaîne principale.
Elle pourrait, par exemple, payer à Bob un sidecoin pour un sweat à capuche Binance. Lorsqu’elle souhaite revenir à Bitcoin, elle peut envoyer ses quatre sidecoins restants à une adresse spéciale. Une fois la transaction confirmée, quatre bitcoins seront débloqués et livrés à une adresse qu'elle contrôle sur la chaîne principale.
Pourquoi les sidechains sont-ils utilisés ?
Vous vous demandez peut-être à quoi cela sert. Pourquoi Alice n’utilise-t-elle pas simplement la blockchain Bitcoin ?
La réponse est que la sidechain peut être capable de faire des choses que Bitcoin ne peut pas faire. Les blockchains sont des systèmes de compromis soigneusement conçus. Bien que Bitcoin soit la crypto-monnaie la plus sécurisée et décentralisée, elle n’est pas la meilleure en termes de débit. Bien que les transactions Bitcoin soient plus rapides que les méthodes conventionnelles, elles restent relativement lentes par rapport aux autres systèmes blockchain. Les blocs sont extraits toutes les dix minutes et les frais peuvent augmenter considérablement lorsque le réseau est encombré.
Certes, ce niveau de sécurité n’est probablement pas nécessaire pour les petits paiements quotidiens. Si Alice paie un café, elle ne va pas attendre la confirmation de la transaction. Elle ferait la queue et sa boisson serait froide au moment où elle lui serait remise.
Les sidechains ne sont pas liés par les mêmes règles. En fait, ils n’ont même pas besoin d’utiliser une preuve de travail pour fonctionner. Vous pouvez utiliser n'importe quel mécanisme de consensus, faire confiance à un seul validateur ou modifier n'importe quel nombre de paramètres. Vous pouvez ajouter des mises à niveau qui n’existent pas sur la chaîne principale, produire des blocs plus gros et imposer des règlements rapides.
Il est intéressant de noter que les sidechains peuvent même contenir des bogues critiques sans affecter la chaîne sous-jacente. Cela leur permet d'être utilisés comme plates-formes d'expérimentation et de déployer des fonctionnalités qui nécessiteraient autrement le consensus de la majorité du réseau.
À condition que les utilisateurs soient satisfaits des compromis, les sidechains pourraient constituer une étape essentielle vers une mise à l’échelle efficace. Il n'est pas nécessaire que les nœuds de la chaîne principale stockent chaque transaction de la sidechain. Alice pourrait entrer dans la sidechain avec une seule transaction Bitcoin, effectuer des centaines de transactions sidecoin, puis quitter la sidechain. En ce qui concerne la blockchain Bitcoin, elle n’en a effectué que deux : une pour entrer et une pour sortir.
Le plasma d’Ethereum est similaire, mais présente quelques différences majeures. En savoir plus : Qu’est-ce qu’Ethereum Plasma ?
Une introduction aux canaux de paiement
Qu'est-ce qu'un canal de paiement ?
Les canaux de paiement ont le même objectif que les sidechains en termes d’évolutivité, mais ils sont fondamentalement très différents. Comme les sidechains, ils repoussent les transactions hors de la chaîne principale pour éviter que la blockchain ne soit gonflée. Cependant, contrairement aux sidechains, elles ne nécessitent pas de blockchain distincte pour fonctionner.
Un canal de paiement utilise un contrat intelligent pour permettre aux utilisateurs d'effectuer des transactions sans publier leurs transactions sur la blockchain. Pour ce faire, il utilise un accord appliqué par logiciel entre deux participants.
Comment fonctionne un canal de paiement ?
Dans des modèles tels que le populaire Lightning Network, deux parties déposeraient d’abord des pièces à une adresse qu’elles possèdent conjointement. Il s'agit d'une adresse multisignature, qui nécessite deux signatures pour que les fonds soient dépensés. Ainsi, si Alice et Bob créaient une telle adresse, les fonds ne pourraient être transférés qu'avec le consentement des deux.
Disons qu’ils déposent chacun 10 BTC à une adresse qui contient désormais 20 BTC. Il leur serait facile de tenir un bilan qui commencerait par dire qu'Alice et Bob ont tous deux 10 BTC chacun. Si Alice voulait donner une pièce à Bob, ils pourraient la mettre à jour pour lire qu'Alice a 9 BTC, Bob a 11 BTC. Ils n’auraient pas besoin de publier sur la blockchain car ils continuent de mettre à jour ces soldes.

Le moment venu, disons qu’Alice a 5 BTC et que Bob a 15 BTC. Ils pourraient ensuite créer une transaction qui envoie ces soldes aux adresses appartenant aux parties, la signer et la diffuser.
Alice et Bob auraient pu enregistrer dix, cent ou mille transactions dans leur bilan. Mais en ce qui concerne la blockchain, ils n’ont effectué que deux opérations en chaîne : une pour la transaction de financement initiale et une pour réaffecter les soldes une fois celles-ci terminées. En dehors de ces deux-là, toutes les autres transactions sont gratuites et quasi instantanées car elles se produisent hors chaîne. Il n’y a pas de frais de mineur à payer et aucune confirmation de blocage à attendre.
Bien entendu, l’exemple évoqué ci-dessus nécessite que les deux parties coopèrent, ce qui n’est pas une situation idéale pour des étrangers. Cependant, des mécanismes spéciaux peuvent être utilisés pour punir toute tentative de tricherie, afin que les parties puissent interagir en toute sécurité et sans confiance.
Acheminement des paiements
De toute évidence, les canaux de paiement conviennent à deux parties qui anticipent un volume de transactions élevé. Mais ça va mieux. Un réseau de ces chaînes peut être étoffé, ce qui signifie qu'Alice pourrait payer une soirée à laquelle elle n'est pas directement connectée. Si Bob a une chaîne ouverte avec Carol, Alice peut la payer à condition qu'il y ait suffisamment de capacité. Elle transférera les fonds du côté de Bob, qui, à son tour, les transférera vers celui de Carol. Si Carol est connectée à un autre participant, Dan, la même chose peut être faite.
Un tel réseau évolue vers une topologie distribuée où chacun se connecte à plusieurs pairs. Il y aura souvent plusieurs itinéraires vers une destination et les utilisateurs pourront choisir le plus efficace.
Pensées finales
Nous avons discuté de deux approches d'évolutivité qui permettent d'effectuer des transactions sans alourdir la blockchain sous-jacente. Les technologies des sidechains et des canaux de paiement doivent encore mûrir, mais elles sont de plus en plus exploitées par les utilisateurs qui souhaitent contourner les lacunes des transactions de la couche de base.
À mesure que le temps passe et que de plus en plus d’utilisateurs rejoignent le réseau, il est important que la décentralisation soit maintenue. Ceci n’est réalisable qu’en imposant des limites à la croissance de la blockchain afin que de nouveaux nœuds puissent facilement la rejoindre. Les partisans des solutions d'évolutivité hors chaîne estiment qu'à terme, la chaîne principale ne sera utilisée que pour régler des transactions de grande valeur, ou pour s'ancrer/se retirer des chaînes latérales et ouvrir/fermer des canaux.

