Actu-crypto

🔒
❌ About FreshRSS
There are new articles available, click to refresh the page.
Before yesterdayYour RSS feeds

Qu'est-ce qu'un layer 2 de Bitcoin (BTC) et lesquels sont les plus prometteurs ?

May 5th 2024 at 16:00

Face à la congestion croissante du réseau Bitcoin, les layer 2 émergent comme une alternative prometteuse. En facilitant des transactions rapides et à faible coût, les layers 2 visent à enrichir Bitcoin de nouvelles fonctionnalités tout en profitant de sa sécurité, rendant ainsi l'accÚs au BTC plus simple pour des millions d'utilisateurs. Découvrez notre sélection de layer 2 prometteurs.

L’article Qu'est-ce qu'un layer 2 de Bitcoin (BTC) et lesquels sont les plus prometteurs ? est apparu en premier sur Cryptoast.

Un guide incomplet des rollups

February 2nd 2021 at 11:24

Article de Vitalik Buterin publié sur https://vitalik.ca/general/2021/01/05/rollup.html, traduit par Jean Zundel.

Depuis longtemps, les couches de niveau 2 sont vues comme un moyen de passer Ă  l’échelle, pour augmenter le nombre de transactions par seconde limitant naturellement une blockchain dĂ©centralisĂ©e comme Ethereum. Les rollups, dont le nom Ă©voque les rouleaux de piĂšces que l’on peut commodĂ©ment transporter et stocker, sont rapidement devenus la technologie la plus en vue. AprĂšs un bref survol des solutions dĂ©veloppĂ©es auparavant, Plasma et les channels, Vitalik Buterin expose ici les principes fondamentaux des deux principaux types de rollups ainsi que les avantages et les inconvĂ©nients de chacun.

Les rollups font fureur dans la communautĂ© Ethereum, et sont en passe de devenir la solution clĂ© pour le scaling, le passage Ă  l’échelle d’Ethereum dans un avenir proche. Mais qu’est-ce exactement que cette technologie, que peut-on en attendre et comment l’utiliser ? Cet article tentera de rĂ©pondre Ă  certaines de ces questions.

Contexte : qu’est-ce que le passage Ă  l’échelle des couches 1 et 2 ?

Il existe deux maniĂšres de passer Ă  l’échelle l’écosystĂšme d’une blockchain. PremiĂšrement, on peut faire en sorte que la blockchain elle-mĂȘme ait une capacitĂ© de transactions plus Ă©levĂ©e. Le principal inconvĂ©nient de cette technique est que les blockchains comportant de « plus grands blocs » sont intrinsĂšquement plus difficiles Ă  vĂ©rifier et risquent de devenir plus centralisĂ©es. Pour Ă©viter ce risque, les dĂ©veloppeurs peuvent soit augmenter l’efficacitĂ© du logiciel client, soit, de maniĂšre plus durable, utiliser des techniques telles que le sharding pour permettre de rĂ©partir le travail de construction et de vĂ©rification de la chaĂźne sur de nombreux nƓuds ; le projet connu sous le nom de « eth2 » est actuellement en train de mettre en Ɠuvre cette solution pour Ethereum.

DeuxiĂšmement, on peut changer la façon dont on utilise la blockchain. Au lieu de placer directement toute l’activitĂ© sur la blockchain, les utilisateurs effectuent la majeure partie de leur activitĂ© hors chaĂźne dans un protocole dit de « niveau 2 ». Il existe un smart contract ou contrat autonome sur la chaĂźne, qui n’a que deux tĂąches : traiter les dĂ©pĂŽts et les retraits, et vĂ©rifier les preuves que tout ce qui se passe hors de la chaĂźne respecte les rĂšgles. Il existe plusieurs maniĂšres de faire ces preuves, mais elles ont toutes en commun le fait que la vĂ©rification des preuves sur la chaĂźne est beaucoup moins coĂ»teuse que le calcul originel hors chaĂźne.

Comparaison : state channels, Plasma et rollups

Les trois principaux types de mise Ă  l’échelle par une couche de niveau 2 sont les state channels ou canaux d’état, Plasma et les rollups. Il s’agit de trois paradigmes diffĂ©rents, avec des avantages et des inconvĂ©nients diffĂ©rents, et Ă  ce stade, nous sommes assez confiants dans le fait que toutes les mises Ă  l’échelle de la couche 2 entrent Ă  peu prĂšs dans ces trois catĂ©gories (bien que des controverses de dĂ©nomination existent Ă  la marge, voir par exemple «validium»).

Comment fonctionnent les channels ?

Voir aussi : https://www.jeffcoleman.ca/state-channels et statechannels.org

Imaginez qu’Alice offre une connexion Internet Ă  Bob, en Ă©change de quoi ce dernier lui verse 0,001 dollar par mĂ©gaoctet. Au lieu d’effectuer une transaction pour chaque paiement, Alice et Bob utilisent le systĂšme de niveau 2 suivant.

D’abord, Bob met 1$ (ou l’équivalent en ETH ou en monnaie stable) dans un contrat autonome. Pour effectuer son premier paiement Ă  Alice, Bob signe un «ticket» (un message hors chaĂźne), qui dit simplement «0,001$», et l’envoie Ă  Alice. Pour effectuer son deuxiĂšme paiement, Bob signe un autre ticket qui indique «0,002$» et l’envoie Ă  Alice. Et ainsi de suite pour autant de paiements que nĂ©cessaire. Lorsque Alice et Bob ont terminĂ© leurs transactions, Alice peut publier le ticket de plus grande valeur Ă  la chaĂźne, enveloppĂ© dans une autre signature de sa part. Le contrat vĂ©rifie les signatures d’Alice et de Bob, verse Ă  Alice le montant indiquĂ© sur le ticket de Bob et renvoie le reste Ă  Bob. Si Alice ne veut pas fermer le channel (pour cause de malveillance ou de dĂ©faillance technique), Bob peut dĂ©clencher une pĂ©riode de retrait (par exemple, 7 jours) ; si Alice ne fournit pas de ticket dans ce dĂ©lai, Bob est alors remboursĂ© de tout son argent.

Cette technique est puissante : elle peut ĂȘtre ajustĂ©e pour gĂ©rer les paiements bidirectionnels, les relations par contrat autonome (par exemple, Alice et Bob passent un contrat financier Ă  l’intĂ©rieur du canal) et la composition (si Alice et Bob ont un canal ouvert, tout comme Bob et Charlie, Alice peut interagir sans confiance avec Charlie). Mais les channels ont leurs limites. Les channels ne peuvent pas ĂȘtre utilisĂ©s pour envoyer des fonds hors chaĂźne Ă  des personnes qui ne sont pas encore des participants. Les channels ne peuvent pas ĂȘtre utilisĂ©s pour reprĂ©senter des objets qui n’ont pas de propriĂ©taire logique clair (par exemple, Uniswap). Et les channels, surtout s’ils sont utilisĂ©s pour faire des choses plus complexes que de simples paiements rĂ©currents, nĂ©cessitent de bloquer un capital important.

Comment Plasma fonctionne-t-il ?

Voir aussi l’article originel sur Plasma et Plasma Cash.

Pour dĂ©poser un actif, un utilisateur l’envoie au contrat autonome qui gĂšre la chaĂźne Plasma. Elle lui attribue un nouvel identifiant unique (par exemple 537). Chaque chaĂźne Plasma a un opĂ©rateur (il peut s’agir d’un acteur centralisĂ©, d’un multisig ou d’un Ă©lĂ©ment plus complexe comme du PoS ou du DPoS). À chaque intervalle (15 secondes, ou une heure, ou entre les deux), l’opĂ©rateur gĂ©nĂšre un «lot» composĂ© de toutes les transactions Plasma qu’il a reçues hors chaĂźne. Il gĂ©nĂšre un arbre de Merkle, oĂč Ă  chaque indice X de l’arbre, il y a une transaction transfĂ©rant l’actif d’ID X s’il en existe une ; sinon cette feuille est Ă  zĂ©ro. Ils publient la racine Merkle de cet arbre sur la chaĂźne. Ils envoient Ă©galement la branche de Merkle de chaque index X au propriĂ©taire actuel de cet actif. Pour retirer un actif, un utilisateur publie la branche de Merkle de la transaction la plus rĂ©cente qui lui a envoyĂ© l’actif. Le contrat dĂ©clenche une pĂ©riode de contestation, pendant laquelle chacun peut essayer d’utiliser d’autres branches de Merkle pour invalider la sortie en prouvant que (i) l’expĂ©diteur ne possĂ©dait pas l’actif au moment oĂč il l’a envoyĂ©, ou (ii) qu’il a envoyĂ© l’actif Ă  quelqu’un d’autre Ă  un moment ultĂ©rieur. Si personne ne prouve que la sortie est frauduleuse pendant (par exemple) 7 jours, l’utilisateur peut retirer le bien.

Plasma prĂ©sente des propriĂ©tĂ©s plus puissantes que les canaux : vous pouvez envoyer des actifs Ă  des participants qui n’ont jamais fait partie du systĂšme, et les exigences en matiĂšre de capital sont beaucoup plus faibles. Mais cela a un coĂ»t : les chaĂźnes ne nĂ©cessitent aucune donnĂ©e pour tourner en «fonctionnement normal», mais Plasma exige que chaque chaĂźne publie une empreinte cryptographique Ă  intervalles rĂ©guliers. De plus, les transferts Plasma ne sont pas instantanĂ©s : il faut attendre la fin de l’intervalle et la publication du bloc.

En outre, Plasma et les channels partagent une mĂȘme faiblesse : la thĂ©orie des jeux sur laquelle se fonde leur sĂ©curitĂ© repose sur l’idĂ©e que chaque objet contrĂŽlĂ© par les deux systĂšmes a un «propriĂ©taire» logique. Si ce propriĂ©taire ne se soucie pas de son bien, il peut en rĂ©sulter un rĂ©sultat «non valide» concernant cet actif. Cette situation est acceptable pour de nombreuses applications, mais elle est un facteur de rupture pour beaucoup d’autres (par exemple, Uniswap). MĂȘme les systĂšmes oĂč l’état d’un objet peut ĂȘtre modifiĂ© sans le consentement du propriĂ©taire (par exemple, les systĂšmes basĂ©s sur les comptes, oĂč l’on peut augmenter le solde de quelqu’un sans son consentement) ne fonctionnent pas bien avec Plasma. Tout cela signifie qu’il faut beaucoup de «raisonnement spĂ©cifique Ă  l’application» dans tout dĂ©ploiement rĂ©aliste de Plasma ou de channels, et qu’il n’est pas possible de mettre en Ɠuvre un systĂšme Plasma ou de channels qui se contente de simuler l’environnement complet d’Ethereum (ou «l’EVM»). Pour contourner ce problĂšme, il faut
 les rollups.

Rollups

Voir aussi : EthHub sur les optimistic rollups et les ZK rollups.

Plasma et les channels sont des reprĂ©sentations «complĂštes» de couche de niveau 2, en ce qu’ils tentent de dĂ©placer les donnĂ©es et les calculs hors de la chaĂźne. Cependant, les questions fondamentales de la thĂ©orie des jeux concernant la disponibilitĂ© des donnĂ©es signifient qu’il est impossible de le faire en toute sĂ©curitĂ© pour toutes les applications. Plasma et les channels contournent ce problĂšme grĂące Ă  une notion explicite de propriĂ©taire, mais cela les empĂȘche d’ĂȘtre totalement gĂ©nĂ©raux. Les rollups, en revanche, sont une reprĂ©sentation «hybride» de couche 2. Les rollups dĂ©placent le calcul (et le stockage de l’état) hors chaĂźne, mais conservent certaines donnĂ©es par transaction sur la chaĂźne. Dans un souci d’efficacitĂ©, ils utilisent toute une sĂ©rie d’astuces de compression pour remplacer les donnĂ©es par du calcul chaque fois que cela est possible. Il en rĂ©sulte un systĂšme dont l’évolutivitĂ© est toujours limitĂ©e par la bande passante de donnĂ©es de la blockchain sous-jacente, mais dans un rapport trĂšs favorable : alors qu’un transfert de jetons ERC20 de la couche de base d’Ethereum coĂ»te environ 45000 gaz, un transfert de jetons ERC20 dans un rollup occupe 16 octets d’espace sur la chaĂźne et coĂ»te moins de 300 gaz.

Le fait que les donnĂ©es rĂ©sident sur la chaĂźne est essentiel (N.B.: le fait de mettre les donnĂ©es «sur IPFS» n’est pas suffisant car IPFS ne permet pas d’obtenir un consensus sur la disponibilitĂ© ou non d’une donnĂ©e ; les donnĂ©es doivent se trouver sur une blockchain). Le fait de mettre les donnĂ©es sur la chaĂźne et d’avoir un consensus Ă  ce sujet permet Ă  quiconque de traiter localement toutes les opĂ©rations du rollup s’il le souhaite, ce qui lui permet de dĂ©tecter la fraude, d’initier des retraits ou de commencer personnellement Ă  produire des lots de transactions. L’absence de problĂšmes de disponibilitĂ© des donnĂ©es signifie qu’un opĂ©rateur malveillant ou hors ligne peut faire encore moins de mal (par exemple, il ne peut pas causer un retard d’une semaine), ce qui ouvre un espace de conception beaucoup plus grand pour qui a le droit de publier des batches, des lots, et ce qui rend les rollups beaucoup plus faciles Ă  raisonner. Et surtout, l’absence de problĂšmes de disponibilitĂ© des donnĂ©es signifie qu’il n’est plus nĂ©cessaire de faire correspondre les actifs aux propriĂ©taires, ce qui explique pourquoi la communautĂ© Ethereum est aussi enthousiaste Ă  l’égard des rollups comparĂ© aux formes prĂ©cĂ©dentes de passage Ă  l’échelle de niveau 2 : les rollups sont totalement gĂ©nĂ©riques, et on peut mĂȘme faire fonctionner une EVM Ă  l’intĂ©rieur d’un rollup, ce qui permet aux applications Ethereum existantes de migrer vers des rollups pratiquement sans avoir Ă  Ă©crire de nouveau code.

Bon, mais comment fonctionne un rollup exactement ?

Il existe un contrat autonome sur la chaĂźne qui maintient une racine d’état : la racine Merkle de l’état du rollup (c’est-Ă -dire les soldes des comptes, le code du contrat, etc. qui sont «à l’intĂ©rieur» du rollup).

Tout le monde peut publier un lot, un ensemble de transactions fortement compressĂ© avec la racine d’état prĂ©cĂ©dente et la nouvelle racine d’état (la racine Merkle aprĂšs le traitement des transactions). Le contrat vĂ©rifie que la racine d’état prĂ©cĂ©dente du lot correspond Ă  sa racine d’état actuelle ; si c’est le cas, la nouvelle racine d’état devient l’actuelle.

Pour faciliter les dĂ©pĂŽts et les retraits, nous ajoutons la possibilitĂ© d’avoir des transactions dont l’entrĂ©e ou la sortie est «en dehors» de l’état du rollup. Si un lot comporte des entrĂ©es provenant de l’extĂ©rieur, la transaction qui soumet le lot doit Ă©galement transfĂ©rer ces actifs au contrat de rollup. Si un lot a des sorties vers l’extĂ©rieur, alors, lors du traitement du lot, le contrat autonome initie ces retraits.

