Seite auswählen
Dieser Artikel wurde ursprünglich auf dieser Seite veröffentlicht.

Smart Contracts enthalten Codefunktionen und können mit anderen Verträgen interagieren, Entscheidungen treffen, Daten speichern und die Kryptowährung Ethereum an andere senden. Die Möglichkeiten der intelligenten Verträge sind zahlreich und längst nicht ausgeschöpft.

Was ist ein Ethereums Smart Contract?

Obwohl die Blockchain-Technologie häufig mit Bitcoin in Verbindung gebracht wird, gibt es viele andere Anwendungen, die weit über die digitalen Währungen hinausgehen. Tatsächlich ist Bitcoin nur eine von mehreren hundert Varianten, die heute die Blockchain-Technologie nutzen – vom elektronischen Abstimmen über digital erfasstes Immobilienvermögen bis hin zu Compliance und Handel.

  • Indem Ethereum Entwicklern die Werkzeuge zur Verfügung stellt, um dezentrale Anwendungen zu erstellen, macht es all dies möglich.

Ein Smart Contract beschreibt einen Computercode, der den Austausch von Geld, Inhalten, Eigentum, Aktien oder anderen Dingen erleichtern kann. Wenn ein Smart Contract auf dem Blockchain ausgeführt wird, agiert er wie ein automatisierendes Computerprogramm, das automatisch ausgeführt wird, wenn bestimmte Bedingungen erfüllt sind. Da Smarte Verträge auf dem Blockchain laufen, funktionieren sie genau so, wie sie programmiert sind, ohne die Möglichkeit von Zensur, Ausfallzeiten, Betrug oder Eingriffen Dritter.

Obwohl alle Blockketten die Fähigkeit haben, Codes zu verarbeiten, sind die meisten diesbezüglich stark eingeschränkt. Ethereum ist anders. Anstatt eine Reihe von begrenzten Operationen zu offerieren, ermöglicht es Ether den Entwicklern, beliebige Operationen zu erstellen. Das bedeutet, dass Entwickler Tausende von verschiedenen Anwendungen konzipieren können.

Wo kommt die Idee der intelligenten Verträge her?

Mit den vorliegenden Implementierungen, die auf Blockketten basieren, wird der intelligente Vertrag meist im engeren Sinne einer Universalberechnung verwendet, die auf einer Blockkette oder einem verteilten Ledger stattfindet.

  • In dieser Interpretation, die beispielsweise von der Ethereum Foundation oder IBM verwendet wird, ist ein Smart Contract nicht unbedingt mit dem klassischen Konzept eines Vertrages verbunden, sondern kann jede Art von Computerprogramm sein.

Im Jahr 2018 schilderte ein Bericht des US-Senats: Während Smart Contract neu klingen mag, ist das Konzept im grundlegenden Vertragsrecht verankert. In der Regel entscheidet die Justiz über Vertragsstreitigkeiten und setzt Fristen durch, aber es ist auch üblich, eine andere Schlichtungsmethode zu haben, insbesondere bei internationalen Transaktionen. Beim Smart Contract erzwingt ein Programm den im Code integrierten Vertrag.

Nick Szabo gilt als Erfinder der Contract-Technologie. Er bot 1996 an, Computeralgorithmen mit Benutzeroberflächen zu verwenden, um Verträge im Bereich des elektronischen Geschäftsverkehrs abzuschließen. Nach der Idee des Autors musste die Beschreibung der Vertragsbedingungen mit Hilfe von mathematischen Werkzeugen und Programmiersprachen erfolgen.

  • Die Idee von Nick Szabo wurde von Vitalik Buterin in seinem Ether Project (2013) erstmals umgesetzt.

Szabo schlägt vor, dass intelligente Vertragsinfrastrukturen durch replizierte Anlagenregister und Vertragsausführung mit kryptographischen Hash-Ketten und byzantinischer fehlertoleranter Replikation implementiert werden können.

Zu den hypothetischen Vorteilen eines Smart Contract gegenüber seinem gleichwertigen konventionellen Finanzinstrument benannte der Entwickler die Minimierung des Gegenparteirisikos, die Verkürzung der Abwicklungszeiten und die Erhöhung der Transparenz.

