Hello, Cairo !
Initialement publié en anglais par StarkWare le 31 août, 2020TL;DRCairo 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...
StarkExchange
Initialement publié en anglais part StarkWare le 10 juin, 2019 L’avenir du Trading Crypto Les traders et les consommateurs sont sur le point de vivre un changement radical dans le trading des crypto-monnaies. Les traders pourront trader de la manière la plus intuitive qui soit : directement à partir de leurs propres wallets, en conservant la garde de leurs titres à tout moment et en puisant dans les réserves de liquidités offertes par les exchanges centralisées (CEX). En outre, les fonds des ...
StarkEx 3.0 maintenant disponible sur le Mainnet
Initialement publié en anglais par StarkWare le 27 Juillet, 2021Permettre aux utilisateurs L2 d'interagir facilement avec le L1RésuméStarkEx 3.0 est disponible sur le MainnetCaractéristiques principales : L1 Vaults & SHARP (SHARed Prover)L1 Vaults : Les adresses Ethereum (plus précisément, les smart contracts) peuvent désormais intéragir avec les utilisateurs de StarkEx en possédant un vault L1, ce qui permet le DeFi Pooling et le dAMM (anciennement Caspian)Une nouvelle capacité batch-lo...
<100 subscribers
Hello, Cairo !
Initialement publié en anglais par StarkWare le 31 août, 2020TL;DRCairo 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...
StarkExchange
Initialement publié en anglais part StarkWare le 10 juin, 2019 L’avenir du Trading Crypto Les traders et les consommateurs sont sur le point de vivre un changement radical dans le trading des crypto-monnaies. Les traders pourront trader de la manière la plus intuitive qui soit : directement à partir de leurs propres wallets, en conservant la garde de leurs titres à tout moment et en puisant dans les réserves de liquidités offertes par les exchanges centralisées (CEX). En outre, les fonds des ...
StarkEx 3.0 maintenant disponible sur le Mainnet
Initialement publié en anglais par StarkWare le 27 Juillet, 2021Permettre aux utilisateurs L2 d'interagir facilement avec le L1RésuméStarkEx 3.0 est disponible sur le MainnetCaractéristiques principales : L1 Vaults & SHARP (SHARed Prover)L1 Vaults : Les adresses Ethereum (plus précisément, les smart contracts) peuvent désormais intéragir avec les utilisateurs de StarkEx en possédant un vault L1, ce qui permet le DeFi Pooling et le dAMM (anciennement Caspian)Une nouvelle capacité batch-lo...
Share Dialog
Share Dialog
Initialement publié en anglais par StarkWare le 12 septembre, 2022.

Cairo 1.0 est la première version majeure après l’introduction de Cairo il y a deux ans
Cairo 1.0 donnera aux développeurs un langage de programmation plus sûr, plus simple et plus conviviale
Au cœur de Cairo 1.0 se trouvera Sierra, une couche de représentation intermédiaire qui promet une plus grande stabilité à long terme pour les programmes Cairo.
Sierra fait progresser Cairo pour servir dans un réseau permissionless :
Protéger le réseau : il permet une protection DoS plus robuste
Protéger l’utilisateur : il permet un censorship resistance de même niveau qu’Ethereum
Cairo 1.0 affectera StarkNet de plusieurs façons. Cela aura aussi un effet sur Regenesis. Nous publierons plus d’informations sur Regenesis dans les prochaines semaines.
En 2020, nous avons sorti Cairo, un langage de programmation Turing-complet, et avons fait un grand pas vers la prise en charge du calcul vérifiable avec STARKs. Aujourd’hui, nous annonçons Cairo 1.0, la plus grande avancée de Cairo à ce jour. Il introduira un langage amélioré, avec des fonctionnalités qui amélioreront la convivialité, la sécurité et la commodité. Il est conçu pour soutenir les besoins de StarkNet en tant que réseau permissionless, permettant au protocole de devenir plus simple et plus sûr. Le développement est déjà en cours, et nous espérons que la première version aura lieu prochainement.
Dans cet article, nous allons décrire le voyage de Cairo jusqu’à présent et partager les détails sur les prochaines fonctionnalités.
Jusqu’en 2020, des connaissances de niche étaient nécessaires pour construire des programmes de calcul général vérifiables par STARK. Ce n’était possible que pour ceux qui comprenaient les mathématiques complexes derrière STARKs. Plus précisément, pour chaque business logic, c’est-à-dire chaque calcul, il fallait générer une représentation algébrique intermédiaire (AIR) – un ensemble de contraintes polynomiales représentant le calcul spécifique.
Cairo est né de la prise de conscience que le calcul vérifiable devrait être mis à la disposition des développeurs du monde entier. Cairo permet aux développeurs d’exploiter la puissance des STARKs.
La communauté des développeurs a depuis saisi Cairo pour construire avec enthousiasme. Tout dans l’écosystème florissant de StarkNet aujourd’hui est basé sur Cairo. Entre StarkNet et StarkEx, Cairo alimente ses applications qui ont traité plus de 220M transactions, mint plus de 65M NFTs, et manipulé $700B de transactions, tous réglés sur Ethereum.
Bien que Cairo ait rendu STARKs accessibles, il a été conçu à l’origine comme un langage d’assemblage, et en tant que tel, il a été écrit comme un langage de bas niveau.