Et c’est tout ! Sauf un dĂ©tail majeur : comment savoir si les racines post-Ă©tat des lots sont correctes ? Si quelqu’un peut soumettre un lot avec n’importe quelle racine post-Ă©tat sans consĂ©quences, il pourrait simplement se transfĂ©rer toutes les piĂšces Ă  l’intĂ©rieur du rollup. Cette question est essentielle car il existe deux familles de solutions trĂšs diffĂ©rentes au problĂšme, et ces deux familles de solutions mĂšnent aux deux saveurs de rouleaux.

Optimistic rollups contre ZK rollups

Les deux types de rollups sont :

  1. Les Optimistic rollups, qui utilisent des preuves de fraude : le contrat de rollup conserve une trace de tout son historique des racines de l’état et l’empreinte cryptographique de chaque batch. Si quelqu’un dĂ©couvre qu’un batch avait une racine post-Ă©tat incorrecte, il peut publier une preuve sur la chaĂźne, prouvant que le lot a Ă©tĂ© mal calculĂ©. Le contrat vĂ©rifie la preuve et renvoie ce lot ainsi que tous les lots     suivants. 
  2. Les ZK rollups, qui utilisent des preuves de validitĂ© : chaque lot comprend une preuve cryptographique appelĂ©e ZK-SNARK (par exemple en utilisant le protocole PLONK), qui prouve que la racine post-Ă©tat est le rĂ©sultat correct de l’exĂ©cution du lot. Quelle que soit l’ampleur du calcul, la preuve peut ĂȘtre trĂšs rapidement vĂ©rifiĂ©e sur la chaĂźne. 

Les compromis entre les deux types de rollups sont complexes :

PropriétéOptimistic rollupsZK rollups
CoĂ»t fixe du gaz par batch   ~40 000 (une transaction lĂ©gĂšre qui ne fait que changer la valeur de la racine de l’État)~500 000 (la vĂ©rification d’un ZK-SNARK est un travail de calcul assez intensif)
DĂ©lai de rĂ©tractation   ~1 semaine (les retraits doivent ĂȘtre retardĂ©s pour donner le temps Ă  quelqu’un de publier une preuve de fraude et d’annuler le retrait s’il est frauduleux)TrĂšs rapide (il suffit d’attendre le prochain lot)
ComplexitĂ© de la technologie   FaibleÉlevĂ©e (les ZK-SNARK sont une technologie trĂšs nouvelle et mathĂ©matiquement complexe)
PossibilitĂ© de gĂ©nĂ©ralisation   Plus facile (les rollups EVM Ă  usage gĂ©nĂ©ral sont dĂ©jĂ  proches du rĂ©seau principal)Plus difficile (prouver des ZK-SNARK avec une EVM gĂ©nĂ©rique est beaucoup plus difficile que de prouver des calculs simples, bien qu’il y ait des efforts (par exemple Cairo) pour amĂ©liorer cela)
CoĂ»t du gaz par transaction sur la chaĂźne   SupĂ©rieurInfĂ©rieur (si les donnĂ©es d’une transaction ne sont utilisĂ©es que pour vĂ©rifier, et non pour provoquer des changements d’état, alors ces donnĂ©es peuvent ĂȘtre omises, alors que dans un Optimistic rollup, elles devraient ĂȘtre publiĂ©es afin de pouvoir les vĂ©rifier lors d’une preuve de fraude)
CoĂ»ts de calcul hors chaĂźne   InfĂ©rieurs (bien qu’il soit plus nĂ©cessaire de refaire le calcul pour de nombreux nƓuds complets)       SupĂ©rieurs (un ZK-SNARK s’avĂšre particuliĂšrement coĂ»teux, potentiellement des milliers de fois plus cher que le calcul direct)

D’une maniĂšre gĂ©nĂ©rale, mon avis est qu’à court terme, les optimistic rollups devraient l’emporter pour le calcul gĂ©nĂ©rique sur l’EVM et les ZK rollups sont susceptibles de l’emporter pour les paiements simples, les Ă©changes et d’autres cas d’usage spĂ©cifiques aux applications ; mais Ă  moyen et long terme, les ZK rollups l’emporteront dans tous les cas d’usage Ă  mesure que la technologie des ZK-SNARK s’amĂ©liorera.

Anatomie d’une preuve de fraude

La sĂ©curitĂ© d’un Optimistic rollup repose sur l’idĂ©e que si quelqu’un publie un lot non valable dans le rollup, qui que ce soit d’autre qui suit la chaĂźne et a dĂ©tectĂ© la fraude peut publier une preuve de fraude, prouvant au contrat que ce lot est non valable et doit ĂȘtre annulĂ©.

