© vectorpouch/Shutterstock.com
Eine Einführung in Solidity

Die Programmiersprache des Geldes


Ein herausragendes Feature der Ethereum Blockchain ist ihre Fähigkeit, neben Transaktionen auch Smart Contracts aufzunehmen. Hinter dem Begriff verbirgt sich die Möglichkeit, Intelligenz in Blockchain-Adressen unterzubringen. Dabei kommt die Programmiersprache Solidity zum Einsatz, die wir uns nun näher ansehen werden

Smart Contracts entstehen durch Transaktionen. Sofern das Ziel der Transaktion der „magische 0-Account“ ist, entsteht durch die Operation ein neuer Smart Contract. Wie bei allen Blockchain-Operationen gilt, dass etwas Geduld erforderlich ist – man sollte mit dem Contract erst dann interagieren, wenn sein Konstruktor erfolgreich durchgelaufen ist.

Smart-Contract-Konten unterscheiden sich von ihren gewöhnlichen Kollegen durch eine andere Adressform. Während ein zu einer natürlichen oder juristischen Person gehörender Account einen Public- und einen Private-Key aufweist, entsteht die Adresse eines Smart Contract durch die Kombination der Adresse des Erzeugers und einer inkrementierten Nonce.

Wichtig ist in diesem Zusammenhang, dass ein Smart Contract analog zu einem gewöhnlichen Konto auch einen Kontostand aufweist. Diese auf den ersten Blick theoretisch klingende Situation ist insofern kritisch, als ein falsch programmierter Smart Contract seinen Kontostand fressen und nicht mehr freigeben kann. Auf Reddit finden sich Erzählungen von Entwicklern, die auf diese Art erhebliche finanzielle Verluste erfuhren. Beachten Sie das – der Autor lehnt explizit jegliche Haftung dafür ab.

Wieso und wie?

Puristen merken an dieser Stelle an, dass auch Bitcoin Smart Contracts unterstützt – eine Zusammenfassung der Situation findet sich unter [1]. Die Ethereum-Implementierung unterscheidet sich davon insofern, dass die als EVM bezeichnete virtuelle Maschine direkter Teil der Implementierung der Sprache ist.

Das Ethereum-Team bietet unter [2] die in Abbildung 1 gezeigte IDE Remix an, die dank Verwendung von Emscripten Produkte direkt in der Cloud kompiliert.

hanna_solidity_1.tif_fmt1.jpgAbb. 1: Cloudbasierte IDE Remix (Quelle: [2])

Wir wollen in den folgenden Schritten aber, schon aufgrund des bequemen Handlings, auf eine lokale Version setzen. Im ersten Schritt müssen wir den Code deshalb aus GitHub herunterladen:

git clone --recursive cd solidity/ git submodule update --init –recursive

Der pedantisch wirkende Aufruf der submodule-Funktion ist von besonderer Bedeutung – fehlen Untermodule, so scheitert das Kompilieren. Im nächsten Schritt rufen wir das vom Solidity-Team bereitgestellte In...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang