Hello, Cairo !
0x568B
July 4th, 2022

Initialement publié en anglais par StarkWare le 31 août, 2020

TL;DR

Cairo est la première plate-forme de production pour la génération de preuves STARK, pour le calcul général. C’est Turing Complete, et très efficace. Tout ce que nous avons construit — à commencer par notre soumission “Reddit Bake-off” — est écrit en Cairo, y compris tous nos prochains déploiements : DeversiFi, Immutable et dYdX.

Peu importe vos besoins de calcul et de stockage, si vous voulez une grande scalabilité à faible coût de gas sur Ethereum, Cairo peut être utile. Au cours des prochains trimestres, nous commencerons à proposer des outils de développement Cairo; en attendant, nous vous invitons à venir échanger avec nous du développement de votre application.

Background

The Great Reddit Scaling Bake-off a été une étape importante pour nous chez StarkWare. Pas tant à cause de ce que nous avons réalisé – 300 000 transactions dans une seule preuve STARK – mais plus à cause de la façon dont nous y sommes parvenus. Le “Reddit Bake-off”, a été la première fois que nous avons déployé Cairo, notre plate-forme Turing-complete¹ de production de preuves STARK pour le calcul général, sur Ethereum Mainnet. Nos prochains déploiements Mainnet seront tous basés sur Cairo, y compris :

Cet article : (i) explique la nécessité pour Cairo, (ii) décrit ses innovations, ses capacités et son efficacité de scaling et (iii) discute des prochaines étapes de notre roadmap pour partager la boite à outils Cairo avec la communauté des développeurs.

Le Besoin : Production-Grade Turing-Complete STARKs

Nous nous sommes concentrés sur la résolution des problèmes de scaling depuis notre création en 2018, en commençant par Ethereum. Nous nous sommes rendu compte très tôt que les Validity Proofs sont une solution de scaling puissante et que les STARK sont idéalement positionnés pour résoudre la scalabilité pour le calcul général. Rappelons le concept général : un Prouveur off-chain qui traite de gros calculs (comme de grand lots de transactions) et produit des preuves de validité exponentiellement plus petites, qui sont à leur tour vérifiées on-chain.

Chacun de nos partenaires dispose d’un calcul unique qu’ils doivent transférer a L2 (Layer 2). DeversiFi prend en charge le spot trading. Immutable supporte le minting et le trading des NFT, et dYdX exécute les Contrats Perpétuels. La création d’un système STARK² « manuscrit » personnalisé pour chacun de ces projets prendrait beaucoup de temps, tout comme la construction d’un « ASIC » dédié pour chaque calcul. C’est pourquoi nous avons développé Cairo afin de développer notre activité et de supporter une grande vitesse de fonctionnement, un système Turing-complet STARK L2 est nécessaire. Cairo signifie CPU Algebraic Intermediate Representation (AIR), et inclut un AIR unique qui vérifie le jeu d’instructions de ce “CPU”.

La solution : Cairo – Un AIR pour tous les gouverner

Cairo rejoint une liste importante d’outils qui construisent des preuves scalables et/ou zero knowledge (ZK) pour le calcul général. Tous les systèmes précédemment déployés sur testnets ou mainnet peuvent être classés comme «bibliothèques pour circuits d’écriture»³. On peut aussi les considérer comme l’équivalent d’outils pour créer un «ASIC» pour un calcul particulier. Cairo est un cas fondamentalement différent. L’introduction de Cairo peut être considérée comme le passage de ”ASIC” à “CPU”.

Cairo est le premier système de preuves de production à implémenter une Architecture Turing Complete von Neumann : chaque programme Cairo P réside dans la mémoire de la machine virtuelle, avec les données D traitées par celle-ci. Cairo est livré avec un seul AIR (et donc un seul Vérifieur – dans un smart contract, WebAssembly, etc. ) qui peut vérifier n’importe quel programme Cairo. À savoir que l’AIR de Cairo vérifie l’intégrité computationnelle de l’exécution P sur D, et l’exactitude de l’état post-exécution du système.

Avec Cairo, une nouvelle business logic ne nécessite pas un nouveau smart contract, elle nécessite seulement un programme Cairo différent. Par conséquent, la business logic et le système de preuve sont clairement délimités.

Un AIR unique pour les régir tous a une implication profonde : on pourrait utiliser une seule preuve pour affirmer l’intégrité d’un tas d’exécutions de programmes différents. Par exemple, une enchère scellées basée sur VeeDo, le mint d’un lot de cartes Gods Unchained, et un autre lot de trades dYdX, pourraient toutes être validées en une seule preuve ! Nous appelons cette fonctionnalité un Generic Proving Service (GPS), et vous en apprendrez plus à ce sujet sous peu.

Le Language Cairo

Les programmes Cairo sont écrits dans un langage de programmation de type assemblage qui a les caractéristiques suivantes : mémoire, appels de fonction, récursion et conditions de branchement. Il utilise également des «astuces» côté Prouveur pour créer des raccourcis et activer certains calculs. Lorsque nous disons que Cairo est production-grade, nous ne faisons pas uniquement référence à nos prochains déploiements Mainnet – nous faisons référence au puissant environnement de développement que nous avons construit pour lui, y compris un compilateur du langage Cairo au code octet Cairo, une machine virtuelle qui simule les exécutions Cairo, un debugger, l’intégration d’un IDE (Integrated development environments) et le smart contract Vérifier mentionné ci-dessus écrit en Solidity.

