Table des matières
Introduction
Le problème de la scalabilité de la blockchain
Que sont les solutions de scalabilité hors chaîne ?
Une introduction aux sidechains
Qu'est-ce qu'une sidechain ?
Comment fonctionne une sidechain ?
Pourquoi utilise-t-on des sidechains ?
Introduction aux canaux de paiement
Qu'est-ce qu'un canal de paiement ?
Comment fonctionne un canal de paiement ?
Routage de paiement
Pour conclure
Introduction
La scalabilité désigne en gros 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 soit plus rapide pour effectuer certaines tâches. Lorsque nous parlons de scalabilité pour une blockchain, nous faisons référence à l'augmentation de sa capacité à traiter davantage de transactions.
Les protocoles comme Bitcoin présentent de nombreux points forts, mais la scalabilité 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 la scalabilité de la blockchain
Exécuter 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 en contact les uns avec les autres, leur capacité est limitée.
Des plafonds sont fixés pour le nombre de transactions pouvant être traitées sur la chaîne, afin d'éviter que la base de données n'atteigne une taille trop importante. Si elle devient trop importante trop rapidement, les nœuds ne pourront pas suivre. De plus, si les blocs sont trop gros, ils ne peuvent pas être relayés rapidement sur le réseau.
Par conséquent, nous observons un goulot d'étranglement. Une blockchain peut être considérée comme une ligne de train avec des départs à intervalles réguliers. Le nombre de places est limité dans chaque wagon, et pour obtenir un billet, les voyageurs doivent enchérir pour garantir leur 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 encombré de transactions en attente obligera les utilisateurs à payer des frais plus élevés pour voir leur transaction incluse en temps voulu.
Une solution consiste à agrandir la taille des wagons. Cela signifie plus de sièges, un débit plus élevé et des billets moins chers. Mais il n'y a aucune garantie que les sièges soient pas complets, comme cela a été le cas auparavant. Les wagons ne peuvent pas être perpétuellement agrandis, tout comme les blocs ou les limites de gas ne peuvent pas s'étendre à l'infini. Dans ce dernier cas, il est plus coûteux pour les nœuds de rester sur le réseau, car ils auront besoin de matériel plus coûteux pour rester synchronisés.
Le créateur d'Ethereum, Vitalik Buterin, a décrit le trilemme de la scalabilité pour décrire le défi auquel sont confrontées les blockchains. Selon sa théorie, les protocoles doivent faire des compromis entre scalabilité, sécurité et décentralisation. Ces propriétés sont corrélées négativement. Ainsi en se concentrant trop sur deux d'entre elles, la troisième sera affectée négativement.
Pour cette raison, beaucoup sont persuadés que la scalabilité doit être atteinte hors chaîne, tandis que la sécurité et la décentralisation doivent être maximisées sur la blockchain elle-même.
Que sont les solutions de scalabilité hors chaîne ?
La scalabilité hors chaîne fait référence aux approches qui permettent l'exécution des transactions sans encombrer la blockchain. Les protocoles qui se branchent sur la chaîne permettent aux utilisateurs d'envoyer et de recevoir des fonds, sans que les transactions apparaissent sur la chaîne principale. Nous allons nous plonger dans deux des avancées les plus notables sur ce front : les sidechains et les canaux de paiement.
Une introduction aux sidechains
Qu'est-ce qu'une sidechain ?
Une sidechain est une blockchain distincte. Toutefois, il ne s'agit pas d'une plateforme autonome, car elle est rattachée d'une manière ou d'une autre à la chaîne principale. La chaîne principale et la sidechain sont interopérables, ce qui signifie que les actifs peuvent circuler librement de l'une à l'autre.
Il existe un certain nombre de moyens de s'assurer que les fonds puissent être transférés d'une blockchain à l'autre. Dans certains cas, les actifs sont déplacés de la chaîne principale en étant déposés sur 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 veut les échanger contre cinq unités équivalentes sur une sidechain Bitcoin, appelons-les « sidecoins ». La sidechain en question permet le transfert d'actifs de la chaîne principale vers la sidechain et vice-versa.
N'oubliez pas que la sidechain est une blockchain distincte. Elle aura donc différents blocs, nœuds et mécanismes de validation. Pour obtenir ses sidecoins, Alice va envoyer ses cinq bitcoins à une autre adresse. Il peut s'agir d'une personne qui créditera alors son adresse sidechain de cinq pièces une fois qu'elle aura reçu les bitcoins. Il peut également s'agir d'une configuration sans confiance où les pièces de la sidechain sont automatiquement créditées après que le logiciel ait détecté 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 sur la sidechain, elle est libre de faire des transactions sur cette blockchain séparée. Elle peut envoyer des sidecoins ou en recevoir d'autres, tout comme elle le ferait sur la chaîne principale.
Elle pourrait, par exemple, payer à Bob un sidecoin pour un sweat à capuche Binance. Lorsqu'elle voudra revenir au bitcoin, elle pourra envoyer ses quatre sidecoins restants à une adresse spéciale. Une fois la transaction confirmée, quatre bitcoins sont débloqués et envoyés sur une adresse qu'elle contrôle sur la chaîne principale.
Pourquoi utilise-t-on des sidechains ?
Vous pourriez vous demander quel est l'intérêt de faire cela. Pourquoi Alice n'utilise-t-elle pas simplement la blockchain Bitcoin ?
La réponse est que le sidechain peut être capable de faire des choses que Bitcoin ne peut pas faire. Les blockchains sont des systèmes de compromis soigneusement élaborés. Si le Bitcoin est la cryptomonnaie la plus sûre et la plus décentralisée, ce n'est pas la meilleure en termes de débit... Si les transactions en bitcoin sont plus rapides que les méthodes conventionnelles, elles restent relativement lentes par rapport aux autres systèmes de blockchain. Les blocs sont minés toutes les dix minutes, et les frais peuvent augmenter de manière significative lorsque le réseau est encombré.
Néanmoins, ce niveau de sécurité n'est probablement pas nécessaire pour les petits paiements quotidiens. Si Alice paie un café, elle n'attendra pas que la transaction soit confirmée. Elle bloquerait la queue, et sa boisson serait froide au moment où on la lui donnerait.
Les sidechains n'obéissent pas aux mêmes règles. En fait, ils n'ont même pas besoin d'utiliser la preuve de travail pour fonctionner. Vous pouvez utiliser n'importe quel mécanisme de consensus, faire confiance à un seul validateur ou modifier un nombre quelconque de paramètres. Vous pourriez ajouter des améliorations qui n'existent pas sur la chaîne principale, produire de plus gros blocs, et imposer des règlements rapides.
Il est intéressant de noter que les sidechains peuvent même présenter des bogues critiques sans affecter la chaîne sous-jacente. Cela permet de les utiliser comme plateformes d'expérimentation et de déployer des fonctionnalités qui, autrement, nécessiteraient le consensus de la majorité du réseau.
À condition que les utilisateurs soient satisfaits des compromis, les sidechains peuvent faire partie intégrante d'une scalabilité réussie. Il n'est pas nécessaire que les nœuds de la chaîne principale stockent chaque transaction de la chaîne secondaire. Alice pourrait entrer sur la sidechain avec une seule transaction en bitcoins, effectuer des centaines de transactions en sidecoins, 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.
La solution Plasma d'Ethereum est similaire, mais présente des différences majeures. Pour en savoir plus : Qu'est-ce que la solution plasma d'Ethereum ?
Introduction aux canaux de paiement
Qu'est-ce qu'un canal de paiement ?
Les canaux de paiement ont le même but que les sidechains sur le plan de la scalabilité, mais ils sont fondamentalement très différents. Tout comme les sidechains, ils poussent les transactions hors de la chaîne principale pour éviter son encombrement. Contrairement aux sidechains, cependant, ils ne nécessitent pas de blockchain séparée pour fonctionner.
Un canal de paiement utilise un smart contract pour permettre aux utilisateurs d'effectuer des transactions sans publier leurs transactions sur la blockchain. Il le fait en utilisant un accord appliqué par logiciel entre deux participants.
Comment fonctionne un canal de paiement ?
Dans des modèles comme le populaire Lightning Network, deux parties déposent d'abord des fonds sur une adresse qu'elles contrôlent conjointement. Il s'agit d'une adresse multisignature, qui requiert 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 déplacés qu'avec le consentement des deux.
Disons qu'ils déposent chacun 10 BTC à une adresse qui détient maintenant 20 BTC. Il leur serait facile de tenir un bilan qui commencerait par dire qu'Alice et Bob ont chacun 10 BTC. Si Alice voulait donner une pièce à Bob, ils la mettraient à jour pour indiquer qu'Alice a 9 BTC, et Bob 11 BTC. Ils n'ont pas besoin de publier sur la blockchain car ils continuent de mettre à jour ces soldes.
Au bout d'un moment, disons qu'Alice a 5 BTC et que Bob a 15 BTC. Ils peuvent ensuite créer une transaction qui envoie ces soldes à des adresses appartenant aux deux 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 sur chaîne : l'une pour la transaction de transfert initiale et l'autre pour réaffecter les soldes une fois qu'ils ont terminé. À l'exception de ces deux-là, toutes les autres transactions sont gratuites et quasi instantanées, car elles ont lieu hors chaîne. Il n'y a pas de frais de minage à payer et aucune confirmation de bloc à attendre.
Bien sûr, l'exemple évoqué ci-dessus exige que les deux parties coopèrent, ce qui n'est pas une situation idéale pour les étrangers. Cependant, des mécanismes spéciaux peuvent être utilisés pour punir toute tentative de tricherie, de sorte que les parties peuvent interagir en toute sécurité et sans confiance.
Routage de paiement
Il est évident que les canaux de paiement sont pratiques pour deux parties qui anticipent un volume élevé de transactions. Mais cela va encore plus loin. Il est possible de constituer un réseau de ces canaux, permettant à Alice de payer une partie à laquelle elle n'est pas directement connectée. Si Bob a un canal ouvert avec Carol, Alice peut la payer à condition que la capacité soit suffisante. Elle va pousser les fonds du côté de Bob qui, à son tour, va les pousser du côté de Carol. Si Carol est connecté à 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 existe souvent plusieurs itinéraires vers une destination et les utilisateurs peuvent choisir celle qui leur convient le mieux.
Pour conclure
Nous avons discuté de deux approches de scalabilité qui permettent d'effectuer des transactions sans encombrer la blockchain sous-jacente. Les sidechains et la technologie des canaux de paiement doivent encore arriver à maturité, mais ils sont de plus en plus utilisés par les utilisateurs qui souhaitent contourner les lacunes des transactions de la couche de base.
À mesure que le temps passe et que de nouveaux utilisateurs rejoignent le réseau, il est important que la décentralisation soit maintenue. Pour ce faire, il suffit d'appliquer des limites à la croissance de la blockchain afin que les nouveaux nœuds puissent facilement s'y joindre. Les partisans des solutions de scalabilité hors chaîne estiment qu'à terme, la chaîne principale ne sera plus utilisée que pour régler les transactions de grande valeur, ou pour le transfert depuis et vers les chaînes latérales et l'ouverture/fermeture des canaux.