Chargement
keyboard_arrow_up
BitcoinTechnique

Rootstock, qui signifie “rhizome” en anglais, est un projet prometteur pour Bitcoin, qui va permettre au réseau de passer à la vitesse supérieure. Cette série d’articles aura pour but de présenter Rootstock de façon exhaustive, tout en éclairant le lecteur sur certaines notions qu’il rencontrera souvent dans l’univers des cybermonnaies : Turing-complétude, merge mining, 2-way peggingsidechains et drivechains.

Qu’est-ce que Rootstock ?

RSK logo - smallRootstock a pour objectif d’améliorer grandement l’écosystème Bitcoin en permettant à tous de développer, de déployer et d’utiliser des smart contracts sur sa blockchain. Il s’agit d’une plateforme open-source, qui permettra également d’effectuer des paiements quasi instantanés et de décupler la scalabilité du réseau.

L’équipe de développement, située en Argentine, est composée de membres reconnus de la communauté Bitcoin. Le Chief Scientist du projet n’est autre que Sergio Demian Lerner, développeur Bitcoin et chercheur en sécurité informatique ayant apporté de nombreuses contributions au code source du protocole.

RSK est un projet bien avancé, qui est en phase de test depuis la sortie de Ginger, le Testnet de la plateforme. La version 0.2.5 est disponible depuis le 12 octobre et chacun peut déployer son propre nœud pour effectuer de premiers essais.

La vision des fondateurs de Rootstock :

L’équipe de RSK souhaite apporter beaucoup de valeur au réseau Bitcoin, qui est encore très jeune et en pleine phase de construction. De nombreux défis techniques doivent être relevés pour donner vie à l’idée de Satoshi Nakamoto, celle d’un système de cash numérique, pair-à-pair, et accessible au plus grand nombre. Pour cela, il faut accroître grandement la scalabilité du réseau, et trouver le moyen d’utiliser Bitcoin avec des frais très faibles, favorisant ainsi l’inclusion des populations non-bancarisées ou des commerçants souhaitant utiliser Bitcoin pour recevoir des micro-paiements. Il faut également permettre aux entreprises et aux utilisateurs de déployer des fonctionnalités avancées, à l’instar d’Ethereum ou de Waves : les smart contracts. C’est cette vision axée sur l’inclusion financière que porte RSK, une vision qui est également collaborative, car le modèle permet à chaque acteur du réseau Bitcoin de trouver sa place au sein du système, grâce à sa gouvernance, au développement open-source et à la compatibilité de la plateforme avec des solutions déjà existantes, comme Ethereum.

Pour répondre à une telle ambition, il faut utiliser la force du réseau Bitcoin (son degré de sécurité) tout en surpassant ses faiblesses (le temps de génération des blocs et l’impossibilité actuelle d’y exécuter des contrats autonomes). Un défi relevé par l’équipe de RSK, grâce à un système de consensus hybride entre la preuve de travail de Bitcoin et la fédération des compagnies reconnues de l’écosystème. La plateforme possède sa propre blockchain, mais cette dernière est intrinsèquement liée à celle de Bitcoin : on parle de sidechain. Il est également possible de la miner en même temps que la blockchain mère : on parle de merge mining. Avant d’explorer ces concepts, détaillons les possibilités offertes par Rootstock.

Les caractéristiques de Rootstock :

  • Machine virtuelle Turing-complète et déterministe permettant de programmer des contrats intelligents ;
  • Confirmation des transactions beaucoup plus rapide (10 secondes) ;
  • Merge mining sécurisé (il doit être possible de miner à la fois des blocs sur le réseau Bitcoin comme sur la chaîne secondaire) ;
  • Délai de propagation très court au sein du réseau ;
  • Two-way pegging : il s’agit du procédé qui permet de “transférer” des bitcoins sur une autre chaîne et de réaliser l’opération inverse. C’est évidemment un procédé complexe à mettre en place sans faire confiance à une tierce partie, d’où les problématiques liées à la centralisation des coins (Rootstock a une approche originale, basée sur une fédération de nœuds majeurs du réseau).

Les cas d’usage de Rootstock :

La plateforme permettra de créer des smart contracts sur la blockchain de Bitcoin, et sera pleinement compatible avec la machine virtuelle d’Ethereum et le langage Solidity. Cela donnera ainsi aux développeurs d’Ethereum l’occasion de profiter de la robustesse du réseau Bitcoin. Mais quels seront les cas d’usage concrets de ces smart contracts qui pourront être déployés grâce à Rootstock ?

  • Canaux de micropaiements : ces canaux permettront à deux parties d’effectuer des petites transactions régulières sans frais. Les frais seront uniquement collectés lors de la fermeture du canal.
  • Place de change pair-à-pair et décentralisée : basé sur le protocole d’atomic swap proposé par TierNolan, Rootstock permettra d’émettre des smart contracts qui assureront la correspondance des ordres d’achat et de vente entre différentes blockchains ou différents actifs numériques.
  • Systèmes de paiement de détail pour les commerçants : Rootstock ambitionne de rendre Bitcoin utilisable pour n’importe quel petit commerçant. L’obstacle principal est le temps de confirmation des transactions sur la blockchain de Bitcoin (dix minutes). Rootstock propose une plateforme permettant d’effectuer jusqu’à 300 transactions par seconde.
  • Services de séquestre : RSK permettra de créer des services de séquestre “intelligents” où les fonds pourront être déplacés de façon prédéfinie, sous certaines conditions.
  • Émission d’actifs numériques : RSK permettra de créer des actifs numériques indexés sur des actifs traditionnels, comme des parts de sociétés par exemple. Cela permettra à de toutes petites entreprises de lever du capital.
  • Remittances (transferts de fonds d’un travailleur immigré vers son pays d’origine) : ce cas d’usage est très important pour les pays en voie de développement où le transfert de fonds par les voies traditionnelles est très coûteux.
  • Preuves d’existence : RSK permet à des individus ou à des compagnies d’émettre des preuves d’existence ou de propriété de certains documents.
  • Systèmes de vote : RSK permet d’organiser des votes numériques extrêmement sécurisés, parfaitement transparents, le tout pour un coût minime.
  • Diminution des frais de transactions du réseau bitcoin : la solution proposée par Rootstock permet de confirmer des transactions de façon quasi-immédiate; les frais seront collectés sous la forme d’actifs numériques reliés à une monnaie fiat ou autre actif au cours stable, préservant ainsi les utilisateurs de la volatilité du cours du bitcoin ou de l’augmentation des frais de transaction dus aux halvings.

Nous pouvons ajouter à cette liste de nombreux cas d’usage comme le microcrédit, la traçabilité de produits, des applications dans les systèmes de réputation en ligne et d’identité numérique, la création d’une monnaie numérique globale pour les amateurs de jeux vidéo, des jeux d’argent en ligne sécurisés ou encore des marchés prédictifs…

Fonctionnement de la plateforme RSK :

Pour l’instant, le protocole Bitcoin ne permet pas de déployer des smart contracts, ces contrats intelligents et autonomes qui font tout l’intérêt de la blockchain d’Ethereum. En effet, ces scripts doivent pouvoir être exécutés en boucle, de façon ininterrompue, tout du moins tant que le ou les propriétaires d’un contrat disposent de suffisamment de fonds pour récompenser les mineurs qui exécutent les instructions informatiques désirées : ils ne peuvent être déployés que sur un système dit “Turing-complet“, ce qui n’est pas le cas de Bitcoin par conception.

Turing-complétude :

Alan Turing
Alan Turing

Alan Turing, mathématicien et cryptologue anglais, est l’un des pères fondateurs de l’informatique moderne. Il est très célèbre pour avoir cassé le code de la machine Enigma, utilisée par l’armée allemande lors de la Seconde Guerre mondiale pour chiffrer ses messages. Ce tour de force fut possible grâce à ses recherches sur la complexité algorithmique et la calculabilité, qui lui permirent d’inventer sa fameuse machine, ancêtre des ordinateurs d’aujourd’hui. L’appellation “machine de Turing” désigne en informatique théorique un système possédant des propriétés bien particulières : il doit être capable de résoudre tout problème de calcul fondé sur une procédure algorithmique.

