# Apogee auf einen Blick

> Die Fakten auf einer Seite. Was Apogee VM beweist, wie es das beweist, was das kostet, was es voraussetzt und wo Version 1.0.0 endet.

## In einem Absatz

Apogee VM ist eine RISC-V-zkVM. Die VM beweist, dass ein RV32IMAC-Programm, benannt durch einen Digest seines Images, mit einer gegebenen öffentlichen Eingabe bis zu einem Exit-Status gelaufen ist und eine gegebene öffentliche Ausgabe geschrieben hat. Diesen Beweis führt sie über einen Rekursionsbaum zu einem einzigen Groth16-Beweis, den ein Ethereum-Contract prüft. Jeder Schaltkreis ist ein geschichteter GKR-Schaltkreis über dem Skalarkörper von BN254, jede committete Spalte wird mit Mercury geöffnet, und jede Challenge stammt aus einem Poseidon2-Transkript. Körper, Kurve, Pairing, MSM, Hash, Polynom-Commitment, GKR-Prover und Groth16 sind sämtlich im Repository implementiert. Die Referenz-Arbeitslast ist die Validierung von Ethereum-Blöcken.

## Die Fakten

| | Apogee VM v1.0.0 |
| --- | --- |
| Was ein Beweis aussagt | Dass das Programm mit dieser Identität, gestartet an seinem Einsprungpunkt auf seinem Image, mit dieser öffentlichen Eingabe und irgendwelchen Hilfsdaten (Advice) Befehl für Befehl bis zu `EXIT` mit diesem Status ausgeführt wurde und dabei dieses Journal geschrieben hat |
| Befehlssatz | RV32IMAC auf einem Hart: die 59 Befehle von RV32IMA (40 Basis, 8 M, 11 A), komprimierte Befehle werden beim Laden expandiert |
| Sprache der Gastprogramme (Guests) | Rust, `#![no_std]` mit `alloc`, stable 1.96.1, Target `riscv32imac-unknown-none-elf` |
| Arithmetisierung | 23 Schaltkreisfamilien, jede ein geschichteter GKR-Schaltkreis: 7 für Befehle, 5 für Speicherfenster, 6 Delegationen, 5 für die Rekursion |
| Argumente | Gates per Sumcheck; Speicher über eine einzige Lese-/Schreib-Multimenge für die gesamte Ausführung; Lookups per LogUp |
| Körper | Der Skalarkörper von BN254, 254 Bit |
| Commitments | Mercury, multilinear über KZG, eine 704-Byte-Öffnung pro Shard, unabhängig von der Spaltenzahl |
| Setup | Die Perpetual Powers of Tau der PSE, Beitrag 80; eine zweite, schaltkreisspezifische Zeremonie für den On-Chain-Decider |
| Transkript | Ein Poseidon2-Duplex-Sponge über `Fr`, Breite 3, Rate 2 |
| Abwicklung | Rekursionsbaum → Groth16-Decider → `ApogeeVerifier.sol` |
| Sicherheitsniveau | Etwa 100 Bit, bestimmt durch BN254 |
| Zero-Knowledge | Nein. Beweise sind succinct, aber nicht zero-knowledge, und nichts wird verblindet |
| Delegierte Operationen | Runden von keccak-f[1600], Runden von SHA-256, Poseidon2, `Fr`-Arithmetik von BN254, modulare 256-Bit-Multiplikation über vier Ethereum-Moduln, vollständige Punktaddition auf secp256k1 und BN254 G1 |
| Öffentliche Werte | Höchstens 16.380 Byte Eingabe und 16.380 Byte Journal; Hilfsdaten bis 2 GiB |
| Ausführungslänge | Bis zu `2^36 − 1` Zyklen |
| Codegröße | `.text` bis 7,94 MiB bei einer Tabellenhöhe von `2^22`; Image standardmäßig bis 4 MiB |
| Kryptografie von Drittanbietern | Keine auf einem Beweispfad. arkworks, Plonky3 und zkhash kommen nur als Testorakel vor |

## Gemessen

Alle Zahlen beziehen sich auf Block 257.510 von `glamsterdam-devnet-8`, ausgeführt im Gastprogramm des zustandslosen Validators: 60 Transaktionen, 101,5 Mgas, 198 Mio. Zyklen. Quellen: [Rekursion §10](https://apogee.gweb3networks.com/docs/auditors/spec/recursion#s10) und [Streaming §1](https://apogee.gweb3networks.com/docs/auditors/spec/streaming#s1) der Spezifikation.

| Stufe | Ergebnis |
| --- | --- |
| Basisbeweis | 207 Shards, 14,5 MB, 2.481 s auf 32 vCPUs und 247,7 GiB, Spitzen-RSS 173,92 GiB |
| Rekursionsbaum | 116 Shards: vier Blätter über je höchstens 64 Basis-Shards (zusammen 2.157 s, Spitze 92 GiB) und eine Wurzel (460 s, 1,03 MB) |
| Decider-Schaltkreis | 7.896.686 Constraints über einer Domäne der Größe `2^23` |
| Decider-Beweis | 18,5 s und 6,1 GB auf einem Laptop mit 18 Kernen, Schlüssel in 1 s eingelesen |
| On-Chain-Verifikation | 3.620.026 gas, 34.980 Byte Calldata, 358 vom Contract gefaltete Punkte |
| Konformität | Alle 67.251 Paare von `tests-zkevm` v21.0.1 stimmen nativ überein |

## Was ein Verifier besitzen muss

Zwei Werte, bezogen über einen Kanal, den der Prover nicht kontrolliert:

- **Die Programmidentität**, ein Körperelement. Gegenüber einer vom Prover gelieferten Identität zeigt ein Beweis nur, dass irgendein Programm gelaufen ist.
- **Der SRS-Digest der Zeremonie.** Ein Schlüssel, der über einem bekannten `τ` gebaut wurde, wird nur durch diesen Vergleich zurückgewiesen.

Der Verifikationsschlüssel selbst darf von beliebiger Seite kommen: Beim Laden werden beide Werte aus seinem eigenen Inhalt neu berechnet, und seine Schaltkreise werden mit der Registry des Verifiers abgeglichen. [Das Sicherheitsmodell](https://apogee.gweb3networks.com/docs/architecture/security) enthält die vollständige Liste der Annahmen.

## Wo v1.0.0 endet

- **Nicht zero-knowledge.** Keine Verblindung in Mercury, GKR oder dem Decider.
- **Hilfsdaten sind ungebunden.** Ein Gastprogramm prüft sie gegen etwas, das ein Beweis bindet.
- **Traps sind nicht beweisbar.** Ein nicht ausgerichteter Zugriff, ein Zugriff außerhalb des gemappten Speichers, `ebreak` oder ein pc ohne Befehl beendet den Lauf ohne Beweis.
- **`sc.w` gelingt immer.** Die einzige Abweichung von RV32IMAC: Es gibt keinen Reservierungszustand.
- **Die Delegationen bilden eine feste Menge von sechs.** EVM-`MULMOD` mit beliebigem Modul, `MODEXP` und BLS12-381 laufen als gewöhnliche Befehle.
- **Die Beweiserzeugung ist speichergebunden.** Der gemessene Block erreichte eine Spitze von 174 GiB; der Speicherbedarf folgt den gerade bearbeiteten Shards, nicht der Länge des Laufs.
- **Der Decider-Schlüssel gilt je Wurzelform** und ist nur so vertrauenswürdig wie seine Zeremonie. Der Entwicklungsschlüssel ist fälschbar.

## Wer es baut

Apogee VM ist das Flaggschiff des Forschungsprogramms von G Web3 für Blockchain-native Anwendungsumgebungen: eine optimierte Umgebung pro wirtschaftlicher Anwendung, deren Abwicklung jeweils per Gültigkeitsbeweis auf Ethereum erfolgt. Die Position des Programms ist in [der These](https://www.gweb3networks.com/thesis.html) dargelegt; wohin die nächste Version geht, beschreibt [Quantensprung](https://apogee.gweb3networks.com/docs/quantum-leap).