Une preuve de fraude prĂ©tendant qu’un lot est invalide contiendrait les donnĂ©es en vert : le lot lui-mĂȘme (qui pourrait ĂȘtre vĂ©rifiĂ© par rapport Ă  un hachage stockĂ© sur la chaĂźne) et les parties de l’arbre de Merkle devaient prouver uniquement les comptes spĂ©cifiques qui ont Ă©tĂ© lus et/ou modifiĂ©s par le lot. Les nƓuds de l’arbre en jaune peuvent ĂȘtre reconstruits Ă  partir des nƓuds en vert et n’ont donc pas besoin d’ĂȘtre fournis. Ces donnĂ©es sont suffisantes pour exĂ©cuter le lot et calculer la racine post-Ă©tat (notez que les clients sans Ă©tat vĂ©rifient les blocs individuels exactement de la mĂȘme maniĂšre). Si la racine post-Ă©tat calculĂ©e et la racine post-Ă©tat fournie dans le lot ne sont pas les mĂȘmes, le lot est frauduleux.

On a la garantie que si un lot a Ă©tĂ© mal assemblĂ©, et que tous les lots prĂ©cĂ©dents ont Ă©tĂ© assemblĂ©s correctement, il est possible de crĂ©er une preuve de fraude montrant que le lot a Ă©tĂ© assemblĂ© de maniĂšre incorrecte. Notez la dĂ©claration concernant les lots prĂ©cĂ©dents : si plusieurs lots non valides ont Ă©tĂ© publiĂ©s dans le rollup, il est prĂ©fĂ©rable d’essayer de prouver que le premier est non valide. Bien entendu, on a Ă©galement la garantie que si un lot a Ă©tĂ© assemblĂ© correctement, il n’est jamais possible de crĂ©er une preuve de fraude montrant que le lot est invalide.

Comment fonctionne la compression ?

Une simple transaction Ethereum (pour envoyer de l’ETH) prend ~110 octets. Un transfert ETH sur un rollup, en revanche, ne prend que ~12 octets :

ParamĂštreEthereumRollup
Nonce~3   0
Prix du gaz~80-0.5
Gaz30-0.5
Destinataire214
Valeur~9~3
Signature~68 (2+33+33)~0.5
Depuis0 (récupéré de sig)4
Total~112~12

Cela provient pour partie d’un meilleur encodage : la RLP d’Ethereum gaspille 1 octet par valeur sur la longueur de chaque valeur. Mais il y a aussi des astuces de compression trĂšs bien trouvĂ©es qui entrent en jeu :

  • Nonce : le but de ce paramĂštre est d’empĂȘcher les rediffusions. Si le nonce courant d’un compte est de 5, la prochaine opĂ©ration de ce compte doit avoir un nonce 5, mais une fois l’opĂ©ration traitĂ©e, le nonce du compte sera incrĂ©mentĂ© Ă  6, de sorte que l’opĂ©ration     ne pourra pas ĂȘtre traitĂ©e Ă  nouveau. Dans le rollup, nous pouvons omettre complĂštement le nonce, car nous nous contentons de rĂ©cupĂ©rer le nonce de l’état antĂ©rieur ; si quelqu’un essaie de rejouer une transaction avec un nonce antĂ©rieur, la signature ne sera pas vĂ©rifiĂ©e, car la signature sera comparĂ©e aux donnĂ©es qui contiennent le nouveau nonce supĂ©rieur.
  • Prix du gaz : nous pouvons permettre aux utilisateurs de payer dans une de prix du gaz, par exemple un choix de 16 puissances consĂ©cutives de deux. Une autre possibilitĂ© serait de fixer un niveau de prix fixe pour chaque lot, ou mĂȘme d’exclure entiĂšrement le paiement du gaz du protocole de rollup et de faire payer les crĂ©ateurs de lots par les participants aux transactions pour inclusion par un channel.
  • Le gaz : nous pourrions tout aussi bien utiliser la totalitĂ© du gaz pour choisir entre des puissances consĂ©cutives de 2. On pourrait aussi se contenter d’une limite de gaz uniquement au niveau du lot.    
  • To : nous pouvons remplacer l’adresse de 20 octets par un index (par exemple, si une adresse est la 4527e adresse ajoutĂ©e Ă  l’arbre, nous utilisons simplement l’index 4527 pour y faire rĂ©fĂ©rence. Nous ajoutons un sous-arbre Ă  l’état pour stocker la correspondance des index aux adresses). 
  • Valeur : nous pouvons stocker la valeur en notation scientifique. Dans la plupart des cas, les transferts ne nĂ©cessitent que 1 Ă  3 chiffres significatifs.    
  • Signature : nous pouvons utiliser les signatures agrĂ©gĂ©es BLS, qui permettent d’agrĂ©ger de nombreuses signatures en une seule de ~32-96 octets (selon le protocole). Cette signature peut ensuite ĂȘtre vĂ©rifiĂ©e par rapport Ă  l’ensemble des messages et des expĂ©diteurs d’un mĂȘme lot en une seule fois. Le ~0,5 du tableau reprĂ©sente le fait qu’il y a une limite au nombre de signatures pouvant ĂȘtre combinĂ©es dans un agrĂ©gat qui peuvent ĂȘtre vĂ©rifiĂ©es dans un seul bloc, et donc de grands lots auraient besoin d’une signature pour ~100 transactions.