Ab 2015 experimentierte UBS mit “Smart Bonds”, welche den Bitcoin-Blockchain nutzen, in dem Zahlungsströme hypothetisch vollständig automatisiert werden konnten, wodurch ein selbstzahlendes Instrument geschaffen wurde.

Was ist das Besondere an dieser Form von Verträgen?

Eine intelligente Ether-Vertragsinfrastruktur kann durch die Replikation von Anlagenregistern oder Blockketten realisiert werden. Ihre Ausführung ist über kryptographische Hash-Ketten und mit einer gewissen Fehlertoleranz möglich.

  • Jeder Knoten im Peer-to-Peer-Netzwerk fungiert als Registry-Titel und führt den Eigentümerwechsel automatisch nach den Regeln des Smart Contract durch, während er die Informationen überprüft und an andere Knoten weitergibt.

Ein Contract ist nicht gleichbedeutend mit vertraglichen Vereinbarungen. Sie tragen dazu bei, die Verletzung einer Vereinbarung kostspielig zu machen, weil sie ein Gut mit digitalen Mitteln kontrollieren. Sie sind auch nicht gleichwertig mit Ricardian-Verträgen, bei denen Dritte, die den Vertrag unterzeichnet haben, eingreifen, um seine Leistung zu überwachen.

Intelligente Verträge haben keine eigene Intelligenz: Es handelt sich um Softwarecodes, die in einer Kette von Blöcken arbeiten und durch externe Daten ausgelöst werden, die es ihnen ermöglichen, andere Daten zu ändern.

  • Diese Verträge sind in der Regel Teil einer dezentralen Anwendung mit einer an der Blockkette verankerten Technologie und mehrere intelligente Verträge können durch dieselbe Anwendung unterstützt werden. Intelligente Verträge sind nicht rechtlich durchsetzbar, können aber Teil einer rechtlichen Vereinbarung sein.

Wofür können die intelligenten Verträge noch verwendet werden?

Alle zentralisierten Dienste können mit Ethereum dezentralisiert werden. Denken Sie an all die Vermittlungsdienste, die es in Hunderten von verschiedenen Branchen gibt.

  • Von offensichtlichen Dienstleistungen wie Darlehen von Banken bis hin zu Vermittlungsdienstleistungen, die von den meisten Menschen selten in Betracht gezogen werden, wie z.B. Titelregister, Abstimmungssysteme, Einhaltung von Vorschriften und vieles mehr.

Ether kann auch zum Aufbau von dezentralen autonomen Organisationen (DAO) verwendet werden. Eine DAO ist eine völlig autonome, dezentrale Organisation ohne einen einzigen Leiter. DAO’s werden mit Programmiercode betrieben, auf einer Sammlung von Verträgen, die auf der Blockchain geschrieben sind.

Der Code wurde entwickelt, um die Regeln und Strukturen eines traditionellen Unternehmens zu ersetzen, wodurch die Notwendigkeit von Mitarbeitern und zentraler Kontrolle entfällt. Eine DAO gehört jedem, der Token kauft. Dabei fungieren Token als Beiträge, die den Menschen Stimmrechte verleihen.

Ein DAO besteht aus einem oder mehreren Verträgen und kann von einer Gruppe gleichgesinnter Personen finanziert werden. Ein DAO arbeitet völlig transparent und völlig unabhängig von jeglichen menschlichen Eingriffen, einschließlich seiner ursprünglichen Schöpfer.

  • Ein DAO wird im Netzwerk bleiben, solange es seine Überlebenskosten deckt und seinem Kundenstamm einen nützlichen Service bietet.

Ethereum wird auch als Plattform für die Einführung weiterer Kryptowährungen genutzt. Aufgrund des von der Foundation definierten ERC20-Token-Standards können andere Entwickler ihre eigenen Versionen dieses Tokens ausgeben und mit einem Initial Coin Offering (ICO) Geld sammeln.

