Scalabilité de la blockchain : Sidechains et canaux de paiement
Accueil
Articles
Scalabilité de la blockchain : Sidechains et canaux de paiement

Scalabilité de la blockchain : Sidechains et canaux de paiement

Avancé
Publié le Feb 20, 2020Mis à jour le Feb 9, 2023
9m

Table des matiĂšres


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.