Initialement publié en anglais par StarkWare le 31 août, 2020
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.
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.
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”.
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.
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é 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 :
Reddit Bake-Off :
Avec le reste de l’écosystème, nous avons rapidement complété le Great Reddit Scaling Bake-off. Merci Cairo:
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