Une astuce de compression importante, spĂ©cifique aux ZK rollups, est que si une partie d’une transaction est uniquement utilisĂ©e pour la vĂ©rification et n’est pas pertinente pour le calcul de la mise Ă  jour de l’état, alors cette partie peut ĂȘtre laissĂ©e hors chaĂźne. Cela ne peut pas ĂȘtre fait dans un optimistic rollup car ces donnĂ©es devraient toujours ĂȘtre incluses dans la chaĂźne au cas oĂč elles devraient ĂȘtre vĂ©rifiĂ©es ultĂ©rieurement dans une preuve de fraude, alors que dans un ZK rollup, le SNARK prouvant l’exactitude du lot prouve dĂ©jĂ  que toutes les donnĂ©es nĂ©cessaires Ă  la vĂ©rification ont Ă©tĂ© fournies. Un exemple important est celui des rollups de protection de la vie privĂ©e : dans un optimistic rollup, le ZK-SNARK d’environ 500 octets utilisĂ© pour la confidentialitĂ© dans chaque transaction doit ĂȘtre intĂ©grĂ© Ă  la chaĂźne, tandis que dans un ZK rollup, le ZK-SNARK couvrant l’ensemble du lot ne laisse dĂ©jĂ  aucun doute sur la validitĂ© des ZK-SNARK «internes».

Ces astuces de compression sont la clĂ© de l’extensibilitĂ© des rollups ; sans elles, les rollups ne reprĂ©senteraient peut-ĂȘtre qu’une amĂ©lioration d’un facteur ~10 par rapport Ă  l’extensibilitĂ© de la chaĂźne de base (bien qu’il existe certaines applications spĂ©cifiques gourmandes en calculs oĂč mĂȘme les simples rollups sont puissants), alors qu’avec ces astuces de compression, le facteur d’échelle peut dĂ©passer 100 fois pour presque toutes les applications.

Qui peut soumettre un lot ?

Il existe plusieurs Ă©coles pour dĂ©terminer qui peut soumettre un lot dans un optimistic ou un ZK rollup. En gĂ©nĂ©ral, tout le monde s’accorde Ă  dire que, pour pouvoir soumettre un lot, un utilisateur doit verser un dĂ©pĂŽt important ; si cet utilisateur soumet un jour un lot frauduleux (par exemple avec une racine d’état invalide), ce dĂ©pĂŽt sera en partie brĂ»lĂ© et en partie donnĂ© comme rĂ©compense Ă  celui qui a prouvĂ© la fraude. Mais au-delĂ  de cela, il existe de nombreuses possibilitĂ©s :

  • Anarchie totale : tout le monde peut soumettre un lot Ă  tout moment. C’est l’approche la plus simple, mais elle prĂ©sente des inconvĂ©nients importants. En particulier, il existe un risque que plusieurs participants gĂ©nĂšrent et tentent de soumettre des lots en parallĂšle, et qu’un seul de ces lots puisse ĂȘtre inclus avec succĂšs. Cela entraĂźne un gaspillage important d’efforts pour produire des Ă©preuves et/ou un gaspillage de gaz pour publier les lots Ă  enchaĂźner.        
  • SĂ©quenceur centralisĂ© : un seul acteur, le sĂ©quenceur, peut soumettre des lots (Ă  l’exception des retraits : la technique habituelle est qu’un utilisateur peut d’abord soumettre une demande de retrait, puis si le sĂ©quenceur ne traite pas ce retrait dans le lot suivant, l’utilisateur peut alors soumettre lui-mĂȘme un lot Ă  opĂ©ration unique). C’est la plus «efficiente», mais elle dĂ©pend d’un acteur central Ă  vie.
  • Vente aux enchĂšres du sĂ©quenceur : une vente aux enchĂšres est organisĂ©e (par exemple tous les jours) afin de dĂ©terminer qui a le droit d’ĂȘtre le sĂ©quenceur pour le jour suivant. Cette technique prĂ©sente l’avantage de permettre de lever des fonds qui pourraient ĂȘtre distribuĂ©s par une DAO contrĂŽlĂ©e par le rollup (voir : enchĂšres MEV)    
  • SĂ©lection alĂ©atoire Ă  partir de l’ensemble du PoS : n’importe qui peut dĂ©poser de l’ETH (ou peut-ĂȘtre le jeton de protocole propre au rollup) dans le contrat de rollup, et     le sĂ©quenceur de chaque lot est choisi au hasard parmi l’un des dĂ©posants, la probabilitĂ© d’ĂȘtre sĂ©lectionnĂ© Ă©tant proportionnelle au montant dĂ©posĂ©. Le principal inconvĂ©nient de cette technique est qu’elle conduit Ă  l’immobilisation inutile d’un capital important. 
  • Vote DPoS : un seul sĂ©quenceur est sĂ©lectionnĂ© lors d’une enchĂšre, mais s’il n’est pas performant, les dĂ©tenteurs de jetons peuvent voter pour le jeter dehors et organiser une nouvelle enchĂšre pour le remplacer.    

Fractionnement des lots et fourniture de racines par l’État