In dieser Fundraising-Strategie setzen die Emittenten des Token einen Betrag fest, den sie sammeln wollen, bieten ihn in einem Crowdsale an und erhalten dafür Ether.

Wo können intelligente Verträge im wirklichen Leben eingesetzt werden?

Intelligente Verträge können sich auf verschiedene Felder beziehen, etwa:

  • Wahlen: Die Abstimmungsergebnisse werden im Blockchain bereitgestellt und auf die Knoten des Netzwerks verteilt. Alle Daten sind verschlüsselt und anonym. Diese Methode schließt jede Möglichkeit der Manipulation mit dem Stimmzettel aus.
  • Logistik: Die Lieferkette ist in der Regel lang und umfasst viele Glieder. Jeder Link muss eine Bestätigung des vorherigen erhalten, sein Vertragsende aufrechterhalten und die Informationen weiterleiten. Das benötigt viel Zeit und ist unproduktiv, während bei einem Smart Contract jeder Teilnehmer den Fortschritt sehen und die Arbeit rechtzeitig erledigen kann.

Intelligente Verträge sorgen für Transparenz in den Vertragsbedingungen, Betrugsschutz. Es kann auch die Sendungsverfolgung mit der Integration des Internet der Dinge ermöglichen.

Wo wird der Contract gespeichert?

Die Programme werden bei den intelligenten Verträgen zusammen mit dem Code und den Daten in der Blockkette gespeichert. In der Blockkette gespeicherte Smart Contracts werden auf allen Knoten des jeweiligen P2P-Netzwerks hinterlegt und gleichzeitig auf allen am Konsens beteiligten Knoten ausgeführt.

 

 

Eine Besonderheit dieser Programme ist, dass sie zusätzlich zu den Daten auch ein Konto haben und verschlüsseltes Geld aufbewahren, genau wie Benutzer. Benutzer können Geld an einen Contract überweisen und dieser kann auch Geld an Benutzer und einen anderen Vertrag senden.

Was ist die virtuelle Maschine?

Vor der Gründung von Ethereum wurden Blockchain-Anwendungen so konzipiert, dass sie eine sehr begrenzte Anzahl von Operationen ausführen können. Bitcoin und andere Kryptowährungen wurden beispielsweise ausschließlich für den Betrieb als Peer-to-Peer-Digitalwährungen entwickelt.

Entwickler standen vor einem Problem. Entweder erweitern sie den von Bitcoin und anderen Anwendungen angebotenen Funktionsumfang, was sehr kompliziert und zeitaufwendig ist, oder Sie entwickeln eine neue Blockchain-Anwendung und eine völlig neue Plattform. Vitalik Buterin, der Schöpfer von der Kryptowährung, erkannte diese Situation und entwickelte einen neuen Ansatz.

Die Kerninnovation, die Ethereum Virtual Machine (EVM), ist eine komplette Turing-Software, die im Netzwerk läuft. Sie ermöglicht es jedem, jedes Programm auszuführen (unabhängig von der Programmiersprache), wenn genügend Zeit und Speicher zur Verfügung steht.

Die Virtual Machine macht den Prozess der Erstellung von Blockchain-Anwendungen so einfach und effizient wie nie zuvor. Anstatt für jede neue Anwendung eine völlig neue Blockchain aufbauen zu müssen, ermöglicht Ethereum die Entwicklung von potenziell Tausenden von verschiedenen Anwendungen auf einer Plattform.

Was benötigen Sie, um einen Smart Contract zu erstellen?

Um einen Contract zu erstellen, benötigen Sie:

  1. den Gegenstand des Vertrages: Das Programm muss Zugang zu den unter Vertrag stehenden Waren oder Dienstleistungen haben, um diese automatisch zu sperren und freischalten zu können.
  2. digitale Signaturen: Alle Teilnehmer initiieren eine Vereinbarung, indem sie den Vertrag mit ihren privaten Schlüsseln unterschreiben.
  3. Vertragsbedingungen: Die Bedingungen eines Vertrags sind in Form einer genauen Abfolge von Arbeitsschritten festgelegt. Alle Teilnehmer müssen diese Bedingungen unterschreiben.
  4. dezentrale Plattform: Der Contract wird im Blockchain dieser Plattform bereitgestellt und auf die Knoten der Plattform verteilt.

