Anzeige
Anzeige
Ratgeber

Solidity: Das steckt hinter der Programmiersprache fürs Web3

Solidity ist eine statisch typisierte Programmiersprache für die Implementierung sogenannter Smart Contracts. Wer sich schon immer gefragt hat, was das eigentlich ist und wie das funktioniert – unser Artikel bietet einen kurzen Überblick.

3 Min.
Artikel merken
Anzeige
Anzeige

Die Ethereum-Blockchain dient als Plattform für Smart Contracts. (Foto: dpa)

Das Konzept sogenannter Smart Contracts gibt es seit 1994. Nick Szabo verglich sie damals mit digitalen Verkaufsautomaten. Im Grunde sind Smart Contracts einfach Programme – Code und Daten auf einer Blockchain. Sie werden ausgeführt, wenn vorher definierte Bedingungen erfüllt sind. Sie werden typischerweise eingesetzt, um die Ausführung einer Vereinbarung zu automatisieren, sodass alle Beteiligten sofort über das Ergebnis Bescheid wissen, ohne dass es zu Verzögerungen kommt oder ein Mittelsmann nötig wäre. Auch ganze Abläufe können mithilfe von Smart Contracts automatisiert werden. Werden die in einem Smart Contract definierten Bedingungen erfüllt, wird dann die nächste Aktion getriggert.

Anzeige
Anzeige

Zum Beispiel könnte Anna mit Johannes einen Vertrag abschließen, dass er gegen einen Betrag von 0.2 Eth auf ihrer Hochzeit die Rolle des Fotografen übernimmt. Sie halten die Bedingungen des Vertrags in einem in Solidity geschriebenen Smart Contract auf der Blockchain fest:

pragma solidity ^0.8.10;

contract WeddingPhotos {
address payable public seller;
address payable public buyer;

event PurchaseConfirmed();
event ItemReceived();

function confirmPurchase() public {
// ...
}

}

Ein Smart Contract wird nicht von Menschen kontrolliert, sondern hat seinen eigenen internen Code. Weil er sich auf der Blockchain befindet, kann er nicht manipuliert werden, und es gibt keinen Interpretationsspielraum. Wenn Johannes seinen Auftrag, Fotos auf Annas Hochzeit zu machen, ordnungsgemäß erledigt, wird der Vertrag ausgeführt und Geld an Johannes überwiesen. Es gibt viele andere potenzielle Anwendungsfälle wie dezentrale Web3-Apps, dezentrale Finanzprodukte oder den Handel mit digitalen Vermögenswerten in Form von sogenannten Non-Fungible-Token, kurz NFT.

Anzeige
Anzeige

Was ist Solidity?

Solidity wurde 2014 ins Leben gerufen. Es ist eine sogenannte High-Level-Programmiersprache zum Schreiben von Smart Contracts mit einer Syntax, die Sprachen wie C++ oder auch TypeScript und JavaScript ähnelt. Solidity ist kompiliert, statisch typisiert und macht Anleihen bei Strukturen aus der objektorientierten Programmierung. Solidity wird meistens in einem Atemzug mit Ethereum genannt, wird jedoch auch von anderen EVM-kompatiblen Plattformen, zum Beispiel Tron, Tendermint oder Kin, unterstützt.

Anzeige
Anzeige

Der erste Smart Contract in Solidity

Um einen ersten Smart Contract zu schreiben, müsst ihr eine Datei mit der Endung .sol im Editor eurer Wahl erstellen. Das Solidity-Projekt auf GitHub empfiehlt Remix, eine browserbasierte IDE für den Start. Hier könnt ihr eure ersten Smart Contracts mit Solidity ohne lokale Installation schreiben und verwalten.

Das pragma-Keyword signalisiert dem Compiler, welche Version von Solidity verwendet werden soll.

Anzeige
Anzeige
pragma solidity ^0.8.10;

contract MyContract {
string public greeting = "Moini Friends";
address payable public seller;
address payable public buyer;

struct Order {
string description;
bool completed;
}

function confirmOrder() public {
buyer = payable(msg.sender);
}

constructor(string memory _text) {
greeting = _text;
}
}

Das Keyword contract legt die Details eures Smart Contracts fest. Das contract-Keyword ist vergleichbar mit einer Klasse in JavaScript, TypeScript oder Python. Innerhalb der geschwungenen Klammern werden Variablen oder ein sogenannter State definiert. Deren Wert kann sich während des Lebenszyklus des Vertrags ändern. Solidity verfügt über einen speziellen Datentypen namens address, der dazu dient, eine Ethereum-Adresse zu speichern. Mithilfe des struct-Keywords könnt ihr komplexere Datentypen definieren und so die verschiedenen Entitäten eures Smart Contracts darstellen. Mithilfe des function-Keywords könnt ihr Funktionen definieren, über die der State des Smart Contracts verändert werden kann.

Jeder in Solidity programmierte Smart Contract verfügt zudem über einen constructor. Ein constructor ist eine spezielle, optional zu definierende Funktion, die sogenannte State-Variablen eines Smart Contracts initialisiert. Wird dieser nicht explizit definiert, verfügt der Smart Contract dennoch über einen Default Constructor. Nachdem die constructor-Funktion ausgeführt wurde, wird der finale Code auf der Blockchain deployed.

Für das Management von Smart Contracts gibt es verschiedene API

Nachdem ihr den Smart Contract definiert habt, muss er kompiliert werden, damit ihr ihn programmatisch mit einer API eurer Wahl verwenden könnt. Wer seine Smart Contracts in JavaScript instantiieren und verwalten will, kann hierfür beispielsweise auf ether.js oder Web3.js zurückgreifen.

Anzeige
Anzeige

Wer nach diesem kurzen Überblick tiefer in die Thematik einsteigen will, findet im Projekt auf GitHub weitere Informationen und auf der zugehörigen Website ein ausführliches Tutorial.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige