Kernpunkte
- Mit Cairo lassen sich Programme schreiben, deren Ausführung über STARK-Beweise verifiziert wird.
- Cairo ist die Smart-Contract-Sprache von Starknet, mit einem anderen Toolset als Solidity.
- Ein Beweis der Ausführung ersetzt die Prüfung der Regeln des Smart Contracts nicht.
Was ist Cairo?
Cairo erlaubt es, eine Berechnung auszudrücken und einen kryptografischen Nachweis zu erzeugen, dass sie nach bestimmten Regeln ausgeführt wurde. In Starknet dient es dazu, Smart Contracts zu definieren, Zustand zu speichern und Vorgänge zu verarbeiten, die anschließend in das Beweissystem des Netzwerks eingehen. Das Programm und die Infrastruktur, die den Beweis erzeugt, erfüllen unterschiedliche Funktionen.
Für ein Unternehmen ermöglicht diese Trennung zu bewerten, welche Arbeit jeder Beteiligte ausführen und welches Ergebnis er prüfen muss. Eine verifizierbare Berechnung kann nützlich sein, auch wenn sie kein Finanzkontrakt ist. Die Machbarkeit hängt zudem von den Kosten der Beweiserzeugung, der Datenverarbeitung und der Integration mit dem System ab, das das Ergebnis entgegennimmt.
Cairo macht eine Anwendung nicht automatisch vertraulich. Sind Daten oder Transaktionen öffentlich, verbirgt ein Beweis korrekter Ausführung sie nicht. Vertraulichkeitsanforderungen werden gesondert entworfen und geprüft.
So funktioniert es
Bei der Entwicklung von Starknet-Contracts durchläuft Cairo-Code Sierra, eine Zwischenrepräsentation, und anschließend CASM. Die Ausführung erzeugt Informationen, die das Beweissystem nutzt. Scarb organisiert Abhängigkeiten und Kompilierung, während Starknet Foundry das Verhalten von Contracts und ihre Interaktionen prüfen lässt.
Ein Deployment unterscheidet die Deklaration einer Contract-Klasse von der Erzeugung einer Instanz. Diese Unterscheidung ist wichtig, um Versionen zu erfassen, Kompilierungen zu reproduzieren und zu prüfen, welchen Code eine Adresse verwendet. Die Anwendung braucht außerdem einen Client, der Konten, Signaturen, Ressourcen und Transaktionszustände verwaltet.
Starknet hat sehr wohl ein Gas- und Gebührenmodell. Beteiligt sind Ausführungsressourcen und mit Ethereum verbundene Kosten; es genügt nicht, die Schritte eines Traces zu zählen oder einen konstanten Preis anzunehmen. Um einen Vorgang zu kalkulieren, wird der konkrete Ablauf simuliert und werden die Parameter der verwendeten Protokollversion geprüft.
Was Cairo leistet
Cairo bietet ein verifizierbares Ausführungsmodell und eine für Starknet entworfene Contract-Umgebung. Es kann passen, wenn das Produkt dieses Netzwerk, seine Anwendungen oder seine programmierbaren Konten benötigt und das Team einen von der EVM abweichenden Stack tragen kann. Die Wahl begründet sich aus den Produktanforderungen, nicht daraus, kryptografische Beweise als Aushängeschild einzubauen.
Ein Beispiel ist eine Anwendung, die mehrere Nutzeraktionen unter einem Konto mit begrenzten Berechtigungen bündelt. Das Design muss festlegen, welche Contracts dieses Konto aufrufen darf, für wie lange und mit welchem Ausgabenrahmen. Anschließend werden Widerruf, Ablauf und das Verhalten bei einem fehlschlagenden Vorgang geprüft.
In einer technischen Evaluation empfiehlt sich ein vollständiger Durchlauf mit demselben Konto- und Wallet-Typ, der für die Produktion vorgesehen ist. So wird neben der isolierten Funktion des Contracts auch das tatsächliche Erlebnis von Signatur und Bestätigung gemessen.
Grenzen und Auswahlkriterien
Cairo erfordert das Erlernen eigener Datenstrukturen, Serialisierung und Konventionen. Die Logik eines Solidity-Contracts wiederzuverwenden erfordert meist eine Neukonzeption der Implementierung und erneute Tests. Auch der Bestand an Bibliotheken, Analysewerkzeugen und Integrationen, die dem Team zur Verfügung stehen, ändert sich.
Ein Gültigkeitsbeweis zeigt, dass die Ausführung dem Programm entspricht, aber ein Programm kann fehlerhafte Geschäftsregeln enthalten. Deshalb bleiben Tests von Berechtigungen, wirtschaftlichen Invarianten und der Behandlung unerwarteter Eingaben notwendig. Ebenso wenig sollte die Sicherheit eines Rollups mit der von Ethereum gleichgesetzt werden, ohne seine Upgrade-, Verfügbarkeits- und Ausstiegsmechanismen zu prüfen.
Vor der Wahl von Cairo muss das Projekt nachweisen, dass es Compiler, Abhängigkeiten und Starknet-Integrationen pflegen kann. Soll dasselbe Produkt in mehreren EVM-Netzwerken bereitgestellt werden, kann Solidity den Anpassungsaufwand verringern. Geht es um Vertraulichkeit, ist zuerst zu definieren, welche Informationen verborgen bleiben müssen und vor wem.
Auch bekannt als
- Cairo lang
- Starknet language
- ZK Cairo