Encouragés par les commentaires des développeurs et la montée de StarkNet, nous avons progressivement rendu Cairo plus expressif et plus convivial pour les développeurs.

Mais nous avons vite conclu qu’il était temps de faire un grand bond en avant et, au lieu d’améliorer progressivement la situation de Cairo, opter pour une transformation plus audacieuse.
Pour Cairo 1.0, nous avons construit un tout nouveau compilateur à partir de zéro, qui fournira aux développeurs des fonctionnalités de sécurité, et leur permettra d’écrire des contrats d’une manière plus simple et plus expressive.
Présentation de Sierra : s’assurer que chaque exécution de Cairo peut être prouvée
Le principal ajout de Cairo 1.0 est Sierra (Safe Intermediate Representation). Sierra constitue une nouvelle couche de représentation intermédiaire entre Cairo 1.0 et le byte code Cairo. L’objectif de Sierra est de s’assurer que chaque exécution de Cairo – c’est-à-dire un programme de Cairo et ses apports – puisse être prouvée (voir plus bas).
Sierra promet aux développeurs Cairo une meilleur code à l’épreuve sur l’avenir. Une plus grande stabilité est fournie par le fait que les contrats StarkNet n’auront pas besoin de recompiler en cas d’amélioration du système sous-jacent (par exemple, modifications de l’architecture CPU AIR, améliorations de la traduction finale de Sierra vers le bytecode Cairo).
Prouver toutes les exécutions de Cairo. Dans l’ancien Cairo, une exécution de Cairo peut entraîner trois cas – VRAI, FAUX, ou échec. Les exécutions ratées ne peuvent pas être prouvées. Sierra, garantit qu’une exécution de Cairo n’échouera jamais, et ne peut aboutir qu’à VRAI ou FAUX. Cela garantit à son tour que chaque exécution de Cairo peut être prouvée.
Cette introduction de Sierra a des implications importantes pour StarkNet en tant que réseau permissionless. Sierra garantit que même les transactions inversées peuvent être incluses dans les blocs StarkNet. Cette propriété permettra au protocole StarkNet de rester allégé et simple sans qu’il soit nécessaire d’ajouter des mécanismes crypto-économiques complexes.
Deux exemples significatifs :
Les séquenceurs pourront percevoir des frais sur les transactions annulées, ce qui permettra à StarkNet d’empêcher le séquenceur DoS d’une manière bien établie.
La mise en œuvre forcée des transactions L1 sera possible, permettant à StarkNet d’hériter du censorship-resistance complet d’Ethereum.
Cairo 1.0 offrira de nombreuses améliorations au langage de programmation lui-même. Tout ce qui est listé ci-dessous ne fera pas partie de la première version, mais il fait partie de la roadmap.
Amélioration de la syntaxe
Plus de local et de tempvar. Nous n’avons plus qu’à les laisser régir toutes les variables.
Amélioration de la syntaxe if
Old
if cond != 0 {
tempvar x = x+1;
} else {
tempvar x = x;
}
__________________________________
New
if cond { x = x + 1; }
Plus facile d’utiliser les constructions de langage
Type de sécurité garanties
Le compilateur utilisera une tape forte pour améliorer la sécurité du code. Par exemple :
Les pointeurs pointent toujours vers la mémoire initialisée.
Les dictionnaires seront toujours écrasés, au lieu de laisser la responsabilité d’appeler squash_dict au programmeur.
Plus facile d’utiliser les constructions de langage
Par exemple :
Pour boucles (loops)
let sum = 0
for x in iter { sum = sum + x; }
Expressions booléennes
Des entiers (avec division d’entiers réguliers)
Overflow protection pour les types concernés
Conditions booléennes
Old
If cond1:
if cond2:
# Some code
else if cond3:
# Same code
__________________________________
New
If cond1 && (cond2 || cond3) { … }
Un système de type à part entière
Types de données abstraites (càd semblable à Rust enum)
enum Option<T> {
Some: T,
None,
}
match result {
Some(r) => {..},
None => {..},
}
Traits
trait Add<Uint256> {
fn add(…) { … }
}
let a: Uint256 = 1;
let b: Uint256 = 4;
a + b; // Evaluated to 5 of type Uint256.
Des librairies plus intuitives
(par exemple, dict, arrays)
Dict<Uint256, MyStruct> ;
Array ;
Un Code plus optimisé
Pas besoin d’indiquer explicitement l’allocation des variables locales – auto détectée et effectuée automatiquement.
Meilleure intégration du compilateur
Permettre un meilleur soutien à l’IDE, une meilleure gestion des paquets et une meilleure facilitation des contributions communautaires.
Deux ans après la première utilisation de Cairo en production, nous développons Cairo 1.0, qui améliorera l’expression, la sécurité et la syntaxe. Il prendra un grand pas en avant, permettant aux développeurs d’écrire plus facilement leurs contrats StarkNet.
Dans un autre post, à venir, nous partagerons plus de détails sur la façon dont Cairo 1.0 va effectuer la régénération de StarkNet, et comment les développeurs doivent se préparer à sa sortie.
Traduction faite par @cleminso
Initialement publié en anglais par StarkWare le 12 septembre, 2022.

