Was ist ein Smart Contract?

Abgeschlossen

Ein Smart Contract ist ein Programm, das in einer Blockchain gespeichert wird. Smart Contracts erweitern die Blockchain von Daten zu Code. Sie stellen eine Vereinbarung zwischen Parteien dar. Die Vereinbarung ist codiert, und wenn eine Aktion durchgeführt wird, wird der Code ausgeführt und eine Antwort bereitgestellt.

Alle Geschäftsbedingungen der Verträge sind programmgesteuert definiert. Eine Definition gibt Regeln, Anforderungen und Nutzen für die Teilnehmer in der Blockchain an. Sie legt auch fest, wie digitale Ressourcen zwischen Parteien übertragen werden. Jedem Smart Contract wird eine 20-Byte-Adresse zugewiesen, die ihn eindeutig identifiziert.

Smart Contracts werden selbständig ausgeführt, senden Ereignisse, die Statusübergänge auslösen, und rufen Funktionen auf. Sie eignen sich perfekt für die Blockchaintechnologie, da sie Benutzern, die sich gegenseitig nicht kennen, ermöglichen, Geschäfte ohne Vermittler auf sichere Weise abzuwickeln.

Smart Contracts werden am häufigsten mit Ethereum verwendet. Ethereum ist die weltweit erste programmierbare Blockchain. Ethereum ermöglicht die Definition von Smart Contracts, um die Übertragung digitaler Ressourcen wie Ether zu vereinfachen.

Zum Schreiben von Verträgen verwenden Sie die Sprache Solidity. Die Turing-Vollständigkeit von Solidity bedeutet, dass Sie komplizierte Verträge auf klar definierte und codierte Weise schreiben können.

Da jeder Statusübergang protokolliert wird und unveränderlich ist, sollten Sie den Vertrag gründlich testen, bevor Sie ihn in einer Produktionsumgebung freigeben. Fehlerbehebungen können aufwändig sein und sogar zu kritischen Systemschäden führen.

Smart Contracts haben diese wichtigen Eigenschaften und Vorteile:

  • Transparenz: Blockchainbenutzer können Smart Contracts lesen und mithilfe von APIs darauf zugreifen.
  • Unveränderlichkeit: Bei der Smart Contract-Ausführung werden Protokolle erstellt, die nicht geändert werden können.
  • Verteilung: Die Ausgabe des Vertrags wird von Knoten im Netzwerk überprüft und bestätigt. Vertragsstatus können öffentlich sichtbar sein. In einigen Fällen sind auch „private“ Variablen sichtbar.

Anwendungsfälle

Von Smart Contracts können viele Branchen und Prozesse profitieren. Betrachten Sie die folgenden Anwendungsfälle.

Versicherung: Bei bestimmten Ereignissen wird von Smart Contracts automatisch ein Anspruch ausgelöst, der den Anspruchsprozess vereinfacht und optimiert. Anschließend können Anspruchsdetails in der Blockchain erfasst werden, um die Höhe der Leistung zu ermitteln, die Benutzer erhalten. Diese Funktionalität kann Verarbeitungszeiten und menschliche Fehler verringern.

Abstimmung: Smart Contracts können Abstimmungen automatisieren und transparent machen. Für jeden einzelnen Wahlvorgang gibt es einen Vertrag, der die Identität eines Wählers darstellt. Da eine Blockchain unveränderlich ist, können Abstimmungen nicht manipuliert werden.

Lieferketten: Wenn Elemente die Lieferkette durchlaufen, können Smart Contracts den Besitz erfassen und jederzeit Aufschluss darüber geben, wer für ein Produkt verantwortlich ist. In jeder Phase kann anhand des Smart Contracts ermittelt werden, wo genau sich die Produkte befinden sollten. Wenn eine Partei in der Lieferkette nicht rechtzeitig liefert, weiß jede andere Partei, wo das Problem aufgetreten ist.

Datensatzaufzeichnung: Viele Branchen können mit Smart Contracts die Geschwindigkeit und Sicherheit der Datensatzaufzeichnung verbessern. Mit der Blockchaintechnologie können Datensätze digitalisiert und sicher verschlüsselt und gespeichert werden. Außerdem kann der Zugriff so gesteuert werden, dass nur legitimierte Personen auf die Datensätze zugreifen können.

Eigenschaftenbesitz: Smart Contracts können aufzeichnen, wer eine Eigenschaft besitzt. Mit ihnen kann der Besitz schnell und kostengünstig aufgezeichnet werden. Smart Contracts können auch dazu beitragen, den Besitz rechtzeitig und sicher zu übertragen.

Tools für die Arbeit mit Smart Contracts

Viele Tools können Sie bei der effektiven Entwicklung von Smart Contracts unterstützen. In den folgenden Abschnitten werden einige integrierte Entwicklungsumgebungen (Integrated Development Environments, IDES), Erweiterungen und Frameworks vorgeschlagen, die Sie untersuchen können.

IDEs

  • Visual Studio Code: Ein zum Entwickeln und Debuggen moderner Web- und Cloudanwendungen neu definierter und optimierter Code-Editor. In diesem Modul verwenden wir Visual Studio Code für alle Übungen.
  • Remix: Compiler und IDE auf Browserbasis zum Erstellen von Ethereum-Verträge in der Solidity-Sprache und Debuggen von Transaktionen. Remix eignet sich hervorragend zum Untersuchen von Beispielverträgen. Sie können damit Ihre eigenen Verträge schreiben, testen und bereitstellen. Wir verwenden Remix in diesem Modul nicht, aber Sie können es selbst in den Vertragsübungen ausprobieren.

Erweiterungen

  • Die Erweiterung „Truffle für VS Code“: Diese Erweiterung vereinfacht das Erstellen, Kompilieren und Bereitstellen von Smart Contracts in Ethereum-Ledgers. In dieser Erweiterung sind Truffle, Ganache und weitere Tools und Dienste integriert. In diesem Modul verwenden Sie diese Erweiterung zum Schreiben und Testen von Smart Contracts.

Frameworks

  • Truffle-Suite: Verwenden Sie die Truffle-Toolsuite, um Ethereum-Verträge zu testen, bevor Sie sie in öffentlichen Ledgern bereitstellen und sie reale Kosten verursachen. Um Ihre Arbeit als Entwickler zu vereinfachen, sollten Sie lokal entwickeln. Die Toolsuite umfasst Truffle, Ganache und Drizzle. In diesem Modul verwenden wir Truffle.
  • OpenZeppelin: Verwenden Sie OpenZeppelin-Tools zum Schreiben, Bereitstellen und Betreiben dezentralisierter Anwendungen. OpenZeppelin bietet zwei Produkte: die Vertragsbibliothek und das SDK. Wir verwenden OpenZeppelin in diesem Modul nicht, aber Sie können es später ausprobieren, wenn Sie sichere Blockchainanwendungen schreiben.