Kernpunkte
- Solidity definiert Contracts, die die EVM ausführt.
- ABI, Compiler und Abhängigkeiten müssen zu jedem Deployment passen.
- Berechtigungen und Upgrades erfordern zusätzlich zum Einsatz von Bibliotheken auch Tests.
Was ist Solidity?
Solidity ist eine Sprache zur Definition von Programmen, die in der Ethereum Virtual Machine ausgeführt werden. Ein Contract kann Salden erfassen, Berechtigungen prüfen oder Tauschregeln anwenden, die die Teilnehmer im Netzwerk verifizieren. Die Sprache erlaubt es, diese Regeln auszudrücken; das mit einem Token verbundene Recht hängt jedoch auch vom Emittenten und der Produktdokumentation ab.
Das Ökosystem umfasst Compiler, Standardbibliotheken, Testwerkzeuge und Explorer. Für ein Unternehmen erleichtert diese Basis die Integration von Contracts mit Wallets und bestehenden Systemen, ohne jede Schnittstelle neu entwerfen zu müssen.
So funktioniert es
Der Compiler erzeugt Bytecode und eine ABI: die Beschreibung, die Anwendungen nutzen, um die Funktionen des Contracts aufzurufen. Operationen verbrauchen Gas nach den Regeln des Netzwerks und dem abgerufenen Zustand. Die Endkosten hängen vom verbrauchten Gas und den Gebühren ab; sie sind kein fester Betrag pro Funktion und werden nicht in allen EVM-Netzwerken in ETH bezahlt.
Das Design trennt Speicher, öffentliche Funktionen, Events und Berechtigungen. Eine Übertragung muss den Zustand konsistent aktualisieren, auch wenn sie mit einem anderen Contract interagiert, der unerwarteten Code ausführen kann. Deshalb werden Reentrancy, Grenzwerte und externe Aufrufe geprüft.
Was Solidity leistet
Solidity eignet sich für Token, Treuhandvereinbarungen (Escrow), Governance und Abwicklungsprozesse mit gemeinsamen Regeln. Ein Verteilungs-Contract kann zum Beispiel erlauben, dass ein Konto Zuteilungen veröffentlicht und jeder Begünstigte nur seinen eigenen Betrag abhebt. Die Anwendung erklärt den Vorgang; der Contract prüft, wer ihn ausführen darf und welches Guthaben verfügbar bleibt.
Vor dem Deployment sollten die Eigenschaften des Systems schriftlich festgehalten werden: wer emittieren darf, welche Bedingungen eine Übertragung blockieren und wie sich eine fehlgeschlagene Operation beheben lässt. Diese Eigenschaften leiten die Unit-Tests, die Testsequenzen und die unabhängige Prüfung des Codes und seiner Abhängigkeiten.
Grenzen und Auswahlkriterien
Die EVM-Kompatibilität erleichtert die Wiederverwendung von Code, doch jedes Deployment erfordert die Prüfung von Version der virtuellen Maschine, Oracles, Adressen externer Contracts und Gebührenmodell. Ein Contract, der kompiliert, kann bei der Integration in ein anderes Netzwerk scheitern oder von Komponenten abhängen, die dort nicht existieren.
Außerdem ist zu entscheiden, ob er upgradefähig sein soll. Ein Proxy erlaubt den Austausch der Implementierung, bringt aber Berechtigungen und Fragen der Speicherkompatibilität mit sich, die geprüft werden müssen. Die Wahl zwischen unveränderlichem und upgradefähigem Contract hängt von den erwarteten Änderungen ab und davon, wer die Administration übernimmt. Ein Audit liefert Nachweise für einen bestimmten Prüfumfang und eine bestimmte Version; es garantiert jedoch nicht, dass künftig keine Fehler auftreten.
Auch bekannt als
- Solidity language
- Lenguaje de smart contracts
- EVM smart contract language
- .sol