Concrètement, les langages de programmation bien connus comme le C ou Java sont Turing-complets, car ils présentent les caractéristiques suivantes :

  • L’allocation dynamique de mémoire ;
  • La récursivité ou un autre moyen d’exécuter des boucles infinies ;
  • L’exécution infinie (pas de garantie de fin de programme) ;
  • Le lambda-calcul.

Le protocole Bitcoin ne permet pas de déployer de telles fonctionnalités car son langage de script n’est pas Turing-complet, ce qui est volontaire (cela assure stabilité et résistance aux attaques). Il faut donc implémenter une machine virtuelle qui se chargera d’exécuter les instructions des contrats puis d’inscrire les transactions associées sur la blockchain de Bitcoin. La machine virtuelle de Rootstock est donc au cœur de la plateforme de smart contracts; elle est compatible avec Solidity, et la deuxième version assurera la portabilité Java.

Pour développer ces fonctionnalités, Roostock doit posséder sa propre blockchain. Cependant, afin de pouvoir en faire bénéficier le réseau Bitcoin et profiter de son degré très élevé de sécurité, cette chaîne doit être intrinsèquement liée à celle de Bitcoin : les transactions déclenchées par les contrats autonomes sont effectuées sur la chaîne secondaire et l’état résultant est “réinjecté” de façon sécurisée sur la blockchain de Bitcoin.

Le concept de sidechain

Rootstock est donc avant tout une sidechain, c’est-à-dire une chaîne secondaire à la blockchain de Bitcoin, où l’on peut effectuer des transactions, programmer des scripts d’exécutions conditionnelles, bref, réaliser une foule d’opérations dont le résultat sera ensuite gravé dans la blockchain-mère. Bien évidemment, les bitcoins ne sont pas “transférés” à proprement parler sur la chaîne secondaire, et réaliser ce tour de passe-passe est complexe.

Pour cela, il faut “immobiliser” les bitcoins à traiter sur la chaîne principale (c’est-à-dire qu’ils seront hors du contrôle de quiconque tant qu’il n’est pas prouvé qu’ils ne sont plus utilisés sur la sidechain).

Lorsque la transaction permettant d’immobiliser les bitcoins qui seront “traités” sur la sidechain est confirmée, un message est envoyé vers l’autre chaîne, prouvant que le séquestre est effectif et que les opérations peuvent commencer, cette fois-ci avec le token propre à la chaîne secondaire.

L’équivalent en tokens sur l’autre chaîne est alors déverrouillé et le contrôle en est donné à l’initiateur. C’est exactement comme si les bitcoins immobilisés sur la blockchain de Bitcoin étaient “transférés” sur une blockchain annexe. Sur cette deuxième chaîne, il est alors possible de faire des transactions selon les règles internes au protocole choisi, qui peut être totalement différent de Bitcoin (par exemple, il peut être Turing-complet).

Lorsque les opérations désirées sont effectuées, il suffit alors de réaliser le chemin inverse : signer une transaction qui immobilise/verrouille les tokens sur la sidechain et qui redonne le contrôle des bitcoins à l’entité qui “contrôlait” leur équivalent sur la sidechain.

Sidechain
Fonctionnement d’une sidechain.

Ainsi, il est possible d’améliorer grandement le réseau Bitcoin sans pour autant encombrer sa blockchain avec un nombre important de transactions. C’est tout l’intérêt de canaux de paiements comme le Lightning Network, ou de plateformes de smart-contracts comme Rootstock.

Le merge mining :

L’idée derrière le merge mining est de pouvoir permettre aux mineurs d’utiliser leur matériel pour miner sur plusieurs blockchains à la fois : il s’agit de chercher des solutions (preuves de travail) pour plusieurs cryptomonnaies simultanément, sans pour autant disposer de puissance de calcul supplémentaire. Ce système fut implémenté pour la première fois sur Namecoin en 2011. Le principe consiste à réutiliser des solutions partielles à l’épreuve de travail d’une crypto-monnaie “mère” comme preuves de travail pour une ou plusieurs cryptomonnaies “filles” : il peut y avoir de très légères pertes de puissance de hachage pour les mineurs, mais celles-ci sont compensées par les frais de transactions associés à la chaîne secondaire.