Cairo 1.0 est la première version majeure après l’introduction de Cairo il y a deux ans
Cairo 1.0 donnera aux développeurs un langage de programmation plus sûr, plus simple et plus conviviale
Au cœur de Cairo 1.0 se trouvera Sierra, une couche de représentation intermédiaire qui promet une plus grande stabilité à long terme pour les programmes Cairo.
Sierra fait progresser Cairo pour servir dans un réseau permissionless :
Protéger le réseau : il permet une protection DoS plus robuste
Protéger l’utilisateur : il permet un censorship resistance de même niveau qu’Ethereum
Cairo 1.0 affectera StarkNet de plusieurs façons. Cela aura aussi un effet sur Regenesis. Nous publierons plus d’informations sur Regenesis dans les prochaines semaines.
En 2020, nous avons sorti Cairo, un langage de programmation Turing-complet, et avons fait un grand pas vers la prise en charge du calcul vérifiable avec STARKs. Aujourd’hui, nous annonçons Cairo 1.0, la plus grande avancée de Cairo à ce jour. Il introduira un langage amélioré, avec des fonctionnalités qui amélioreront la convivialité, la sécurité et la commodité. Il est conçu pour soutenir les besoins de StarkNet en tant que réseau permissionless, permettant au protocole de devenir plus simple et plus sûr. Le développement est déjà en cours, et nous espérons que la première version aura lieu prochainement.
Dans cet article, nous allons décrire le voyage de Cairo jusqu’à présent et partager les détails sur les prochaines fonctionnalités.
Jusqu’en 2020, des connaissances de niche étaient nécessaires pour construire des programmes de calcul général vérifiables par STARK. Ce n’était possible que pour ceux qui comprenaient les mathématiques complexes derrière STARKs. Plus précisément, pour chaque business logic, c’est-à-dire chaque calcul, il fallait générer une représentation algébrique intermédiaire (AIR) – un ensemble de contraintes polynomiales représentant le calcul spécifique.
Cairo est né de la prise de conscience que le calcul vérifiable devrait être mis à la disposition des développeurs du monde entier. Cairo permet aux développeurs d’exploiter la puissance des STARKs.
La communauté des développeurs a depuis saisi Cairo pour construire avec enthousiasme. Tout dans l’écosystème florissant de StarkNet aujourd’hui est basé sur Cairo. Entre StarkNet et StarkEx, Cairo alimente ses applications qui ont traité plus de 220M transactions, mint plus de 65M NFTs, et manipulé $700B de transactions, tous réglés sur Ethereum.
Bien que Cairo ait rendu STARKs accessibles, il a été conçu à l’origine comme un langage d’assemblage, et en tant que tel, il a été écrit comme un langage de bas niveau.

Encouragés par les commentaires des développeurs et la montée de StarkNet, nous avons progressivement rendu Cairo plus expressif et plus convivial pour les développeurs.

