Nous allons voir dans ce #thread son fonctionnement en commençant par l'explication d'une zkEVM!👇
Une zkEVM est le graal pour la scalabilité de Ethereum! Elle permet de recréer tous les opcodes EVM existants pour les déployer dans un smart contract.
Pour faire simple, il sera possible de migrer le code de Ethereum à Polygon zkEVM sans avoir besoin de modifier le code.
Maintenant, voyons le fonctionnement d'un Rollup !👇
Les transactions sur un L2 sont regroupées en batch et l'exécution est réalisé offchain. Pour prouver la validité des tx et leur exécution, un Prover doit créé une preuve de validité = ZK Proof (zkP)
Puis, les données (la preuve + la différence d'état) sont envoyées sur Ethereum
L'exécution est donc réalisée sur le L2 et le consensus + la disponibilité des données est faites sur Ethereum. C'est ce qu'on appelle une blockchain modulaire (séparation entre le consensus, l'exécution et la disponibilité des données).
Pour la disponibilité des données, il y a deux possibilités :
- Mode complet : zkP et données compressées sur Ethereum
- Mode hybride : zkP sur Ethereum et données compressés off chain (validium)
Ou alors, laisser le choix à l'utilisateur entre les deux modes (volition)
Pour la première version du zkRollup, l'algorithme de consensus était le Proof of Donation (PoD) mais il était trop complexe et peu viable économiquement car coûteux.
Il était basé sur le modèle de "winner takes all" qui était injuste pour les opérateurs moins performants.
Aujourd'hui, l'algorithme est le Proof of Efficiency (PoE). Il permet de décentraliser la production des batch.
Maintenant, nous allons voir les composants de Polygon zk-EVM :
- un zkNode (Sequencer, Aggregator et Synchronizer)
- un zkProver
- un Bridge entre L1 et L2
Le zkNode est le logiciel pour faire fonctionner Polygon zkEVM.
Deux mécanismes et deux participants entrent en jeu :
- Batcher les tx et les envoyer aux PoE smart contract (SC) par le Sequencer
- Valider les tx et soumettre la preuve de validité par l'Aggregator
Sequencer :
N'importe qui peut être sequencer en faisant tourner un zkNode.
Il devra payer un frais en MATIC pour avoir le droit de créer et proposer les batch. Il recevra, lorsqu'il proposera des batch valide, les frais des tx payés par les utilisateurs du réseau.
Agrégateur (+ prover):
Il reçoit les données du sequencer et les envoie au proveur qui fournir la zkP. Puis, il envoie la zkP au SC qui validera la preuve.
Il y a besoin de faire tourner un zkNode + a besoin de matériel dédié pour créer la zkP à l'aide du zkProveur.
Quand il soumet une preuve, il gagne des Matic payé par le séquencer. Les agrégateurs sont donc en compétitions pour produire la zkP
Synchronizer :
Il permet la synchronisation et la gestion des sequencers et des aggregators.
Pour participer, il y a plusieurs possibilités :
- Soit on peut fait juste tourner un Light Node pour seulement connaitre l'état du réseau.
- Soit on participe à décentraliser le réseau en tant que sequencer ou aggregator.
Nous allons maintenant voir le zkProver qui réalise le calcul et créé la validity proof :
Le sujet est complexe à traiter mais pour faire plus simple le main state machine executor et le secondary stat machines réalisent les calculs pour prouver l'exactitude des transactions.
Après la réalisation des calculs, le STARK Proof Builder produira la preuve de validité (STARK Proof). C'est une STARK et non une SNARK car il n'y a pas besoin de configuration de départ. consensys.net/blog/blockchai…
Cependant, la STARK Proof est plus grande et coûte plus chère à vérifier sur le L1.
C'est pour cela que le SNARK Proof Builder arrive. Une preuve SNARK va être créé afin de valider la preuve STARK. C'est cette preuve SNARK, moins coûteuse, qui sera envoyée sur le L1.
Pour résumer, Polygon zkEVM est :
👉Perissionless-ness : toute personne disposant du logiciel zkNode pourra participer au réseau en tant que séquenceur ou agrégateur.
👉Décentralisé : La production de batch ne pourra pas être censuré et la data availability est encore en discussion pour éviter les censure et les attaques.
👉Sécurisé : elle sera inhérente à Ethereum + les SC garantiront que toute personne qui exécute des changements d'état devra le faire correctement et créer une preuve qui atteste de la validité du changement d'état.
Aujourd'hui, nous allons découvrir ensemble le projet Rocket Pool, (deuxième plus gros protocole de staking décentralisée) et sa mise à jour #Redstone !
Qu'est ce que @Rocket_Pool et qu'est ce qu'apporte cette mise à jour ? 👇
@Rocket_Pool Rocket Pool est une solution de staking décentralisée permettant à quiconque de participer et de tirer profit du staking sur la Beacon Chain.
👉Qu'est ce que Aztec Connect et pourquoi est-ce une innovation ?
@aztecnetwork Aztec est un L2 zkRollup basé Ethereum. Il permet de réaliser des transactions très peu chère. On parle d'une réduction pouvant aller jusqu'à 100x fois moins chère que le L1 Ethereum.
Mais ce qui le démarque des autres L2 est qu'il permet d'utiliser la DeFi de manière anonyme !
@aztecnetwork Aztec utilise des preuves zk-SNARK nommé Plonk. Les preuves Plonk permettent d'avoir un L2 totalement anonyme ! Un peu comme la confidentialité de @TornadoCash
Aujourd'hui, @aztecnetwork a lancé Aztec Connect ! ⬇️