Rootstock souhaite inciter les mineurs de Bitcoin à miner simultanément la blockchain de Rootstock, le tout sans perte de sécurité : en effet, si une faible proportion de mineurs s’occupe de la chaîne secondaire, cette dernière peut subir une attaque de type 51% de la part du reste de la puissance de hachage. Pour prévenir cela, RSK s’appuie sur un modèle de gouvernance où les blocs minés par l’épreuve de travail sont signés par des membres de confiance (une fédération d’acteurs de l’écosystème). Dans le cas où la puissance de hachage consacrée à la blockchain de RSK est très faible (relativement à Bitcoin), cette fédération pourra créer des blocs signés.

La gouvernance de Rootstock :

Afin d’obtenir un temps de génération de bloc très inférieur à celui que propose Bitcoin, il faut que la blockchain de Rootstock utilise un autre mécanisme de consensus. Celui-ci repose sur la participation active de certains nœuds du réseau, dits “notaires”, regroupés dans une fédération.

Il faut alors aligner les intérêts économiques de différents acteurs de l’écosystème (mineurs, détenteurs de bitcoins, fournisseurs de services, plateformes d’échange) afin que le mécanisme offre un niveau de sécurité satisfaisant.

Le modèle de gouvernance de Rootstock permet à chaque acteur de voter en fonction de son activité :

  • Les mineurs votent avec leur puissance de hachage ;
  • Les détenteurs de coins votent grâce à leur preuve d’enjeu ;
  • Les fournisseurs de wallets et les plateformes d’échange votent à travers la fédération ;
  • Les développeurs du réseau Bitcoin et de Rootstock votent également ;
  • Enfin, un organisme à but non lucratif, représentant la communauté Bitcoin au sens large (comme la Bitcoin Foundation), possédera également des droits de vote.

2-way peg sécurisé :

“Two way peg” pourrait être traduit par “ancrage à double voie” :

Comme nous l’avons vu, une sidechain est une blockchain secondaire dont le jeton de valeur natif (le rootcoin dans notre cas) est totalement relié à celui de la chaîne mère (Bitcoin). Concrètement, cela signifie que lorsqu’une certaine quantité de bitcoins sont “immobilisés” sur la blockchain, la même quantité de rootcoins est accessible sur la sidechain (la blockchain de Rootstock). Une fois les opérations effectuées en rootcoins, ces derniers sont à leur tour immobilisés, et les bitcoins redeviennent accessibles. Ce procédé est symétrique, c’est pourquoi on parle de “double voie”.

Ce sont des compagnies réputées de l’écosystème Bitcoin qui, à travers leur fédération, assureront le rôle de transférer les fonds d’une blockchain à l’autre. Ils seront incités économiquement à sécuriser ces opérations en collectant des frais. On parle de semi-trusted third-parties (tierces parties semi-fiables) en ce sens que l’une des tierces parties ne peut pas déverrouiller les bitcoins seule, mais il suffit que la majorité des parties vote le déverrouillage pour qu’il soit effectué.

Les nœuds complets du réseau qui seront chargés de garder les fonds verrouillés devront être parfaitement sécurisés, et le verrouillage ou déverrouillage doit pouvoir être effectué sans intervention humaine.

Rootstock : sidechain, drivechain ou hybride ?

Grâce à l’excellent billet “Sidechains, Drivechains, And RSK 2-Way Peg Design” publié sur le blog de Rootstock, nous pouvons explorer les différentes méthodes permettant de créer ces “ancrages doubles” sécurisés.

Pour que le système soit fiable, il doit être impossible de déverrouiller dans le même temps les bitcoins et leur équivalent en rootcoins (ce qui pourrait conduire à des doubles dépenses). Cela requiert que la majorité des tiers en charge de la garde des coins verrouillés soit honnête (en plus de la capacité de résistance à la censure de la blockchain primaire et de l’honnêteté des mineurs qui la sécurisent et la construisent). C’est donc par l’incitation économique que RSK compte assurer l’honnêteté des tierces parties, après l’analyse du coût des attaques possibles.

Il y a plusieurs méthodes pour créer des 2-way pegs : single custody (tiers de confiance unique pour assurer le séquestre des bitcoins), les sidechains, les drivechains, la garde des bitcoins via un portefeuille multi-signatures, et des systèmes hybrides, comme celui de Rootstock.

