# Notes de version

> Apogee VM v1.0.0, la première version. Ce qu’elle prouve, ce qu’elle livre, comment elle a été mesurée et vérifiée, et ses limites connues.

## v1.0.0

La première version d’Apogee VM : une zkVM RISC-V qui prouve des programmes RV32IMAC et règle leurs preuves sur Ethereum. La spécification que reproduit ce site est le répertoire `docs/` du dépôt à la révision source `3571370`.

### Ce qu’elle prouve

Qu’un programme, désigné par un condensé de son image, s’est exécuté sur une entrée publique jusqu’à un statut de sortie et a écrit un journal, le tout porté à travers un arbre de récursion jusqu’à une seule preuve Groth16 que vérifie `ApogeeVerifier.sol`. Les preuves sont succinctes, pas à divulgation nulle de connaissance.

### Ce qui est livré

- **La machine.** RV32IMAC sur un seul hart; les 59 instructions de RV32IMA, les instructions compressées étant développées au chargement; un SDK des programmes invités avec trois régions mémoire pour l’entrée, les données auxiliaires (*advice*) et la sortie.
- **Le système de preuve.** 23 familles de circuits sur le corps des scalaires de BN254, chacune un circuit GKR en couches : sept familles d’instructions, cinq familles de fenêtres mémoire, six délégations et cinq familles de récursion. Un seul multiensemble mémoire lecture/écriture sur toute l’exécution; des lookups LogUp sur cinq canaux.
- **Délégations.** `KECCAK_F`, `SHA256_COMP`, `POSEIDON2`, `FR_ARITH`, `MOD_MUL` et `EC_ADD`, accessibles depuis le SDK et depuis des versions corrigées de `k256`, `ark-ff` et `revm-precompile`.
- **Engagements.** Mercury sur KZG, sur les puissances de tau perpétuelles de PSE, une ouverture de 704 octets par shard; une vérification différée pour la récursion.
- **Le prouveur.** Un prouveur en flux à deux passes dont la mémoire suit les shards en cours de traitement.
- **Règlement.** Un arbre de récursion formé de programmes feuilles et nœuds, dans un format de récursion doté d’une mémoire de corps et de quatre coprocesseurs; un décideur Groth16 avec fils liés et cérémonie en deux phases; `ApogeeVerifier.sol`.
- **La charge de travail Ethereum.** Un programme invité revm avec un binaire mini-bloc et un validateur sans état pour Osaka, BPO1, BPO2 et Amsterdam.
- **Outils.** `bench`, le profileur de cycles, le journal de débogage du prouveur, `checker`, `artifact-dump`, la CLI `verifier`, `kat-gen`, et deux oracles de référence.
- **Aucune cryptographie externe.** Corps, courbe, couplage, MSM, hachage, PCS, GKR et Groth16 sont implémentés dans le dépôt.

### Mesures

Bloc 257 510 de `glamsterdam-devnet-8` (60 transactions, 101,5 Mgas, 198 millions de cycles) : une preuve de base de 207 shards en 2 481 s sur 32 vCPU avec un pic de 174 GiB; un arbre de récursion de 116 shards; une preuve du décideur en 18,5 s; une vérification sur la chaîne pour 3 620 026 gas. Les 67 251 paires de `tests-zkevm` v21.0.1 concordent toutes en exécution native. La page [Performances](https://apogee.gweb3networks.com/docs/architecture/performance) donne chaque chiffre.

### Limites connues

Pas de divulgation nulle de connaissance; des données auxiliaires non liées, par conception; au plus 16 380 octets chacun pour l’entrée publique et le journal; `sc.w` réussit toujours; les déroutements (*traps*) ne sont pas prouvables; un ensemble fixe de six délégations de base; une mémoire du prouveur déterminée par les shards en cours de traitement; une clé du décideur propre à chaque forme de racine et digne de confiance seulement dans la mesure où sa cérémonie l’est. [Le modèle de sécurité](https://apogee.gweb3networks.com/docs/architecture/security#limits) énumère chaque limite avec sa raison.

### Documentation

Ce site, en anglais, en français (Canada), en chinois simplifié et en allemand, avec la spécification normative en anglais dans toutes les langues. Le [Compagnon IA](https://apogee.gweb3networks.com/docs/launch/ai-companion) et [`llms.txt`](/llms.txt) servent les agents d’IA.