Certains des rollups actuellement en cours de dĂ©veloppement utilisent un paradigme de «split batch» ou lot Ă©clatĂ©, oĂč l’action de soumettre un lot de transactions de couche 2 et celle de soumettre une racine d’état sont effectuĂ©es sĂ©parĂ©ment. Cela prĂ©sente certains avantages clĂ©s :

  1. On peut permettre Ă  plusieurs sĂ©quenceurs en parallĂšle de publier des lots afin d’amĂ©liorer la rĂ©sistance Ă  la censure, sans craindre que certains lots soient invalides parce qu’un autre lot a Ă©tĂ© inclus en premier.    
  2. Si une racine d’état est frauduleuse, il n’est pas nĂ©cessaire de rĂ©tablir l’ensemble du lot     ; on peut rĂ©tablir uniquement la racine d’état et attendre que quelqu’un fournisse une nouvelle racine d’état pour le mĂȘme lot. Cela donne aux expĂ©diteurs de transactions une meilleure garantie que leurs transactions ne seront pas inversĂ©es.

Il existe donc un attirail assez complexe de techniques qui tentent de trouver un équilibre entre des compromis compliqués impliquant efficacité, simplicité, résistance à la censure, entre autres objectifs. Il est encore trop tÎt pour dire quelle combinaison de ces idées fonctionne le mieux ; le temps nous le dira.

Quelle est l’ampleur du passage Ă  l’échelle apportĂ© par les rollups ?

Sur la chaĂźne Ethereum existante, la limite de gaz est de 12,5 millions, et chaque octet de donnĂ©es dans une transaction coĂ»te 16 gaz. Cela signifie que si un bloc ne contient qu’un seul lot (nous dirons qu’un ZK rollup est utilisĂ©, dĂ©pensant 500k de gaz pour la vĂ©rification des preuves), ce lot peut avoir (12 millions / 16) = 750000 octets de donnĂ©es. Comme indiquĂ© ci-dessus, un rollup pour les transferts ETH ne nĂ©cessite que 12 octets par opĂ©ration utilisateur, ce qui signifie que le lot peut contenir jusqu’à 62500 transactions. Avec un temps de bloc moyen de 13 secondes, cela se traduit par ~4807 TPS (contre 12,5 millions / 21000 / 13 ~= 45 TPS pour les transferts d’ETH sur Ethereum lui-mĂȘme).

Voici un tableau pour d’autres exemples de cas d’utilisation :

ApplicationOctets dans le rollupCoût du gaz sur la couche 1Gain maximal   
Transfert d’ETH           1221 000105x
Transfert ERC20           16 (4 octets supplémentaires pour préciser quel jeton)~50 000187x
Trade Uniswap~14 (4 octets expéditeur + 4 octets destinataire + 3 octets valeur + 1 octet prix maxi + 1 octet divers)           ~100000   428x
Retrait avec confidentialitĂ© (Optimistic rollup)296 (4 octets d’index de la racine + 32 octets d’annulateur + 4 octets de destinataire + 256 octets de preuve ZK-SNARK)~380 00077x
Retrait avec confidentialitĂ© (ZK rollup)40 (4 octets d’index de la racine + 32 octets d’annulateur + 4 octets de destinataire)           ~380 000           570x
Le gain maximal de passage Ă  l’échelle est calculĂ© comme suit : (coĂ»t du gaz L1) / (octets dans le rollup * 16) * 12 millions / 12,5 millions.

Il convient maintenant de garder Ă  l’esprit que ces chiffres sont trop optimistes. Avant tout, un bloc ne contiendra presque toujours plus d’un seul lot, Ă  tout le moins parce qu’il y a et qu’il y aura plusieurs rollups. DeuxiĂšmement, les dĂ©pĂŽts et les retraits continueront d’exister. TroisiĂšmement, Ă  court terme, l’utilisation sera faible, et les coĂ»ts fixes domineront donc. Mais mĂȘme en tenant compte de ces facteurs, des gains d’extensibilitĂ© de plus de 100 devraient ĂȘtre la norme.

Maintenant, que faire si nous voulons aller au-delĂ  de ~1000-4000 TPS (selon le cas d’utilisation spĂ©cifique) ? C’est ici qu’intervient le sharding d’eth2. La proposition sur le sharding, ou fragmentation, ouvre un espace de 16 Mo toutes les 12 secondes qui peut ĂȘtre rempli avec n’importe quelles donnĂ©es, et le systĂšme garantit un consensus sur la disponibilitĂ© de ces donnĂ©es. Cet espace de donnĂ©es peut ĂȘtre utilisĂ© par des rollups. Cette capacitĂ© de ~1398k octets par seconde est une amĂ©lioration de 23x par rapport aux ~60 kB/sec de la chaĂźne Ethereum existante, et Ă  plus long terme, la capacitĂ© en donnĂ©es devrait encore augmenter. Par consĂ©quent, les rollups qui utilisent des donnĂ©es eth2 fragmentĂ©es peuvent traiter collectivement jusqu’à ~100k TPS, et mĂȘme plus Ă  l’avenir.

Quels sont les problÚmes non encore résolus dans les rollups ?

