Solidity ist die wichtigste Sprache für Smart Contracts auf der Ethereum-Blockchain. Sie ist objektorientiert, statisch typisiert und wird über den Compiler solc in Bytecode für die Ethereum Virtual Machine (EVM) übersetzt.
Kernbefehle und Struktur
pragma solidity ^0.8.0;— legt die Compiler-Version fest.contract Token { ... }— definiert einen Smart Contract (ähnlich einer Klasse).constructor() { ... }— wird einmalig beim Deployment ausgeführt.function transfer(address to, uint amount) public { ... }— definiert eine Funktion mit Sichtbarkeit (public,private,internal,external).modifier onlyOwner() { ... }— kapselt Zugriffsprüfungen und wiederverwendbare Logik.require(bedingung, "Fehlermeldung");— prüft Bedingungen und macht die Transaktion bei Fehlschlag rückgängig.revert("Grund");— bricht die Ausführung bewusst ab.event Transfer(address indexed from, address indexed to, uint value);— deklariert ein Event für die Blockchain-Logausgabe.mapping(address => uint) public balances;— assoziatives Datenfeld auf der Blockchain.msg.sender,msg.value— globale Variablen für Absender und überwiesenen Wert.
Gas und Sicherheit
Jede Operation auf der EVM kostet Gas — Entwickler optimieren Contracts, um die Gebühren zu senken. Seit Solidity 0.8 schlagen arithmetische Über- und Unterläufe automatisch fehl (Revert), in unchecked { ... }-Blöcken kann man diese Prüfung bewusst deaktivieren.
Der Compiler solc wird meist über das Build-Tool forge (Foundry) oder truffle aufgerufen; solc --version zeigt die installierte Compiler-Version an. Smart Contracts laufen auf der Ethereum-Blockchain; die Transaktionskosten hängen direkt vom Gas-Verbrauch des Bytecodes ab.
Wie Zig vermeidet auch Solidity versteckte Kosten: Dort, wo Zig Speicher explizit verwaltet, macht Solidity jede Ressourcennutzung über Gas sichtbar und abrechenbar. Verwandte Grundlagen: Java-Befehle.