Welche Vorteile bietet die dezentrale Plattform?

Da dezentrale Anwendungen auf der Blockchain laufen, profitieren sie von all ihren Eigenschaften:

  • Unveränderlichkeit – Ein Dritter kann keine Änderungen an den Daten vornehmen.
  • Korruption & Manipulationssicherheit – Apps basieren auf einem Netzwerk, das auf dem Prinzip des Konsenses basiert und Zensur unmöglich macht.
  • Sicher – Ohne zentrale Fehlerstelle und gesichert durch Kryptographie sind Anwendungen gut gegen Hacking-Angriffe und betrügerische Aktivitäten geschützt.
  • Keine Ausfallzeiten – Apps enden nie und können nie abgeschaltet werden.

Was ist der Nachteil dezentraler Anwendungen?

Obwohl sie eine Reihe von Vorteilen mit sich bringt, sind die Smart Contracts nicht fehlerfrei. Da Smart Contract Codes von Menschen geschrieben werden, sind sie nur so gut wie die Menschen, die sie schreiben. Code-Bugs oder Versehen können dazu führen, dass unbeabsichtigte unerwünschte Aktionen durchgeführt werden.

Wenn ein Fehler im Code ausgenutzt wird, gibt es keine effiziente Möglichkeit, einen Angriff oder eine Ausnutzung zu stoppen, außer einem Netzwerkkonsens zu erzielen und den zugrunde liegenden Code neu zu schreiben. Dies steht im Widerspruch zur Essenz der Blockkette, die unveränderlich sein soll.

  • Außerdem wirft jede Maßnahme einer zentralen Partei ernsthafte Fragen über den dezentralen Charakter einer Anwendung auf.

Wie sicher sind die digitalen Verträge?

Ein blockchainbasierter Smart Contract ist für alle Benutzer des Blockchain sichtbar. Dies führt jedoch dazu, dass Fehler, einschließlich Sicherheitslücken, für alle sichtbar sind, aber nicht schnell behoben werden können. Ein solcher Angriff, der schwer zu beheben war, wurde im Juni 2016 erfolgreich auf der DAO durchgeführt, wobei 50 Millionen US-Dollar in Ether abgezogen wurden, während die Entwickler versuchten, zu einer Lösung zu gelangen, die einen Konsens erzielen sollte.

Das DAO-Programm hatte eine Zeitverzögerung, bevor der Hacker die Gelder entfernen konnte; eine Hartgabel der Ethereum-Software wurde erstellt, um die Gelder vor Ablauf der Frist vom Angreifer zurückzuholen.

Es gab jedoch keinen absoluten Konsens über diese Änderung und ein kleiner Teil der Gemeinschaft setzte diese Änderung nicht um, was zur Bildung von zwei separaten Blockketten führte: eine offizielle mit dem Ether als Währungseinheit (Symbol: ETH) und ihre Abspaltung mit dem klassischen Ether als Währungseinheit (Symbol: ETC).

Zu den Problemen in den Verträgen gehören insbesondere Mehrdeutigkeiten und einfach zu sichernde Konstrukte in der Vertragssprache Solidity, Compiler Bugs, Virtual Machine Bugs, Angriffe auf das Blockchain-Netzwerk, die Unveränderlichkeit von Bugs und dass es keine zentrale Quelle gibt, die bekannte Schwachstellen, Angriffe und problematische Konstrukte dokumentiert.

Ethereum Contracts für Anfänger – Wie kann man darauf zugreifen?

Es gibt viele Möglichkeiten, sich in das Netzwerk einzubinden. Eine der einfachsten Optionen ist die Verwendung des nativen Mist Browsers. Mist bietet eine benutzerfreundliche Schnittstelle und ein digitales Wallet für Benutzer, um Ethereum zu handeln und zu speichern sowie intelligente Verträge zu schreiben, zu verwalten, einzusetzen und zu nutzen.

  • So wie Webbrowser Zugang ermöglichen und Menschen beim Navigieren im Internet helfen, bietet Mist ein Portal in die Welt der dezentralen Blockchain-Anwendungen.

