Présentation de Starkware, par Lucas - Les Amis d’Ethereum France #18

Ethereum France Talks · 18 Jan 2024 · 16:47

Lucas, from a Starkware exploration team, explains how Starknet works as a validity rollup and what its cheap proven computation makes possible. A prover re-executes transactions and posts a proof plus state updates to Ethereum, so the chain inherits Ethereum's security and its state can be rebuilt from L1. He then covers games, native account abstraction with custom signature checks and session keys, trustless bridges, storage proofs and layer-3 chains, and closes on the Cairo language and a compiler path through LLVM aimed at faster native execution.

Topics

From Ethereum France Talks, hosted by Ethereum France.

Transcript

bonjour à tous donc je suis Lucas je B chez starquare je suis dans l'équipe exploration et nous en gros notre but c'est de faire des projets open source de tout ce qui touche à starkware starknet et cetera et notamment starknet starknet c'est un validerolope et donc je vais vous expliquer assez au niveau comment ça marche ça vous aidera aussi pour la présentation d'après euh mais du coup en gros on arrive à un constat que on est enfin que en 2015 etherum est apparu et en fait etherum c'est vachement plus lent que les solutions de paiement qui sont sorties bien avant par exemple à l'IP ou les les cartes de crédit donc pourquoi pourquoi on en arrive à

ça donc aujourd'hui on a deux solutions soit les banques soit etherum les banques c'est tout le monde qui dit ok je crois la banque pour maintenir l'état de mon compte pour processe mes transactions et cetera ethereum c'est l'inverse c'est je crois personne je revérifie tout ce qui se passe il y a rien qui est anonyme et tout peut être vérifié par tout le monde donc il y en a un qui est très rapide parce qu'il a une grosse machine qui exécute tout l'autre très lent parce qu'il y a plein de petites machines qui réexécutent tout et donc la question c'est comment faire pour avoir un entre deux et pouvoir avoir un réseau rapide mais sécurisé

slide voilà donc soit on peut augmenter la gaz limite du bloc c'est ce qui a été fait dans plein de blockchain mais en fait c'est pas ouf parce que bah tous les gens qui ont des trop petites machines il pouront pas suivre si à la fin on se retrouve avec des blocs énormes il faudra des énormes serveurs pour les process et on retombera sur le les banques donc c'est pas top sinon il y a les fr proof r up donc qui a arbitrum et pas optimism mais en gros on trust un gros ordinateur mais il y a quand même des gens qui peuvent vérifier que ce qui se passe est bon mais encore une fois pas

optimisable ça va revenir vous inquiétez pas top euh et donc nous ce qu'on a c'est des preuves des preuves de calcul des preuves d'exécution comme vous voulez c'est en gros on a un un fait genre une transaction on a un prouveur qui est un gros serveur qui va prouver et on a le verérifier qui va vérifier la preuve c'est un peu similaire au proof of work dans le sens où il y a des machines qui vont travailler pendant un certain temps et vérifier ce que le bah le la preuve ça prend pas longtemps parce que c'est juste recalculer un H donc c'est un peu le même concept et donc on aurait une nouvelle architecture où on aurait une blockchain qui reçit

toutes les transactions S qui reçit qui on exé toutes les transtion le qui va réexécuter toutes ces transaction prouver et on auraif qui va vérifier cette preuve et ça appliquer àum ça donne ça l'ordi va tomber donc on a le prouur au milieu bon je peux pas montrer mais le prou au milieu qui va poster la preuve sur etherum et donc on hérite de la sécurité d'etherum parce que tous les nœuds d'etherum ils vont réexécuter le code du verfier le code du verrifier donc en gros bah tous les ns éum

vérifi starknet merci ok donc on poste sur étherum la preuve mais on poste aussi les state update c'està-dire toutes les variables d'état des smart contract si par exemple dans un contrat on a stocké à l'emplacement 3 on a stocké de et ben on poste sur ethereum update du contrat x 3 2 et donc en fait on peut reconstruire tout l'état de la chaîne seulement à partir d'etherum on a aussi les preuves donc on peut les vérifier et donc on a un réseau qui est complètement trust lest et sécurisé par Le layer OK et donc ça ça nous donne quoi ça nous donne de la puissance de calcul vraiment

pas cher et ça nous permet de faire pas mal de choses notamment le dans le gaming on a une communauté assez active gaming donc c'est dojo je sais pas si ça parle à des gens mais c'est un framework pour faire des jeux c'est dans l'ambiance autonomous World et on a bah en DAP qui existe déjà en abrix c'était un un concept de NFT où où en gros on on pouvait acheter des briques et après on pouvait les assembler et bah du coup créer un peu à la Minecraft créer des des plus gros NFT et ça ça demande énormément de puissance de calcul pour calculer les formes et cetera et ça c'est possible sur sarknet parce que

c'est pas cher sur etherum ce serait vraiment hors de prix on peut avoir de la de Lia Unchain aussi on avait un un bot de trading Unchain fait par module slab et et du coup il tradit en envoyant des messages en L1 donc il était entraîné et on pouvait le ping après il faisait des des trade sur etherum directement gaming art et ceeta on a aussi la comptetration natif donc account abstraction c'est le fait que on n'est pas comme sur etherum on n pas une clé privée et une clé publicque c'est en gros sur starknet tout est un smart contract même les comptes sauf que c'est

les comptes ils ont une interface spécifique ils doivent avoir une fonction de validation et une une fonction pour exécuter donc dans la fonction de validation c'est là où on a l'équivalent de la vérification de la signature sur etherum donc on peut mettre ce qu'on veut si on veut que la validation ce soit bah je connais la préimage de ce h bah en fait on peut l'avir on peut si on veut ne pas vérifier une une courbe spécifique par exemple on pourrait avoir plusieurs schémas de de signature donc bah par exemple vous avez tous un téléphone et il a tous une secure enclave et en gros ça c'est un petit composant sécurisé dans votre téléphone qui a une une courbe

elliptique spécifique et euh du coup dans votre smart contract vous pouvez coder une fonction qui vérifie une signature de cette courbe elliptique et ben du coup vous pourrez vérifier des signature de votre téléphone on a un un Wallet qui a fait ça bravos en gros vous avez une clé qui est Hut Wallet qui peut permettre de faire des transactions là vous pouvez dire bah j'autorise ce type de transaction et cetera ou machin enfin bref et ça la clé elle est stockée sur votre ordinateur et vous avez une master key qui est votre face ID qui vous permet d'envoyer une transaction pour changer la clé hot Wallet et cetera donc ça c'est super pratique vous pouvez aussi avoir des session Keys

c'est ben une en gros vous donnez une signature à une DAP et elle peut la réutiliser pour envoyer des transactions à des contrats spécifiques à des fonctions spécifiques donc ça c'est cool pour les jeux aussi vous pouvez grouper des transactions au lieu par exemple si vous voulez faire un approval un transfert un swap et ben vous faites ça dans la même transaction vous avez pas trois fois assigner une transaction donc en vrai c'est cool pour un peu tous les usages on a aussi un bridge qui est trustless les optimisti rollup c'est sur la ça repose sur la théorie des jeux en gros on St temp et si on fait n'importe quoi en L2 ben on peut se faire slasher ici là c'est sur bah sur starknet et sur zik et

autres en fait tout est prouvé ce qui se passe en layer 2 donc si par exemple moi je dis je veux Bridger de l'Ether sur starknet j'envoie un de l'ther sur un contrat le séquenceur starknet il regarde les events de ce contrat il voit reçu tant de des teres machin il va consommer le message en L2 donc il va exécuter une transaction qui dit Mint tend des terres à ce compte- là et du coup ça va être prouvé par le prouveur ensuite on renvoie la preuve en L1 et c'est vérifié et donc en fait etherum sait que enfin

c'est pas mais on a enfin c'est vérifié que le message a bien été consommé et que on s pas Mint 300 etther parce qu'on avait envie euh chacun peut construire son bridge parce que on a ce système de message qui du coup est assez modulaire il y a snapshotex qui a fait qui a fait une DAP Maker Dao qui a fait son propre Bridge et av aussi vous pouvez aussi faire du Defy pooling avec ça c'est-à-dire bah par exemple si on a tous un EUR et qu'on veut le steak sur Lido et ben si on fait sur etherum Ben 1 € il passe en en gaz si on fait en L2 on se regroupe tous dans une poule on met tous nos 1 € on

arrive avec 100000 € on bridge ça en en L1 et on stake sur Lido et on paye beaucoup moins de fit euh les storage proof aussi c'est important en gros ça ça découle de la computation qui est pas cher du tout les storage proof c'est prouver l'apparten enfin prouver qu'on on a une feuille dans un de Merkel en gros euh en gros si on a la State rot d'therum c'est je sais pas si tout le monde est familiier avec ce que c'est mais en gros c'est en gros étherum c'est un arbre de mercel c'est un arbre et on rehâche tout bref et ça nous donne du coup un hexa et on peut prouver que on a enfin qu'il y a une feuille qui a qui a un

endroit dans cet arbre en donnant tout le chemin et cetera et ce sera reconstruit et ça c'est hyper cher parce que du coup il y a énormément de ha euh et donc surum c'est très cher mais sur starknet c'est possible de le faire et donc en fait ce qu'on peut voir avec ça c'est qu'on peut par exemple dire ben moi je veux Minter 30 et à un mec qui a 30 et sur en en L1 et donc avec cette sage proof donc et ben il pourra la la mettre l'envoyer au contrat sur sur starknet ce sera vérifiable et on pour pouram int 30 et ça c'est si on veut pas utiliser le le bridge mais si