Bien que le concept de base d’un rollup soit maintenant bien compris, que nous soyons tout Ă  fait certains qu’il est fondamentalement faisable et sĂ»r, et que de multiples rollups aient dĂ©jĂ  Ă©tĂ© dĂ©ployĂ©s sur le rĂ©seau principal, il reste encore de nombreuses zones d’ombre quant Ă  leur conception, ainsi qu’un certain nombre de dĂ©fis Ă  relever pour amener de grandes parties de l’écosystĂšme Ethereum sur des rollups afin de profiter du passage Ă  l’échelle qu’ils offrent. Voici quelques-uns des principaux dĂ©fis en question :

  • IntĂ©gration des utilisateurs et de l’écosystĂšme – peu d’applications utilisent des rollups, ils sont peu connus des utilisateurs et peu de portefeuilles ont commencĂ© Ă  les intĂ©grer. Les commerçants et les associations ne les acceptent pas encore pour les paiements. 
  • Transactions croisĂ©es – transfert efficace des actifs et des donnĂ©es (par exemple, les rĂ©sultats d’oracles) d’un rollup Ă  l’autre sans avoir Ă  passer par la couche de base. 
  • Audit des incitations – comment maximiser les chances qu’au moins un nƓud honnĂȘte vĂ©rifie effectivement un optimistic rollup afin de pouvoir publier une preuve de fraude si quelque chose tourne mal ? Pour les rollups Ă  petite Ă©chelle (jusqu’à quelques centaines de TPS), ce n’est pas     un problĂšme important et on peut simplement compter sur l’altruisme, mais pour les rollups Ă  plus grande Ă©chelle, une rĂ©flexion plus comlĂšte est nĂ©cessaire sur ce sujet.    
  • Exploration     de l’espace de conception entre le plasma et les rollups – existe-t-il des techniques permettant de mettre sur la chaĂźne certaines donnĂ©es pertinentes pour la mise Ă  jour de l’état, mais pas toutes, et y a-t-il quelque chose d’utile qui pourrait en rĂ©sulter ?     
  • Maximiser la sĂ©curitĂ© des prĂ©-confirmations – de nombreux rollups fournissent une notion de «prĂ©-confirmation» pour des UX plus rapides, oĂč le sĂ©quenceur fournit immĂ©diatement une promesse qu’une transaction sera incluse dans le lot suivant, et le dĂ©pĂŽt du sĂ©quenceur est dĂ©truit s’ils manquent Ă  leur parole. Mais la sĂ©curitĂ© Ă©conomique de ce systĂšme est limitĂ©e en raison de la possibilitĂ© de faire de nombreuses promesses Ă  de trĂšs nombreux acteurs en mĂȘme temps. Ce mĂ©canisme peut-il ĂȘtre amĂ©liorĂ© ?
  • AmĂ©liorer la vitesse de rĂ©ponse aux sĂ©quenceurs absents – si le sĂ©quenceur d’un rollup se met soudainement hors ligne, il serait utile de revenir Ă  la normale rapidement et Ă  moindre coĂ»t, soit en sortant en masse rapidement et Ă  moindre coĂ»t vers un autre rollup, soit en remplaçant le sĂ©quenceur.     
  • ZK-VM efficiente – gĂ©nĂ©ration d’une preuve ZK-SNARK selon laquelle le code de l’EVM gĂ©nĂ©rique (ou une autre VM sur laquelle les contrats existants peuvent ĂȘtre compilĂ©s) a Ă©tĂ© exĂ©cutĂ© correctement et a donnĂ© un certain rĂ©sultat. 

Conclusion

Les rollups constituent un nouveau paradigme puissant de passage Ă  l’échelle de la couche de niveau 2 et devraient devenir une pierre angulaire du passage Ă  l’échelle d’Ethereum Ă  court et moyen terme (et peut-ĂȘtre aussi Ă  long terme). La communautĂ© Ethereum s’est montrĂ©e trĂšs enthousiaste car, contrairement aux tentatives prĂ©cĂ©dentes de passage Ă  l’échelle en couche 2, elle peut prendre en charge le code EVM gĂ©nĂ©rique, ce qui permet aux applications existantes de migrer facilement. Pour ce faire, ils ont fait un compromis essentiel : ils n’ont pas essayĂ© de se retirer complĂštement de la chaĂźne, mais ont laissĂ© une petite quantitĂ© de donnĂ©es par transaction sur la chaĂźne.

Il existe de nombreux types de rollups, et de nombreux choix dans l’espace de conception : on peut employer un optimistic rollup en utilisant des preuves de fraude, ou un ZK rollup en utilisant des preuves de validitĂ© (c.Ă .d. ZK-SNARK). Le sĂ©quenceur (l’utilisateur qui peut publier des lots de transactions Ă  enchaĂźner) peut ĂȘtre un acteur centralisĂ©, ou tout le monde et n’importe qui, ou encore un choix intermĂ©diaire entre ces deux extrĂȘmes. Les rollups sont une technologie encore trĂšs jeune et leur dĂ©veloppement se poursuit rapidement, mais ils fonctionnent et certains (notamment Loopring, ZKSync et DeversiFi) fonctionnent dĂ©jĂ  depuis des mois. On peut s’attendre Ă  ce que des travaux passionnants dans ce domaine Ă©mergent dans les annĂ©es Ă  venir.

The post Un guide incomplet des rollups first appeared on Ethereum France.
❌