La méthode la plus basique est évidemment de confier la garde des bitcoins immobilisés à une plateforme de change. Cette dernière déverrouille les tokens secondaires une fois qu’elle s’est assurée que les bitcoins sont bien mis sous séquestre, que ce soit fait manuellement ou de façon automatisée par le protocole.

2WP : Single Custodian
2-way pegging : le cas du tiers de confiance.

 

La fédération autour d’un portefeuille multi-signatures :

Cette méthode, qui est déjà plus efficace et sécurisée, consiste à confier la gestion des bitcoins séquestrés dans un portefeuille multi-signatures à un groupe de notaires : il faut alors que la majorité des notaires approuve le déverrouillage des fonds. Si cette méthode offre un meilleur degré de décentralisation, encore faut-il que ces notaires soient choisis avec soin en fonction de leur réputation, de leur répartition géographique et de leur niveau de sécurité…

2WPMultisig
2-way pegging : méthode multi-signatures

Les sidechains :

Pour améliorer la fiabilité d’un 2-way peg, on peut rajouter une couche protocolaire qui permet de s’assurer que les coins sont bien verrouillés sur une chaîne avant de déverrouiller les tokens correspondants sur l’autre, grâce à un système de preuve (il faut bien sûr que les mécanismes de consensus de chaque chaîne soient parfaitement intégrés à ce protocole).

Fonctionnement d'une sidechain.
Fonctionnement d’une sidechain.

 

Ces systèmes présentent des inconvénients :

  • Le problème de la finalité du règlement (le moment où la transaction devient irrévocable) : si la sidechain ne comporte pas de mécanisme permettant de s’assurer de la finalité du règlement, pour s’assurer qu’une transaction a bien été acceptée (côté sidechain), la blockchain de Bitcoin ne peut que s’appuyer, de manière probabiliste, sur la quantité de preuve de travail confirmant la transaction sur la chaîne secondaire.
  • Même si la sidechain comporte un tel mécanisme, le même problème se pose dans l’autre sens (vis-à-vis de la blockchain de Bitcoin). Il y a une solution qui est énoncée dans le paragraphe suivant, mais elle limite le temps de génération des blocs de la sidechain à celui de la chaîne mère.
  • Implémenter des sidechains sur Bitcoin nécessite des forks pour implémenter du nouveau code (ex : SegWit).

Les blockchains enchevêtrées :

Il s’agit de relier les blockchains l’une à l’autre afin que le verrouillage des coins sur la chaîne primaire entraîne automatiquement le déverrouillage des tokens correspondants sur la chaîne secondaire. Il y a évidemment différentes méthodes :

  • L’intégration des transactions de la blockchain secondaire dans les transactions de la blockchain primaire (via OP_RETURN).
  • Les blocs de la chaîne secondaire peuvent posséder deux blocs parents : un dans sa propre chaîne et un venant de la chaîne primaire.
  • La création des blocs secondaires est déclenchée par des engagements cryptographiques lors des transactions effectuées sur la blockchain primaire.

Les deux premières options permettent à la chaîne secondaire de vérifier les preuves de transaction sans nécessiter l’apport des en-têtes de confirmation, car son logiciel client possédera également une copie de la blockchain de Bitcoin, qu’il s’agisse de la chaîne complète, pour la première option, ou seulement des en-têtes des blocs, pour la seconde option. La troisième option ne permet pas cela (il faut absolument que les “prouveurs” communiquent les en-têtes des blocs de confirmation).

2WP - Entangling
L’enchevêtrement, la méthode la plus rapide pour administrer une sidechain.

 

Mais ce système de blockchains enchevêtrées pose également des problèmes :

  • Il est impossible pour la chaîne secondaire de produire des blocs à un rythme plus élevé que Bitcoin.
  • Lors de l’ancrage des transactions secondaires dans la chaîne Bitcoin, les utilisateurs de la chaîne secondaire devront traiter les transactions des deux blockchains.
  • Le problème de la garde des bitcoins verrouillés sur la chaîne primaire n’est pas résolu.

Les drivechains :

