Les Amis d'Ethereum France #8.1 — "Why are people excited about ZK rollups" par Henri Lieutaud
Les Amis d'Ethereum France · 29 Nov 2022 · 22:37
A Starknet developer-relations speaker explains why blockchains scale poorly, since every participant re-executes every transaction and raising limits would exclude people with modest machines, and how validity proofs change that. One prover runs a program and produces a proof that Ethereum verifies in a smart contract, so the result rests on mathematics rather than game theory or trust in validators. He then outlines why people are excited: heavy computation for games and simulations, accounts that are all smart contracts and allow fee sponsorship and delegated signing, and a bridge that carries messages and data. The Cairo language is described as new and changing quickly.
Speakers
Topics
From Les Amis d'Ethereum France, hosted by Ethereum France.
Transcript
bonjour à tous et merci de d'être là aujourd'hui et merci a été en France qui nous accueille aujourd'hui qui nous permet de parler un peu de ce qu'on fait chez Star Wars spécifiquement de ce qu'on fait sur Stark net je m'appelle Henri lutho et je suis débat de vocale chez starknet je vais mettre un réveil pour pas prendre trop de temps avec ma présentation tac et mon boulot du coup c'est expliqué aux gens ce que c'est Stark net et comment ils peuvent construire des trucs cool dessus aujourd'hui ce que je vais faire c'est que je vais vous présenter d'abord je vais vous expliquer un peu comment ça marche un relopp et ensuite je vais essayer de vous montrer pourquoi est-ce qu'il y a des gens qui trouvent ça intéressant et qu'est-ce qui sont en train de construire avec si on peut faire un petit tour de table avant qui
ici a déjà écrit un smartphone cool qui sait ce que c'est un rôle up ou une élève de grosso modo qui a une idée de ce qui de comment ça marche un zikiri spécifiquement c'est bien j'espère que bon j'espère que vous apprendrez quand même quelque chose aujourd'hui alors la première question à se poser c'est pourquoi est-ce que les blockchain ça marche pas trop aujourd'hui quand vous y pensez Bitcoin c'est un peu moins de 15 ans ethereum ça a moins de 10 ans cette technique sont super nouvelles et qui pourtant permettent pas du tout de Skyler comme à l'hyper comme vos réseaux de cartes de crédit qui sont basés sur
des techno vachement plus anciennes en fait comment ça se fait pourquoi est-ce que cette technique est vachement plus récente ne fonctionne pas aussi bien que des techno un peu plus Legacy en fait le fond du truc c'est que tout ça est lié en fait au modèle de confiance qu'on utilise dans ces réseaux de paiement dans le réseau Legacy quand vous faites un transaction avec votre banque par exemple quand vous allez envoyer une transaction il y a une entité qui va vérifier si jamais vous avez assez d'argent et qui va la vérifier que la personne de l'autre côté peut recevoir votre argent ok c'est votre banque dans une blockchain ça marche pas tout à fait pareil c'est à dire quand vous allez faire une transaction il y a l'ensemble des participants du réseau qui vont prendre votre transaction l'exécuter et vérifier que vous avez
assez de sous et vous pouvez l'envoyer et là en fait instant instinctivement vous avez une première appréhension une première notion de pourquoi les blockchain ça coûte cher parce que dans un cas il y a une entité ou deux ou trois qui font une transaction qui font une somme de travail et dans l'autre vous en avez des milliers en fait et vous avez des tas de gens qui réexécutent le même travail et en plus de ça c'est réseau là sont intéressants lorsqu'ils sont inclusifs c'est à dire que n'importe qui peut travailler avec son ordinateur participer dans ethereum et auditer l'ensemble du réseau donc ça veut dire que n'importe quelle participant doit pouvoir exécuter l'ensemble de tes transactions du réseau est-ce que vous pensez que sur votre machine vous pouvez exécuter l'ensemble des transactions que process visa dans cette data center tous les jours
probablement pas ou alors vous avez un très bon ordinateur mais a priori vous ne pouvez pas et donc c'est ça qui limite le réseau on pourrait augmenter la limite on pourrait dire ah ben on fait plus de transactions sur ethereum mais du coup deux facto on exclurait tous les gens avec des petits ordinateurs jusqu'à petit à petit reconverger vers 7 à cet état-là ou il y a juste des gens avec des gros ordinateurs et tous les autres sont obligés de leur faire confiance donc comment est-ce que fonctionnent les écureuils la question c'est comment est-ce qu'on fait pour scaler et passer à l'échelle tout en gardant ses propriétés qui permettent à tout le monde d'avoir une garantie que ce qu'on lui donne comme information est juste sans avoir à faire confiance à qui que ce soit sans avoir à faire confiance
dans le fait que votre banque est étonné ou c'est pas trompé dans les comptes alors je vais vous introduire ici une petite brique que vous allez mettre dans votre tête au même endroit que là où vous mettez les signatures dans ethereum où les fonctions de hachage par exemple vous savez qu'une fonction de la charge c'est un instrument mathématique qui vous permet de mettre de la donnée de l'autre côté vous avez une empreinte digitale numérique et vous savez il y a différentes propriétés vous savez qu'à l'intérieur c'est des maths vous pouvez voir comment ça fonctionne mais bon pour vous en servir dans la blockchain vous avez pas forcément besoin de savoir exactement ça commence à fonctionne voilà vous allez faire la même chose une preuve de calcul ou une zik et une preuve Stark c'est un outil mathématique
qui me permet à moi d'exécuter un programme et d'arriver à un output pour ce programme et de vous donner et de générer la output et une preuve d'exécution je vais vous donner cette preuve d'exécution je vais vous donner le programme et je vais vous donner la output et vous vous allez pouvoir utiliser la preuve pour vérifier que j'ai exécuté le programme correctement et que je suis arrivé à la haute que je vous ai donné c'est ni plus ni moins que ça en fait pourquoi est-ce que c'est intéressant parce qu'en fait moi je peux utiliser un très gros ordinateur qui fait un programme très complexe et vérifier la preuve ça va être vachement plus simple pour vous que d'exécuter le programme lui-même vous connaissez le programme mais vous n'avez pas besoin de
l'exécuter je prends un exemple imaginez que je veux faire un un effet avec de l'art génératif et que sur ma machine ça prend 100 ans d'exécuter ce truc là qu'est-ce que c'est mon réflexe je vais aller l'envoyer sur un je vais faire tourner un noeud un ordinateur chez Google je vais exécuter mon truc d'art génératif là-bas et je vais recevoir le résultat en fait j'ai aucune garantie que ils ont exécuté mon programme normalement j'ai juste la dans ce cas là en fait avec cet outil là google va pouvoir exécuter votre programme et vous donner la output et une preuve que le programme a été exécuté correctement OK dans un certain sens c'est un peu comme prof of work dans prof of War pour ceux
qui sont familiers avec ça vous avez des gens qui exécutent une certaine quantité de travail vous êtes certains qu'ils ont fait cette quantité de travail mais vous avez pas besoin de refaire la même quantité de travail pour être certain qu'ils sont arrivés à ce résultat là OK et une inscrit entre la personne qui fait le travail et la personne qui le vérifie ce que prof of work fait à la sécurité d'un réseau comme Bitcoin ou les terrains les preuves de calcul comme les icstark permettent de le faire pour l'exécution de Smart contract lorsque vous ayez lorsque vous faites tourner un noeud sur ethereum vous pouvez vérifier qu'il y a une quantité de travail qui allait pour sécuriser le réseau et vous avez pas besoin de réexécuter cette quantité de travail dans un réseau avec des équica mais par contre surhum vous êtes quand même
obligé de réexécuter toutes les transactions pour vous assurer que l'État un instant T et le bon bah dans un réseau Zig et Stark vous êtes pas obligé de rééjecter toutes les transactions vous pouvez juste prendre la preuve et l'état final et vous êtes certain vous avez une preuve mathématique qu'il y a que tout a été exécuté correctement et ça du coup en fait c'est utiliser ça peut permettre parce qu'en fait l'autre truc qui est cool c'est que l'histoire de générer une prouve une preuve et puis vous pouvez la vérifier bah ce programme qui va vérifier la preuve c'est un programme et vous pouvez le coder dans un smart contracte donc sur ethereum aujourd'hui il y a un smart contracte qui est capable de vérifier des preuves Stark qui sont envoyées par starknet ou parkex et qui vont prouver qu'il y a eu un ensemble de transactions qui ont été
exécutés correctement selon le programme qui a été défini mais sans que le réseau était Rome ait besoin de les exécuter à ma connaissance c'est la seule instance de ethereum qui comprend ce qui se passe sur un autre réseau sans avoir besoin de faire confiance à un validateur parce qu'en fait quand vous prenez un tas d'autres réseaux qui fonctionne en dehors des terrarium ils vont régulièrement pousser une update sur la terreur en disant tiens il s'est passé ça sur le réseau à côté ethereum à aucun moyen de vérifier que c'est ça en fait seul garantie qu'il a c'est que les gens qui font ça s'il trichent et quelqu'un arrive à le prouver ils vont perdre leur ils vont pas perdre leur steak autrement dit ils sont sécurisés par de la game théorie de la théorie des jeux pas par des
mathématiques bah là du coup c'est vraiment sécurisé par des mathématiques ok juste ici ça va bon alors maintenant qu'est-ce que c'est Stark net starknet c'est une aile 2 sur ethereum c'est un réseau qui vous permet d'écrire des smart contractes qui vous permet de faire des smart contracts qui sont pas chers la raison pour laquelle ils sont pas chers c'est parce que au lieu d'avoir tout un ensemble de participants qui exécutent le Smart contract pour s'assurer qu'ils ont tous la même vision du monde vous avez une entité qui a besoin de l'exécuter générer la preuve pour cette vision du monde et tous les autres ont juste besoin de vérifier la preuve pour s'assurer que tout va bien ok du coup ça permet de faire de la scalabilité sur plusieurs axes c'est
assez intéressant en fait on peut ça en fait ça permet de faire à l'exécution sur ethereum ce que prof of War permet de faire à la sécurité c'est-à-dire ça permet de spécialiser certains acteurs dans certaines branches et des acteurs qui sont spécialisés sur la sécurité du réseau voilà vous allez avoir des acteurs qui vont se spécialiser sur l'exécution et la puissance de calcul du réseau alors vous avez peut-être entendu parler de Kairo parce que en fait tout ce dont je vous ai parlé là l'instrument mathématique les stars à sa base c'est une théorie mathématique qui s'exécute sur un substrat un peu particulier je vais pas rentrer là-dedans je vais pas trop compliqué ça sachez juste que il y a un langage de programmation spécifique à starknet qu'on n'a pas inventé parce qu'on avait
envie si on avait pu faire solidity on aurait fait solidity mais pour des raisons d'efficacité et de sécurité il a fallu qu'on crée un nouveau langage de Smart contracte qui s'appelle skyro qui permet d'écrire des programmes d'ailleurs en fait qui a un langage général Pope c'est pas juste un langage de programme de Smart contracte c'est un langage de programmation qui vous permet d'exécuter des programmes et de prouver que vous avez exécuté correctement OK et du coup quand vous exécutez un programme kaero la preuve d'exécution peut être vérifiée par les erreur ce qui est plutôt cool et donc en fait techniquement qu'est-ce que c'est starknet starknet c'est un réseau comme étant avec des nœuds qui vont exécuter qui vont avoir des blocs ok qui vont
avoir des transactions avec des smart contractes et le code de ce nœud est écrit en Kairo en fait c'est pas juste un langage Smart contracte le réseau lui-même est écrit en kaéro ok donc c'est comme un os qui peut exécuter des sous routines en Kaïro qui sont vos Smart contractes en l'occurrence et du coup à chaque fois que starknet passe d'un bloc 1 à un bloc 100 il peut générer une preuve que tout ça c'est fait selon les règles qui ont été prédéfinies avec tout le monde et cette preuve là elle est envoyée par ethereum et elle est vérifiée et c'est ça qui permet de ce qu'elle est vraiment alors du coup vous avez à peu près la théorie maintenant j'essaie de parler de pourquoi est-ce qu'il y a des gens qui
s'intéressent à ça et pourquoi est-ce qu'il y a des gens qui sont super saucés sur les écureuils et notamment sur starknet alors le premier c'est que quand vous avez ce modèle là bas comme j'ai dit ça permet de spécialiser les acteurs vous allez avoir des gens qui vont se spécialiser sur moi je fais de la puis je enfin vous allez avoir des gens qui vont faire enfin qui vont rendre un service au réseau comme les miners pour la sécurité et ce service ça va être ben moi je vais exécuter une énorme puissance de calcul et vu que cette puissance de calcul là elle exécutée par qu'une seule machine et qu'on n'a pas besoin de leur faire confiance on sait juste on a une preuve mathématique et bah ils peuvent avoir des mégas méga serveurs pour l'exécuter autrement dit vous pouvez imaginer utiliser dans vos Smart contracte le
résultat d'un calcul qui a été fait par un super calculateur de façon trop classe ça si vous avez déjà un peu codé en solity déjà vous vous dites Audity enfin le VM c'est pas ultra puissant on peut pas faire un méga on peut pas faire beaucoup de puissance de calcul mais il y a beaucoup de gens qui se chauffent là-dessus et qui sont en train de se dire ah mais d'un coup on a plus de puissance de calcul qu'est-ce qu'on peut faire avec ça et du coup vous avez beaucoup de gens qui travaillent sur du gaming par exemple qui vont commencer à faire plutôt que d'avoir juste des échanges d'assets sur leur jeu ils vont avoir aussi genre leur gameplay en fait ils vont pouvoir mettre des interactions un peu complexes entre je peux pas prendre un selfie je veux voir combien de temps j'ai pris un instant voilà ils vont ils
vont commencer à il commence à mettre du gameplay vraiment intéressant l'exemple que je prends souvent c'est Worms 2 si jamais je vous demande de faire Worms 2 il y en a qui ont joué à Worms ici bon ça va je suis pas trop vieux si jamais vous avez joué avant de dire va implémenter Worms 2 dans un smart contract vous allez me dire ok je peux faire une market place pour les pour les armes je peux faire je peux compter les points avec un inverse 20 par contre la trajectoire du bazooka qui va ensuite tomber sur la main et puis tous les schrafnels la trajectoire individuelle de tous les chapelle et des dégâts qui vont avoir sur la map il y a pas moyen que vous fassiez dans un smart contracte ça va vous coûter beaucoup trop cher bah là vous pouvez imaginer le faire toute
cette complexité là vous pouvez imaginer la mettre dans vos contrats et avoir un gameplay qui est beaucoup plus riche enchaîne il y a des gens qui font de l'Aïd de l'intelligence artificielle sur Stark net vu qu'ils ont de la puissance de calcul et bah ils peuvent se permettre d'entraîner des réseaux de neurones et d'avoir du coup derrière des des réseaux qui s'exécutent selon un set de paramètres qui est fixé pour tout le monde et vous avez gala la garantie que lorsque vous passez un input dans le réseau il est exécuté de la même façon pour tout le monde c'est assez puissant je l'ai mentionné un peu plus tôt mais il y a plein de gens qui s'en servent aussi pour faire de leur génératif en fait vous pouvez faire plein de trucs intéressants pour faire de la génératif et avoir ça qui est directement embête
dans votre NFC plutôt que de devoir mettre un lien vers un truc externe vous avez aussi des gens qui travaillent sur faire des simulations des simulations de monde en fait il y a des types qui sont en train de qui ont réimplémenté le problème à trois corps et qui permettent d'avoir du coup une équation d'un système complexe chaotique j'en parlais plus à ceux qui s'intéressent après ok donc on peut faire plein de calculs il y a des gens qui sont super excités à cause de ça le deuxième truc pour lequel les gens sont super excités sur Stark night c'est ce qu'on appelle le 40 abstraction ça c'est un petit peu plus bizarre à expliquer et c'est pas une exclusivité des equirolles ça c'est un truc dont on bénéficie parce que notre réseau est plus jeune et que on est on se tient sur les épaules de
géant comme Bitcoin ethereum et que on voit ce qui a marché et ce que les développeurs ont rétrospectives auraient aimé implémenter dès le début le concept de la carte abstraction c'est que la façon dont vous authentifiez sur la terrame c'est avec une clé privée et une clé publique et tous vos actifs sont détenus par cette clé publique vous entendiez auprès du réseau et auprès des smart contracte dans le réseau de la même façon dans Stark net on a abstrait la notion de qui vous permet de vous authentifier auprès des smart contracts en disant les gens en fait vont s'authentifier du réseau via un smartphone donc plutôt que d'avoir une clé publique qui vous entendifie vous allez avoir un smart contracte qui vous authentifie
vous vous allez vous authentifier auprès de votre smart contracte et ensuite ce Smart contracte là il interagit après le monde avec le monde dans Stark net s'il y en a qui ont déjà utilisé argent c'est la même idée ok c'est exactement ce qu'ils sont en train de faire ce sont des smartwatts mais nativement dans starknet tous les comptes sont des smart contractuels et ça marche bien parce que vu que le calcul la puissance de calcul est pas très cher vous pouvez vous permettre de faire ce genre de truc et c'est pas très cher d'interagir avec un smart contractuel plutôt que avec une juste une clé publique ce qui est super cool avec ça alors qui construit ça on a deux extensions qui fonctionnent vous avez argent X par l'équipe d'argent et bravo et en fait ça permet de faire plein de trucs hyper intéressant comme par exemple à partir
du moment où votre Wallet c'est un smartphone imaginez que vous êtes une arme et que vous voulez un Border plein de gens qui ont jamais utilisé les terrains c'est quoi le premier truc qui va être super chiant c'est qu'il va falloir que vous leur fassiez acheter de l'éther pour qu'il puisse payer des frais de transaction ça va rajouter de la friction et vous allez en perdre un bon paquet bah là en fait avec ça vous allez pouvoir vous permettre de juste dire attendez vous gardez vos clés mais vous prenez pas la tête avec le gaz moi je le paye pour vous donc vous signez votre transaction moi je la broadcast depuis mon compte à moi je paye pour les transactions pour eux mais les utilisateurs restent en full Costil leur en possession complète de leur de leurs actifs ça c'est super cool on peut imaginer aussi pour du gaming par
exemple de déléguer sa capacité de signature pendant un temps donné sur certains actifs enfin sur certains actifs ou sur avec une limite pour les actifs ou dans un certain contexte pour certains Smart contracte et du coup ça fait aussi le flow parce que plutôt que d'avoir assigné plein de transactions vous pouvez faire en sorte de dire bah moi je vais jouer pendant une demi-heure tac je donne l'accès à à commettre par exemple qui va faire plein de transactions pour mon compte pendant un certain temps et à la fin taxe est révoqué c'est un truc sur lequel il y a plein de trucs hyper intéressant à imaginer il y a plein de gens qui se qui se chauffent là dessus le troisième truc intéressant c'est le bridge le bridge qu'on utilise rappelez-vous ce que je vous ai dit tout à l'heure quand ethereum reçoit une preuve d'exécution de Stark net il y a
besoin de faire confiance à personne le bridge il est passé sécurisé par de la théorie des jeux il était sécurisé par des mathématiques ça fait qu'en fait l'information qui passe entre starknet ethereum et intrinsèquement plus safe que ce qui passe par des validateurs et en plus de ça le bridge qu'on a implémenté c'est pas un bridge pour faire passer des actifs c'est un bridge sur lequel vous pouvez faire passer de la data vous pouvez voir passer des messages de l'un à l'autre donc vous pouvez construire votre propre bridge par dessus ça veut dire que vous pouvez décider d'utiliser le bridge de quelqu'un d'autre ou vous pouvez décider de par exemple implémenter un truc où vous allez avoir vos actifs sur la L1 et la gouvernance de votre Daho sur la L2 ok donc le fait d'avoir un bridge qui
est versatile et transless c'est un outil aussi super intéressant pour les bulles j'ai mis ici Maker et avait parce que il y a ces deux équipes là qui sont en train de bosser sur ce sujet là et qui regarde comment ils peuvent enfin déjà par exemple typiquement Maker ils avaient pas envie d'utiliser un bridge qui est opéré par quelqu'un d'autre que ils ont implémenté leur propre Bridge pour le die stylé il y avait ils sont en train de réfléchir à comment est-ce que ils peuvent donner accès pour pas cher sur la L2 aux gens mais avec de la liquidité ce qui est sur la L1 autrement dit ils vont pas donner sur la L2 ils vont donner aux gens accès à des poules qui sont sur la L1 c'est pas des poules qui sont sur les deux il y a pas de fragmentation des limitée de
liquidité vous avez accès directement à la liquidité qui est sur la L1 le quatrième truc que les gens sur lequel les gens s'intéressent les compliqués allez je vais faire vite fait non en fait d'ailleurs je vais pas le présenter celui-là si jamais ça vous intéresse venez on en parle venez à noseurs aller jeter un oeil sur Internet nous on est super chaud pour parler avec tout le monde quatrième truc dont je voulais parler c'était les story je trouve mais je vais pas vous en parler et le cinquième truc dont je voulais vous parler c'était le fractal scaling autrement dit la récursion la capacité de vérifier un réseau Star dans un réseau Start et c'est pareil je vais pas vous en parler si vous voulez en savoir plus venez nous voir là on est là il y a moi il y a Lucas qui est là et puis il y
a plein de membres de la communauté là il y a qu'est-ce qui est déjà fait du Kairo ici ah bah voilà oui oui tout cela vous pouvez leur poser la question ils vont vous dire genre c'est un peu chaud Karo mais bon ça vaut le coup donc n'hésitez pas à aller leur poser des questions c'est cool et on fait un Meetup le 20 septembre pas très loin d'ici et ça va être cool et ma dernière salade ça va être World white start où est-ce que je commence mais si vous êtes un dev là je vous ai mis deux QR code que vous pouvez flasher on a des tutoriaux en ligne qui vous permettent d'essayer de vous familiariser avec les bases de Kairo le premier qui est en haut c'est vraiment un truc vous avez pas besoin d'écrire du Smart contracte ça va juste vous permettre de lire comment ça se
passe dans un contrat aéro qu'est-ce que c'est la syntaxe et pourquoi c'est différent de solidité c'est pas très différent et du coup vous allez voir comment ça marche le deuxième juste en dessous c'est l'organisation GitHub que nous on a à Stark net idiot avec un palanquet de smartphone de pardon de tutoriaux vous allez pouvoir utiliser il y en a un qui va vous expliquer comment déployer un inverseur il y en a un qui va vous déployer comment déployer un ERCC 121 il y en a un qui va vous expliquer comment construire votre propre bridge il y en a un qui va vous expliquer comment créer votre propre Smart contractuel il y en a un autre qui vous donne des Best Practice sur comment débloquer vos contrats et du coup bah choisissez le thème qui vous intéresse jeter un oeil dessus et puis venez de voir si vous avez des questions
et j'y suis je crois que j'ai fait 20 minutes je suis content parce que du coup est-ce que vous avez des questions le langage est assez récent effectivement alors au niveau des librairies c'est une très bonne question donc effectivement qu'un héros Cairo je crois que ça date de 2020 2021 un truc comme ça donc c'est très récent et le langage est encore en train d'évoluer très vite il y a plein de normes qui changent il y a des nouveaux fonctions qui arrivent la syntaxe vient d'un peu changer elle va encore changer d'ici décembre au niveau de l'écosystème et des librairies on travaille avec Open Zeppelin le RC 20 le rc720 que j'ai mentionné il a écrit par open Zeppelin
ils sont en train de bosser sur tous les trucs standards que tu peux utiliser sur solidity pour faire en sorte que tu puisses les utiliser et du coup il y a un paquet de librairie comme ça qui sont portés par des devs de la communauté et puis il y a aussi un tas de librairie qui sont pas vraiment implémentables en solidy parce que c'est trop cher et que les gens implémentent dans le cadre du coup il y a plein de trucs à creuser c'est assez marrant tout ce qui est gouvernance les différents types de token open Zeppelin c'est pas encore mais tu pourras retrouver une bonne partie et je crois sur le gouvernance il y a des gens qui bossent dessus sinon fais-le toi ça sera trop bien il y avait une autre question ça veut dire quoi [Musique] je suis pas sûr de pouvoir donner une
définition précise de Turing complet là comme ça qui satisfait tout le monde mais grosso modo ça c'est un langage de programmation arbitraire ça te permet de programmer vraiment ce que tu veux en fait ce qu'il y a d'autres questions c'est trop bien j'étais super clair vous avez tout ce compris super et ben écoutez merci beaucoup pour votre attention et au plaisir de parler avec vous un peu plus tard [Applaudissements]