on peut faire la même chose pour Solana on peut faire la même chose sur toutes les blockchains et euh ça peut faire permettre de faire des transactions multichain euh ça hodotus ils font pas mal les les interactions crosschain euh et ben je vous invite à regarder ce qu'ils font parce qu'en vrai c'est assez cool euh ensuite le fractile scaling ça c'est les layers 3 les upchain et cetera en gros chacun peut déployer son upchain bah par exemple on peut mettre un starex sur un starknet il suffit d'avoir un contrat verrifier ENF la même Archie qu'en L1 mais en L2 et ça ça permet d'avoir du coup des des réseaux qui sont qui sont optimisés pour certains

use case donc bah je disais STARC c'est optimisé pour le trading ça permet du coup de d'avoirah par exemple soraire on pourrait le mettre en layer 3 qui se pose sur starknet et ça réduirait encore leur F par rapport à terum parce que la la data availability elle serait beaucoup moins chère et le coût de vérification de la preuve même s'il est marginal ce serait moins cher euh et donc en fait tout ça c'est possible parce qu'on a notre langage de programmation qui s'appelle kairro euh en gros c'est un un langage Turing complete qui euh nativement permet d'être prouvé qui est optimisé pour ça donc par exemple eux ils transpilent du solidity vers leur langage donc ils ont

leur DSL aussi enfin qui est l'équivalent de kairro euh mais ça c'est pas enfin en en soi personne l'utilise ils utilisent que le compiler solidity vers vers Inc voilà euh mais du coup il y a de l'overad parce qu'il faut compiler le le solidity vers le zyc alors que nous cairro il y a pas d'overet c'est nativement euh nativement euh optimisé pour ça mais euh c'est un peu lent parce qu'en fait on a enfin on a notre bte code notre enfin c'est notre langage du coup c'est lent parce qu'on a notre VM qui a une surcouche enfin bref et du coup ce qu'on veut faire c'est le rendre aussi rapide que les autres les autres étant C C++ Go rust et cetera et en fait tous ces langages ils sont

rapides parce que ils utilisent du tooling qui existe depuis super longtemps par que nous on peut pas faire parce qu'on a notre propre langage et en gros ils utilisent tous une représentation intermédiaire qui est LLVM donc représentation intermédiaire LLVM et donc là il y a optimiseur coverage compilation en web assembly en ris 5 enfin bref il y a énormément de tooling et euh du coup on fait un compiler pour euh compiler vers l' LVM et pouvoir ex pouvoir compiler en X6 donc ce qui serait exécuté nativement par les les processeurs et ce qui ferait gagner énormément de tps euh là il y a une petite explication de

comment ça marche je suis pas sûr qu'il y ait des masses de gens que ça intéresse lever la main sur ça ok bon il y en a un ça me suffit euh donc ça en gros c'est un programme Kairo qui est assez débile qui fait 1 + 2 ça c'est sa représentation en Sierra Sierra c'est notre représentation intermédiaire c'est en gros un un ensemble de de de bout de code d'assembleurs ko qui seront toujours prouvables parce que avant en fait on pouvait faire ACERT 1 é= 2 et en fait c'est pas possible de prouver ça donc si on avait une transaction qui était super chère et à la fin il y avait ACERT 1 = 2 bah c'était Rivert mais on pouvait pas l'inclure dans un bloc parce qu'on naurait pas pu le trouver donc le séquenceur bah il se faisait dos et du coup on a créé notre représentation

intermédiaire et donc là on a les types qui sont utilisés dans le programme là c'est les Lip funk donc ça c'est les bout de code casum enfin Kairo assembly qui sont déclarés ici là c'est le corps du programme et en dessous c'est le nom de la fonction avec la ligne où ça commence donc là c'est le main et ça commence line Z0 donc instruction Z0 et ensuite on suit ce qui se passe mais voilà et donc ça c'est le bout de code en LLVM donc là on retrouve un peu tout c'est extrêmement beau mais du coup je vais vous épargner ça euh parce que comme j'ai dit tout à l'heure on a un Optimizer et l'optimizer du coup il

transforme le gros truc dégueu avant en juste euh ça en fait juste le résultat donc un truc qui nous aurait pris beaucoup de temps en Cairo parce Queen fait chaque lipfunk c'est plusieurs instructions Cairo et ben c'est transformer en une instruction une instruction LLVM qui ensuite du coup sera compilée en en natif donc x86 pour être directement exécuté par le CPU euh c'est assez assez rapide parce que sinon c'est assez long mais je vous invite à regarder cette présentation de Akis de lambda class eux il bossent sur Kairo native en gros moi je vous ai parlé de Cairo en

LLVM mais eux ils ont fait enfin de Sierra en LLVM ils ont fait Sira tout ml c'est une autre représentation intermédiaire un peu plus moderne et du coup il qui a fait une présentation qui est assez intéressante à la starknet CC de cet été si vous y étz pas et voilà c'est la fin ça c'est le lien vers le starknet book donc c'est l'équivalent du R mais pour starknet donc si vous voulez commencer quelque part c'est en bon [Applaudissements] [Musique] endroit