Une drivechain donne la garde des bitcoins verrouillés aux mineurs, et leur permet de voter quant au déverrouillage des bitcoins et à leur adresse de destination. Les mineurs utilisent la blockchain de Bitcoin pour voter, et les votes sont diffusés quelque part dans le bloc. Plus les mineurs honnêtes participent à la drivechain, plus elle est sécurisée.

2-way pegging - Drivechain
Fonctionnement d’une drivechain.

Un modèle hybride : la méthode Rootstock

Tous les modèles précédents sont symétriques, c’est-à-dire que la méthode utilisée pour déverrouiller les coins secondaires est la même que celle qui est utilisée pour les bitcoins. Le modèle hybride de RSK utilise une méthode différente pour chaque blockchain.

Il s’agit d’un cas spécial, car RSK s’appuie sur le merge mining avec Bitcoin. Le modèle choisi doit alors prendre en compte les points suivants :

  • Quels sont les tiers qui contrôlent les bitcoins verrouillés ?
  • Quel est le coût d’une attaque ?
  • Quelles sont les conséquences d’une attaque ?
  • Quelles sont les incitations économiques qui sont en jeu ?

Si (et seulement si) l’engagement des mineurs de Bitcoin dans le merge-mining est quasi-total, alors les acteurs qui ont la plus forte incitation économique à être honnêtes lorsqu’ils sont en charge du séquestre des bitcoins sont les mineurs eux-mêmes. Dans le cas du merged mining, les méthodes sidechains et drivechains reposent entièrement sur l’honnêteté des mineurs de Bitcoin, elles offrent donc le même degré de sécurité. Les sidechains sont cependant plus difficiles à implémenter du côté de Bitcoin (car cela nécessite un fork du protocole), ainsi RSK privilégie l’usage d’une drivechain du côté de Bitcoin. Du côté de RSK, c’est une sidechain qui est implémentée. Le modèle hybride de RSK peut donc être défini comme un modèle Drivechain/Sidechain.

2-way pegging - RSK hybrid
2-way pegging : fonctionnement du modèle hybride de RSK

 

Si l’engagement des mineurs dans le merged mining est faible, le modèle drivechain/sidechain offre peu de sécurité. RSK propose donc de renforcer la sécurité des bitcoins mis sous séquestre en rajoutant un groupe de notaires à la drivechain. Les notaires votent avec leur signature cryptographique, tandis que les mineurs votent en rajoutant un marqueur spécial dans leur transaction coinbase. Il s’agit d’un compromis entre centralisation et sécurité. Le modèle final du 2WP de RSK peut donc être défini comme Drivechain+Notaires/Sidechain. La pondération des votes utilise une méthode dynamique, basée sur l’engagement autour du merged mining. Au début, seuls les notaires voteront via une transaction multi-signatures classique. Dans le moyen terme, lorsque les drivechains pourront être ajoutées au réseau Bitcoin, les notaires et les mineurs voteront ensemble. Au long terme, si l’engagement autour du merged mining atteint les 90%, les notaires cesseront de voter et seuls les mineurs participeront.

Pour résumer, la sécurité des bitcoins verrouillés repose sur les mineurs et un groupe de notaires, mais le pouvoir de chacun est dynamiquement ajusté en fonction du taux d’engagement des mineurs autour du merged mining.

RSK : vote dynamique
Le système de vote dynamique de RSK.

 

* * *

Cet article tente de fournir un premier éclairage sur le fonctionnement de Rootstock et sur certaines notions assez techniques propres à l’univers des monnaies cryptographiques. RSK est un projet open source de grande envergure, soutenu par BitConseil. Ses infrastructures permettront de décupler les possibilités offertes par le réseau Bitcoin. De nombreux aspects n’ont pas été abordés dans cette introduction et donneront de la matière pour de futures publications.

Pour participer au projet en temps que développeur : Gitter

En tant qu’ambassadeur : http://ambassadors.rsk.co/

Sources/Ressources :

Le whitepaper original de RSK

Sidechains and Drivechains : A view on 2way peg designs par Sergio Lerner

Le blog de RSK

La chaîne YouTube de RSK

Commentaires

Indice des prix

Sécurisez vos cryptos

Ledger Nano S
Ledger Blue

Flux Twitter

Achetez des bitcoins/ethers

Acheter bitcoins et ethers sur Coinhouse
Acheter des bitcoins sur ZeBitcoin