Nous publierons prochainement un whitepaper détaillant la philosophie du design de Cairo, ainsi qu’une spécification complète de ce nouveau langage de programmation. Et, dans les prochains mois, nous commencerons à publier des outils pour écrire, débuguer et exécuter des programmes Cairo (abonnez-vous pour des updates).

L’efficacité et la sécurité de Cairo

L’efficacité et la sécurité peuvent être considérées dans le cadre des mathématiques impliquées (AIR), ou de l’implémentation technique (Verifier smart contract, pour Ethereum) – Cairo aide sur les deux fronts.

L’AIR Cairo est relativement simple, ce qui se traduit par une efficacité et de faibles coûts amortis tant pour le vérifieur on-chain que pour le service de proving off-chain. Elle mène également à une sécurité accrue, car la vérification d’une seule AIR simple est plus sécuritaire que la vérification de plusieurs AIR complexes propres à une application.

Ainsi, avec Cairo, nous pouvons compter sur un seul Verifieur smart contract; il n’est plus nécessaire de déployer un Verifieur pour chaque application utilisée. Notez les implications sécuritaires de cette propriété : un ensemble unique d’audits pour ce contrat protège n’importe quelle application contre le risque du système de preuves, ce qui leur permet d’auditer uniquement la business logic. En ce qui concerne la business logic, il est beaucoup plus facile de comprendre et de vérifier l’exactitude du code que de comprendre l’AIR propre à une application.

Pour comprendre l’efficacité concrète de Cairo mesurée sur des cas d’utilisation réelle, regardons deux exemples :

DeversiFi :

Le système StarkEx qui alimente actuellement DeversiFi 2.0 sur Ethereum Mainnet est un système “ASIC” STARK. Nous avons implémenté le même StarkEx sur Cairo, l’avons exécuté sur testnet, et comparé les deux systèmes. Comme c’est souvent le cas, les CPUs sont plus lents que les ASICs. Mais dans notre cas, grâce à de puissantes optimisations Cairo, la différence est négligeable :

  • Le Prouveur Cairo est 30% plus lent que l’actuelle implémentation “ASIC”
  • Le Vérificateur consomme seulement 3% de gas en plus

Reddit Bake-Off :

Avec le reste de l’écosystème, nous avons rapidement complété le Great Reddit Scaling Bake-off. Merci Cairo:

  • Nous y sommes arrivés avec une efficacité inégalée : notre capacité à regrouper les 300k txs en une seule preuve, y compris les données d’appel agrégées (représentant par lot seulement les comptes modifiés et non chaque tx) – ceci est le résultat direct de la programmabilité de Cairo et de la facilité avec laquelle les optimisations algorithmiques peuvent être récoltées. Nous avons terminé le tout en 6h03 minutes. A noter : une programmation de plus haut niveau permet d’ajouter facilement des optimisations, qui dépassent souvent la “pénalité” du CPU mentionnée ci-dessus. Ainsi, dans de nombreux cas, la mise en oeuvre de Cairo peut se révéler plus efficace que ce qui aurait été obtenu autrement avec une AIR sur mesure.
  • Nous y sommes arrivés rapidement : peu ont remarqué que notre seule preuve avait été soumise au Mainnet le 15 juillet, deux semaines avant la date limite d’un sprint de six semaines. C’est une indication des merveilles que Cairo peut faire pour la vitesse des fonctions.

Le chemin à parcourir

Nous prévoyons de mettre Cairo et les capacités GPS – développées par nous et d’autres – à la disposition de la communauté des développeurs. Nous avons l’intention d’offrir des outils de développement puissants. Nous prévoyons de développer des compilateurs à partir de langages de haut niveau jusqu'à Cairo. Nous mettrons notre environnement de production basé sur le cloud à la disposition de tous les développeurs. Cela demandera des efforts et des ressources considérables – Cairo ne se bâtira pas en un jour. Au lieu de cela, nous introduirons de nouvelles générations de Cairo à une fréquence régulière, ce qui offrira des fonctionnalités améliorées, de meilleures performances et des optimisations puissantes.

Actuellement, nous alimentons Cairo et l’améliorons chaque semaine, en collaboration avec nos partenaires DeversiFi, Immutable et dYdX. Si vous voulez construire sur Ethereum aujourd’hui, et que vous êtes retenus par la scalabilité et la hausse des prix du gas, si vous voulez construire une véritable entreprise qui nécessite des outils de qualité de production avec une vitesse de fonctionnalité élevée, rejoingnez-nous.

Twitter : StarkWare, email : info@starkware.co

Merci à Bobbin Threadbare et Georgios Konstantopoulos pour leurs commentaires avisés sur un brouillon de cet article.

Lior Goldberg, Shahar Papini, Michael Riabzev, et Eli Ben-Sasson

¹Nous utilisons le terme dans son sens familier, comme couvrant tous les calculs généraux du monde réel.

²Plus précisément, ce qui diffère d’une application à l’autre est la représentation algébrique intermédiaire (AIR), qui est l’analogue STARK des circuits arithmétiques et des systèmes R1CS utilisés dans les SNARKs.

³Comme catégorisé par zkp.science

Traduction faite par @Theyozz

Arweave TX
aOlXaqjFIUWUJV58X1q4lMDMSk5u3yLqmjxi64xjuMo
Ethereum Address
0x568B12eBBE85521D2cd8a2C9B7a8EF3f48aa2d66
Content Digest
4vONmRl7hvWra6q5fDzKQZmLE4uFD71m6pLHEZDeH0A