Es gibt auch die MetaMask Browser-Erweiterung, die Google Chrome in einen Ethereumbrowser verwandelt. MetaMask ermöglicht es jedem, dezentrale Anwendungen einfach über seinen Browser auszuführen oder zu entwickeln. Obwohl MetaMask ursprünglich als Chrome-Plugin entwickelt wurde, unterstützt es Firefox und den Brave Browser.

 

 

Mist, MetaMask und eine Vielzahl anderer Browser sind noch am Anfang, um blockkettenbasierte Anwendungen für mehr Menschen zugänglich zu machen als je zuvor. Auch Personen ohne technischen Hintergrund können nun potenziell Blockchain-Anwendungen erstellen. Dies ist ein revolutionärer Sprung für die Blockchain-Technologie, die dezentrale Anwendungen in den Mainstream bringen könnte.

Was sind die Unterschiede zwischen Smart Contracts vs. Bitcoin?

Ethereum hat sich zum beliebtesten Blockchain für die Erstellung intelligenter Verträge entwickelt. Eines der Hauptziele der Plattform war auch die Unterstützung von Verträgen. Damit unterscheidet sich Ethereum von Anfang an von Bitcoin, das vor allem als digitale Währungsplattform konzipiert wurde.

Im Zuge der Weiterentwicklung des Bitcoin-Protokolls hat es Unterstützung für Smarte Verträge erhalten. Die Funktionalität ist bei Bitcoin nicht so programmierbar und erweiterbar wie bei Ethereum. Durch die Verwendung von Funktionen, die Bitcoin durch Verbesserungsvorschläge hinzugefügt wurden, können jedoch bestimmte intelligente Vertragsfunktionen durch Bitcoin-Skripting erreicht werden.

MAD Escrow kann für intelligente Verträge in Bitcoin verwendet werden und stellt eine Technik dar, die Betrug in einer Transaktion effektiv verhindert, ohne die Aufsicht eines Dritten zu erfordern. In einem MAD Escrow-Vertrag platzieren sowohl Käufer als auch Verkäufer Gelder in einem Escrow-Vertrag. Der Verkäufer zahlt zunächst einen Betrag ein, den der Käufer als Symbol für einen virtuellen Händedruck verwenden soll.

Dies kann zwischen 0 und 100 Prozent des Kaufpreises des Artikels liegen. Der Käufer zahlt dann einen Betrag in Höhe des Handshake-Betrages zuzüglich des Preises des von ihm gekauften Artikels ein. Die hinterlegten Gelder werden niemandem freigegeben, bis beide Parteien bestätigen, dass die Transaktion zufriedenstellend abgeschlossen wurde.

  • Die Technik verhindert, dass beide Parteien durch Betrug in einer Transaktion profitieren.

Für Particl ist das wichtigste Contract Feature in Bitcoin der OP-Code OP_CHECKLOCKTIMEVERIFY, der von Peter Todd als Bitcoin Improvement Proposal (BIP) eingeführt wurde. Der Opcode ermöglicht es, Skripte zu schreiben, die verhindern, dass Gelder in einer Multi-Signatur-Wallet ausgegeben werden, bis ein bestimmtes Signaturmuster implementiert ist oder eine bestimmte Zeit vergeht.

Particl verwendet den BIP 65 Opcode, um MAD Escrow Contracts zu ermöglichen, indem es Gelder in einer Multi-Signatur-Wallet sperrt, bis alle Parteien die Transaktion abschließen. Mit diesem Ansatz können Käufer und Verkäufer auf der E-Commerce-Plattform von Particl arbeiten, ohne sich Sorgen um Betrug oder unnötige Gebühren zu machen.

  • Sie müssen auch nicht auf die Privatsphäre verzichten, da kein Dritter an der Transaktion beteiligt ist.

