Sidechains et canaux de paiement expliqués
Notions de base
Dans l'informatique, la scalabilité désigne la capacité d'un système à absorber une demande croissante. Pour améliorer les performances d'une machine, vous pouvez mettre à niveau son matériel. Cependant, dans les blockchains, la scalabilité renvoie à la capacité de traiter davantage de transactions. Bitcoin a de nombreux atouts, mais la scalabilité n'en fait pas partie. Si Bitcoin était exécuté dans une base de données centralisée, augmenter la vitesse et le débit serait relativement simple. Toutefois, en raison de ses propositions de valeur, comme la résistance à la censure, de nombreux participants doivent synchroniser une copie de la blockchain.
Le problème de scalabilité de la blockchain
Exécuter un nœud Bitcoin est abordable, et même des appareils basiques peuvent le faire. Mais, avec des milliers de nœuds devant rester synchronisés, certaines limites de capacité existent. Les transactions on-chain ont des limites qui les empêchent de faire croître la base de données trop rapidement. Si elle grossit trop vite, les nœuds auront du mal à suivre. De plus, des blocs trop volumineux ne peuvent pas être rapidement relayés sur le réseau.
Cela crée un goulot d'étranglement : un réseau saturé de transactions en attente forcera les utilisateurs à payer des frais plus élevés pour garantir un traitement rapide. Une solution possible consisterait à augmenter la taille des blocs, ce qui pourrait améliorer le débit et réduire les frais. Cependant, rien ne garantit que la capacité accrue ne se remplirait pas à nouveau.
Le créateur d'Ethereum, Vitalik Buterin, a présenté le trilemme de la scalabilité, qui décrit le défi rencontré par les blockchains. Il soutient que les protocoles doivent équilibrer scalabilité, sécurité et décentralisation, des objectifs parfois contradictoires. Par conséquent, beaucoup estiment que la scalabilité doit être obtenue off-chain, tandis que la sécurité et la décentralisation doivent être maximisées sur la chaîne principale.
Solutions de scalabilité off-chain
Il existe des solutions de mise à l'échelle qui permettent de traiter des transactions sans alourdir la blockchain. Ces méthodes off-chain sont rendues possibles par des protocoles connectés à la chaîne, permettant aux utilisateurs d'envoyer et de recevoir des fonds sans que leurs transactions ne soient enregistrées sur la chaîne principale. Deux solutions remarquables sont les canaux de paiement et les sidechains.
Sidechains
Les sidechains sont des blockchains alternatives liées à la chaîne principale d'une certaine manière. Ces blockchains sont interopérables, ce qui signifie que les actifs peuvent être transférés librement entre la chaîne principale et la sidechain. Il existe différentes méthodes pour transférer des fonds, l'une d'elles consistant à déposer des actifs dans une adresse spéciale sur la chaîne principale. Ces actifs ne sont pas transférés mais verrouillés dans l'adresse et une quantité équivalente est émise sur la sidechain. Une autre option, bien que plus centralisée, est d'envoyer des fonds à un dépositaire qui échangera le dépôt contre des fonds sur la sidechain.
Comment cela fonctionne-t-il ?
Supposons que notre connaissance, Roman, ait cinq bitcoins qu'il souhaite échanger contre des unités équivalentes sur une sidechain Bitcoin appelée "sidecoins" en utilisant un "two-way peg". La sidechain est une blockchain séparée avec ses propres blocs, nœuds et mécanismes de validation. Pour obtenir des sidecoins, Roman envoie ses bitcoins à une autre adresse, laquelle crédite soit son adresse sur la sidechain de cinq sidecoins une fois les bitcoins reçus, soit les sidecoins sont crédités automatiquement après que le logiciel ait détecté le paiement.
Roman a maintenant converti ses pièces en sidecoins, mais il peut inverser le processus pour récupérer ses bitcoins. Être sur la sidechain signifie qu'il peut effectuer des transactions sur cette blockchain séparée. Il peut envoyer ou recevoir des sidecoins comme il le ferait sur la chaîne principale. Par exemple, il peut payer Angela un sidecoin pour un t-shirt, puis revenir sur Bitcoin en envoyant ses quatre sidecoins restants à une adresse désignée. Après confirmation de la transaction, quatre bitcoins sont déverrouillés et livrés à son adresse désignée sur la chaîne principale.
Pourquoi utiliser une sidechain ?
Angela peut vouloir utiliser une sidechain pour échanger ses bitcoins contre des sidecoins, qui sont des unités sur une blockchain distincte utilisant un two-way peg. Cela signifie que les actifs peuvent circuler librement entre la chaîne principale et la sidechain. Si Bitcoin est très sécurisé et décentralisé, il présente des compromis, notamment des vitesses de transaction plus lentes et des frais plus élevés en période de congestion du réseau.
Les sidechains, en revanche, peuvent être personnalisées avec différents mécanismes de consensus, paramètres et fonctionnalités, les rendant plus flexibles et adaptées à des cas d'utilisation spécifiques. De plus, les sidechains peuvent servir d'environnement d'expérimentation sans impacter la chaîne principale. Angela peut réaliser des centaines de transactions sur la sidechain puis revenir sur la chaîne principale avec seulement deux transactions enregistrées. Les sidechains pourraient jouer un rôle crucial dans la scalabilité et l'amélioration de la technologie blockchain.
Canaux de paiement
Les canaux de paiement constituent une solution de scalabilité viable et ont des objectifs similaires à ceux des sidechains. Toutefois, leur fonctionnement diffère sensiblement. Les canaux de paiement ne nécessitent pas une blockchain séparée et fonctionnent via un smart contract. En utilisant un accord appliqué par logiciel, deux participants peuvent transacter sans publier leurs transactions sur la blockchain. Cela empêche la blockchain de s'alourdir, comme dans le cas des sidechains.
Comment cela fonctionne-t-il ?
Roman et Angela pourraient utiliser des canaux de paiement pour effectuer des transactions sans les publier sur la blockchain, comme dans le modèle populaire du Lightning Network. Pour ce faire, ils déposeraient des pièces dans une adresse multisignature qu'ils possèdent conjointement, laquelle exige les signatures des deux parties pour dépenser les fonds. Ils pourraient mettre à jour leur relevé de comptes à chaque transaction, sans publication sur la blockchain, jusqu'à ce qu'ils décident de réallouer les soldes. À ce moment-là, ils créeraient une transaction envoyant les soldes vers leurs adresses, la signeraient et la diffuseraient sur la blockchain. Toutes les autres transactions sont gratuites et presque instantanées car elles se déroulent off-chain. Bien que cette méthode nécessite de la coopération, des mécanismes spécifiques peuvent punir les tentatives de fraude, permettant à des inconnus d'interagir en toute sécurité sans confiance préalable.
Routage des paiements
Les canaux de paiement sont utiles pour des parties qui prévoient un grand nombre de transactions, mais ils deviennent encore plus avantageux lorsqu'un réseau de canaux est établi. Cela signifie qu'Angela peut payer des personnes auxquelles elle n'est pas directement connectée. Par exemple, si Roman a un canal avec Sarah, Angela peut payer Sarah tant qu'il y a suffisamment de capacité. Elle transférerait des fonds vers la partie du canal de Roman, et il les transfèrerait vers la partie de Sarah. Si Sarah est connectée à un autre utilisateur, John, le même processus peut être suivi.
Ce type de réseau crée une topologie distribuée où chacun est connecté à plusieurs pairs. Il peut exister plusieurs routes pour atteindre une destination, et les utilisateurs peuvent choisir la plus efficace.
Conclusion
Pour éviter de surcharger la blockchain sous-jacente, deux approches de scalabilité existent : les sidechains et les canaux de paiement. Bien qu'elles soient encore en développement, de plus en plus d'utilisateurs les adoptent pour contourner les limites des transactions au niveau de base. La décentralisation est essentielle à la croissance du réseau, et l'augmentation de la taille de la blockchain doit être limitée pour que de nouveaux nœuds puissent se joindre facilement. Les partisans des solutions de scalabilité off-chain estiment que, à l'avenir, la chaîne principale sera surtout utilisée pour les transactions de grande valeur, pour le peg in/out des sidechains et pour l'ouverture/fermeture de canaux.