Mais nous avons vite conclu qu’il était temps de faire un grand bond en avant et, au lieu d’améliorer progressivement la situation de Cairo, opter pour une transformation plus audacieuse.
Pour Cairo 1.0, nous avons construit un tout nouveau compilateur à partir de zéro, qui fournira aux développeurs des fonctionnalités de sécurité, et leur permettra d’écrire des contrats d’une manière plus simple et plus expressive.
Présentation de Sierra : s’assurer que chaque exécution de Cairo peut être prouvée
Le principal ajout de Cairo 1.0 est Sierra (Safe Intermediate Representation). Sierra constitue une nouvelle couche de représentation intermédiaire entre Cairo 1.0 et le byte code Cairo. L’objectif de Sierra est de s’assurer que chaque exécution de Cairo – c’est-à-dire un programme de Cairo et ses apports – puisse être prouvée (voir plus bas).
Sierra promet aux développeurs Cairo une meilleur code à l’épreuve sur l’avenir. Une plus grande stabilité est fournie par le fait que les contrats StarkNet n’auront pas besoin de recompiler en cas d’amélioration du système sous-jacent (par exemple, modifications de l’architecture CPU AIR, améliorations de la traduction finale de Sierra vers le bytecode Cairo).
Prouver toutes les exécutions de Cairo. Dans l’ancien Cairo, une exécution de Cairo peut entraîner trois cas – VRAI, FAUX, ou échec. Les exécutions ratées ne peuvent pas être prouvées. Sierra, garantit qu’une exécution de Cairo n’échouera jamais, et ne peut aboutir qu’à VRAI ou FAUX. Cela garantit à son tour que chaque exécution de Cairo peut être prouvée.
Cette introduction de Sierra a des implications importantes pour StarkNet en tant que réseau permissionless. Sierra garantit que même les transactions inversées peuvent être incluses dans les blocs StarkNet. Cette propriété permettra au protocole StarkNet de rester allégé et simple sans qu’il soit nécessaire d’ajouter des mécanismes crypto-économiques complexes.
Deux exemples significatifs :
Les séquenceurs pourront percevoir des frais sur les transactions annulées, ce qui permettra à StarkNet d’empêcher le séquenceur DoS d’une manière bien établie.
La mise en œuvre forcée des transactions L1 sera possible, permettant à StarkNet d’hériter du censorship-resistance complet d’Ethereum.
Cairo 1.0 offrira de nombreuses améliorations au langage de programmation lui-même. Tout ce qui est listé ci-dessous ne fera pas partie de la première version, mais il fait partie de la roadmap.
Amélioration de la syntaxe
Plus de local et de tempvar. Nous n’avons plus qu’à les laisser régir toutes les variables.
Amélioration de la syntaxe if
Old
if cond != 0 {
tempvar x = x+1;
} else {
tempvar x = x;
}
__________________________________
New
if cond { x = x + 1; }
Plus facile d’utiliser les constructions de langage
Type de sécurité garanties
Le compilateur utilisera une tape forte pour améliorer la sécurité du code. Par exemple :
Les pointeurs pointent toujours vers la mémoire initialisée.
Les dictionnaires seront toujours écrasés, au lieu de laisser la responsabilité d’appeler squash_dict au programmeur.
Plus facile d’utiliser les constructions de langage
Par exemple :
Pour boucles (loops)
let sum = 0
for x in iter { sum = sum + x; }
Expressions booléennes
Des entiers (avec division d’entiers réguliers)
Overflow protection pour les types concernés
Conditions booléennes
Old
If cond1:
if cond2:
# Some code
else if cond3:
# Same code
__________________________________
New
If cond1 && (cond2 || cond3) { … }
Un système de type à part entière
Types de données abstraites (càd semblable à Rust enum)
enum Option<T> {
Some: T,
None,
}
match result {
Some(r) => {..},
None => {..},
}
Traits
trait Add<Uint256> {
fn add(…) { … }
}
let a: Uint256 = 1;
let b: Uint256 = 4;
a + b; // Evaluated to 5 of type Uint256.
Des librairies plus intuitives
(par exemple, dict, arrays)
Dict<Uint256, MyStruct> ;
Array ;
Un Code plus optimisé
Pas besoin d’indiquer explicitement l’allocation des variables locales – auto détectée et effectuée automatiquement.
Meilleure intégration du compilateur
Permettre un meilleur soutien à l’IDE, une meilleure gestion des paquets et une meilleure facilitation des contributions communautaires.
Deux ans après la première utilisation de Cairo en production, nous développons Cairo 1.0, qui améliorera l’expression, la sécurité et la syntaxe. Il prendra un grand pas en avant, permettant aux développeurs d’écrire plus facilement leurs contrats StarkNet.
Dans un autre post, à venir, nous partagerons plus de détails sur la façon dont Cairo 1.0 va effectuer la régénération de StarkNet, et comment les développeurs doivent se préparer à sa sortie.
Traduction faite par @cleminso
No comments yet