Ethereum’s Idee bietet zwar mehr erweiterbare Unterstützung für Smart Contracts, aber diese Flexibilität birgt ein höheres Risiko für Sicherheits- und Datenschutzrisiken. Je mehr Code in einen Contract einfließt, desto größer ist das Risiko, eine Schwachstelle einzuführen, die ein Eindringen ermöglichen könnte.

Ethereum könnte eine starke Grundlage für das Schreiben von sehr komplexen Smart Contracts sein, oder solchen, bei denen Sicherheit und Datenschutz weniger Priorität haben. Es gibt viele Dutzende von Bitcoin-basierten Blockchain-Projekten, aber die meisten bauen einfach Kryptowährungen, die von Bitcoin abgezweigt wurden.

Sie nutzen nicht das Potenzial von Bitcoin, die Grundlage für eine vollständig dezentrale Plattform zu schaffen, die eine Vielzahl von DApps und programmierbaren Funktionen unterstützt.

Ethereum Smart Contracts in Python?

Es gibt viele Python-Bibliotheken, die sich auf Ethereum beziehen, aber es gibt zwei, die am häufigsten verwendet werden: Web3.py und Pyethereum. Die Ethereum Virtual Machine (EVM) wiederum ist der Teil von Ethereum’s Protokoll, das den Code in Contracts tatsächlich ausführt und deren Ergebnisse bestimmt.

Wenn Sie also einen Ethereum-Knoten in Python ausführen möchten, ist Pyethereum ein guter Ausgangspunkt. Selbst wenn Sie vollkommen zufrieden sind mit der Ausführung Ihrer Contracts, ohne Ihren eigenen Knoten zu betreiben, ist Pyethereum immer noch eine gute Bibliothek – es enthält eine Reihe von Funktionen, die nützliche Dinge tun, wie z.B. die Berechnung der Adresse eines Benutzers aus seinem privaten Schlüssel.

Web3.py ist hingegen eine Bibliothek für die Interaktion mit Ethereum’s Blockchain – für den Transfer von Ether zwischen Konten, die Veröffentlichung von Contracts und die Auslösung von Funktionen, die an bestehende Contracts angehängt sind. Es ist inspiriert von der beliebten Javascript-Bibliothek Web3.js.

Wie wenden Sie Ethereum-Contracts in Java an?

Um transaktionsbasiertes Ethereum in der Java-Welt zu implementieren kann die web3j-Bibliothek genutzt werden. Dies ist ein leichter, reaktiver, sicherer Typ von Java und der Android-Bibliothek, der für die Integration mit Knoten auf Ethereum-Blockketten gut geeignet ist.

Will man dafür Ethereum lokal betreiben, dann können zwei beliebte Ethereum-Clients zum Einsatz kommen: Geth und Parität. Standardmäßig verbinden sie den Knoten mit Ethereum’s Hauptnetzwerk. Die beste Option für den Einstieg ist, es einfach im Entwicklungsmodus auszuführen, indem Sie den Parameter –dev in Docker mit dem Befehl container running setzen.

  • Nach dem Ausführen der JavaScript-Konsole können Sie ganz einfach ein Standardkonto (z.B. Coinbase) mit der Liste aller verfügbaren Konten und deren Salden anzeigen. Testkonten können Sie mit der Funktion personal.new Account(password) aufrufen.
  • Nachdem Sie die erforderlichen Konten erstellt haben, können Sie einige Testtransaktionen mit der JavaScript-Konsole durchführen und einige Gelder von einem Basiskonto auf die neu erstellten Konten übertragen.

Wenn Sie den web3j-Starter in die Projektabhängigkeiten aufgenommen haben, ist alles, was Sie brauchen, um die Web3j-Bean automatisch zu aktivieren. Web3j ist verantwortlich für das Senden von Transaktionen an den Geth-Clientknoten. Es erhält eine Antwort mit einem Transaktionshash (wenn es vom Knoten akzeptiert wurde) oder einem Fehlerobjekt (wenn es abgelehnt wurde).

Dieser Beitrag erschien zuerst auf Blockchain Hero.

Bildquellen: https://pixabay.com