Smart Contracts und wie sie funktionieren
Bei Smart Contracts (intelligente Verträge) handelt es sich um Programme, die auf der Blockchain ausgeführt werden. Im Unterschied zu einem klassischen Programm auf dem Computer führen die Netzwerkknoten die Programme aus. Nick Szabo hat den Begriff 1993 geprägt. Seine Absicht […]




Welche Themen sollen wir vertiefen?
Wähle aus, was dich aktuell beschäftigt. Deine Auswahl fließt direkt in unsere Themenplanung ein.
Crypto-News, die wirklich Mehrwert bringen.
Wöchentlich. 60 Sekunden Lesezeit. Sorgfältig kuratiert von unserer Redaktion: kein Hype, keine Werbe-Mails, kein Spam.
Bei Smart Contracts (intelligente Verträge) handelt es sich um Programme, die auf der Blockchain ausgeführt werden. Im Unterschied zu einem klassischen Programm auf dem Computer führen die Netzwerkknoten die Programme aus.
Nick Szabo hat den Begriff 1993 geprägt. Seine Absicht war es Verträge durch Computerprogramme darstellen zu lassen. Durch Kryptographie und Blockchain sind alle notwendigen Komponenten, nämlich Sicherheit und Transparenz, vorhanden um sinnvolle Verträge ohne Drittpartei zu definieren. Der Smart Contract beschreibt, wer mit ihm interagieren darf und welche Rechte bzw. Besitzrechte er hat. Dazu ein Beispiel später.
Was ist ein Computerprogramm?
Ein Computer besteht in der Regel aus drei Grundeinheiten: dem Rechenwerk, dem Steuerwerk und dem Speicher. Ein Computerprogramm beschreibt für die Computerhardware interpretierbare Befehle und die Variablen für eine sinnvolle Anwendung. Machen wir dazu als Beispiel, die Berechnung einer Fibonaccizahl aus der Fibonacci-Reihe. Diese unendliche mathematische Reihe startet mit den Zahlen 1,1. Jede der folgenden Zahlen ist die Summe der vorherigen Zahl und der Zahl vor der Vorherigen. Mathematisch ausgedrückt zn= z(n-1)+z(n-2) für n >= 3 n(1) =n (2)= 1. Als Ergebnis erhalten wir die Reihe 1,1,2,3,5,8,13,21,34,55…. unendlich.
Nun schreiben wir ein Programm für den Computer, das die Fibonaccizahl an der n-ten Position berechnet. Wir brauchen für unser Programm vier Variablen: “a” und “b” für die letzte und vorletzte Zahl und “c” für das Ergebnis. “i” enthält die gesuchte Position. Alle Variablen sind natürliche Zahlen, also keine Nachkommastellen. Sie werden vom Computer auf Adressen im Speicher abgebildet. Jeder Befehl wird vom Steuerwerk interpretiert und ausgeführt. Wie folgt, schaut der Pseudocode für unser Programm aus:
Befehl 1: Hole einen Wert vom Benutzer und weise ihn der Variable i zu (unsere gewünschte Position in der Fibonacci Reihe)
Befehl 2: Weise der Variable a den Wert 1 zu (schreibe 1 in den Speicher der a zugeteilt ist)
Befehl 3: Weise der Variable b den Wert 1 zu
Befehl 4: Weise der Variable c den Wert 1 zu
Befehl 5: Ziehe von der Variable i den Wert 2 ab (die ersten beiden Zahlen der Reihe haben wir schon in a (Zahl 1) und b (Zahl 2))
Befehl 6: Wenn i kleiner oder gleich 0 ist, springe zu Befehl 12 (sonst folge der Befehlsreihenfolge)
Befehl 7: Weise der Variable a den Wert der Variable b zu
Befehl 8: Weise der Variable b den Wert der Variable c zu
Befehl 9: Addiere Wert von Variable a mit Wert von Variable b und weise das Ergebnis Variable c zu
Befehl 10: Subtrahiere vom Wert von Adresse i die Zahl 1
Befehl 11: Springe zu Befehl 6
Befehl 12: Gib den Wert von Variable c auf dem Bildschirm aus
Für eine Ausführung auf dem Computer muss unser Pseudocode natürlich im Maschinencode vorliegen. Dabei hat jeder Befehl eine entsprechende Nummer, die vom Steuerwerk interpretiert wird. Diese Befehlskennzeichnungen sind an die Hardware geknüpft. Hier findet man z.B. die Befehlssätze des verbreiteten x86-Prozessors.
In unserem Beispiel sehen wir, dass zwischen Befehl 5 und Befehl 11 eine Schleife ist. Schauen wir uns den Zustand der Variablen an, wenn das Steuerwerk am Befehl 5 ist. Dazu führen wir das Programm mit der Eingabe 6 aus, wir wollen also die 6te Fibonacci Zahl berechnen:
Start: a= 1, b= 1, c= 1, i= 4
Durchgang 1: a= 1, b= 1, c= 2, i= 3
Durchgang 2: a= 1, b= 2, c= 3, i= 2
Durchgang 3: a= 2, b= 3, c= 5, i= 1
Durchgang 4: a= 3, b= 5, c= 8, i= 0
Bildschirmausgabe ist 8, also wurde die gewünschte Zahl richtig berechnet. Man nennt solche Rechenvorschriften auch Algorithmen.
Die Technik der Smart Contracts
Smart Contracts funktionieren im Prinzip gleich. Im Unterschied zu den meisten Computerprogrammen wird der Code von Smart Contracts auf virtuellen Maschinen (VM) ausgeführt. Das heißt, nicht eine verdrahtete Schaltlogik interpretiert die Befehle, wie in unserem Beispiel das Steuerwerk, sondern ein Programm. Damit ist die Ausführung von Smart Contracts plattformunabhängig und wird meistens von der Nodesoftware bewerkstelligt. Die Variablen werden nicht im Speicher abgelegt, sondern auf die Blockchain geschrieben.
Wir haben jedoch ein Problem. Schauen wir unser Beispiel des Computerprogramms an. Was passiert, wenn ein Programmierer aus Versehen Befehl 9 vergisst? Richtig, es kommt zu einer Endlosschleife, das Programm terminiert nicht. Dies würde eine Fehlfunktion in der ausführenden Nodesoftware verursachen und die Blockchain lahmlegen. Deshalb hat man sich bei Bitcoin für eine VM entschieden, die keine Sprungbefehle kennt.
Wir sehen, dass wir damit an Macht verlieren, da wir jeden einzelnen Schleifendurchlauf explizit programmieren müssen und an Flexibilität einbüßen. Unser Programm wäre ziemlich beschränkt und würde, je nachdem wie lange die Reihe berechenbar sein soll, viel mehr Speicher verbrauchen. Auf der anderen Seite sind solche “nicht Turing-Vollständigen” Programme gegen Endlosschleifen abgesichert. Jedoch kann dieses Modell nicht den Ansprüchen von Smart Contracts gerecht werden.
Ein weiteres wichtiges Kriterium ist der zwingende Determinismus. Alle Programme müssen zum exakt selben Ergebnis kommen. So müssen auch Zufallsgeneratoren auf jeder Maschine dasselbe Ergebnis liefern, was Zufälligkeit an sich äußerst schwierig macht. Wenn der Zufallsgenerator so konzipiert ist, dass er überall dasselbe Ergebnis liefert, ist dies ein Widerspruch von Zufälligkeit an sich.
Die ersten praktischen Smart Contracts
Ethereum ermöglichte als erstes Projekt Programme auf der Blockchain auszuführen, die allen Ansprüchen von Smart Contracts gerecht werden und demnach so bezeichnet werden können. Ein Programmierer programmiert zuerst einen Smart Contract, wandelt ihn mithilfe eines Compilers in für die Virtuelle Maschine verständlichen Bytecode um und sendet diesen an die Ethereum Blockchain. Er bekommt eine Kontoadresse als Rückgabewert, auf welcher sich der Smart Contract befindet und jeder kann mit ihm interagieren. Ein Smart Contract auf Ethereum kann mehrere Funktionen beinhalten, über die der Benutzer mittels Transaktionen zugreift.
In unserem Beispiel würde der Benutzer den Wert der Stelle, an der er die Fibonaccizahl gerne berechnet haben möchte über eine Transaktion übergeben. Sobald der Miner die Transaktion in seinen Block einbindet, führt er den Code auf der VM aus und ändert den Status der Variablen. Hat ein Miner einen Block gefunden (Proof of Work Konsensmechanismus), strahlt er ihn ins Netzwerk aus. Die andern Miner validieren die Zustände des Blocks durch Ausführen des Programms und fügen ihn nur an die Blockkette, wenn sie zu dem selben Ergebnis kommen.
Das Problem mit den Endlosschleifen löst Ethereum damit, dass für jeden Befehl, den die VM ausführt, eine Gebühr (Gas) entrichtet werden muss. Diese Gebühr bekommt der Miner, der den Block gefunden hat.
Beispiel Token Smart Contract
Machen wir zum Verständnis ein einfaches Beispiel, wie ein Token Smart Contract, wie der bekannte ERC-20, ungefähr aussehen könnte. Wir bauen die wichtige Transferfunktion, eine ICO Funktion und eine Zerstörungsfunktion, die den ihn unbrauchbar macht. Unser Smart Contract soll es erlauben zuerst ein ICO abzuhalten, bei dem mit Ether Token gekauft werden. Sobald das ICO beendet ist und alle Token verkauft sind, kann man die sie transferieren. Ein Token kostet beim ICO 0,01 ETH.
Als Variablen haben wir den Besitzer des Smart Contracts “o”, die Anzahl der Token “t”. Zusätzlich führen wir eine erweiterbare Liste “l”, die pro Eintrag die Kontoadresse und eine dazugehörige Zahl (Anzahl Token) enthält. In dieser Liste stehen also die Ethereumadressen der Besitzer und ihre Anzahl an Token. Den Sender der Transaktion “sender” wird bei jeder Transaktion mitgegeben.
Der Besitzer bzw. Ersteller des Smart Contracts “o” ist unsere Ethereumadresse 0x1Fjxk… Die Tokenanzahl “t” beträgt eine Mio.
Funktion ICO (ETH)
Start
Ist t = 0 ? Falls ja, springe zu Ende
Ist der Sender in der Liste l schon vorhanden? Falls nicht erzeuge Eintrag und setze Tokenzahl l[sender].token auf 0
Subtrahiere von der Tokenzahl t ETH/0,01
Addiere zu l[sender].token ETH/0,01
Ist Tokenzahl t < 0? Falls ja, dann addiere zu l[sender].token t, setze t auf 0 und gib ETH-l[sender].token *0,01 an Ether zurück
Ende
Funktion Tokentransfer (empfänger, tokenanzahl):
Start
Sind alle Token verkauft? (t = 0 ?) Falls nicht springe zu Ende
Ist der sender in der Liste l enthalten? Falls nicht springe zu Ende
Hat der Sender die nötige Anzahl an Token? Falls nicht springe zu Ende.
Ist der Empfänger in der Liste l enthalten? Falls nicht erzeuge Eintrag mit seiner Adresse und dazugehöriger Variable für die Tokenanzahl und setze l[empfänger].token auf 0
Subtrahiere von der l[sender] die tokenanzahl
Addiere zur l[empfänger] die tokenanzahl
Ende
Funktion Zerstörekontrakt
Start
Ist sender.Adresse = o = 0x1Fjxk… ? Falls ja zerstöre den Smart Contract
Ende
Wenn man jetzt zum Beispiel Token an jemanden anderes Senden möchte, erstellt man eine Transaktion mit den Parametern, “wie viele”, “an wen” und der Schnittstelle in dem Fall Tokentransfer. Zusätzlich fügt man hinzu, wie viel Gas man maximal bezahlen möchte, wie das Konto (Ethereumadresse) lautet, wo sich der Smart Contracts befindet und sendet diese Transaktion ans Netzwerk. Jede Transaktion muss wie bei Bitcoin mit dem privaten Schlüssel signiert werden. Somit ist garantiert, dass “sender” auch wirklich der rechtmäßige Sender ist.
Vorteile von Smart Contracts
Wir erahnen aus unserem Beispiel, dass die Möglichkeiten von Interaktionen zwischen verschiedenen Parteien schier unendlich sind. Von Multisignaturwallets, wo mehrere Parteien ein Vermögen verwalten bis hin zu komplizierten automatisierten Bezahl bzw. Geschäftsabwicklungen ist alles möglich. Wahlen auf der Blockchain, tokenisierte Vermögenswerte, tokenisierte Immobilien, verwalten von Gegenständen aus Computerspielen oder Lieferkettenverfolgung sind gänzlich ohne Mittelsmann machbar.
Der Grad an Automatisierung ist enorm. So könnten z.B. die Steuern in Zukunft über einen Smart Contract in Echtzeit automatisch bezahlt werden und nicht wie heute durch Vorleistung und jeder Bürger durch die Transparenz sehen, wo genau sein Geld hinfließt. Smart Contracts sind, sofern sie richtig programmiert wurden zuverlässig und unveränderbar. Sie sind einfach zu implementieren und kostengünstig.
Nachteile von Smart Contracts
Die Techologie ist recht jung und muss noch reifen. Bei Ethereum z.B. herrscht das “Code is Law” Gesetz. Ein Fehler führt zu unumkehrbaren Situationen, eventuell Schäden. So geschehen bei der Parity Multisignaturwallet. Dort ist es einem Interakteur gelungen die Besitzeradresse einer Bibliothek mit seiner eigenen zu ersetzen. Dadurch hatte er Zugriff auf die Zerstörungsfunktion (siehe unser Beispiel) und führte sie aus, knapp 514.000 Ether klemmen bis heute in diesem Smart Contract fest.
In unserem Beispiel ist der Smart Contract durch die Zerstörungsfunktion, auf die der Erzeuger zugreifen kann ziemlich zentralisiert und verwundbar. Ein weiterer großer Nachteil ist die Unvermeidbarkeit von Programmierfehlern. Auch müssen die Interakteure selbst den Code lesen können oder eben Dritten vertrauen. Bösartige Programmierer könnten bewusst Hintertürchen einbauen. Diese Probleme will die Blockchainplattform EOS z.B. mit Ricardian Contracts lösen.
Fazit
Smart Contracts sind eine äußerst vielversprechende Technologie. Noch muss an den Problemen der zugrunde liegenden Blockchaintechnologie, Skalierung und Benutzerfreundlichkeit, gearbeitet werden. Wegen ihrer Vorteile in Sachen Automatisierung, Transparenz und Kosten werden Smart Contracts schon bald unseren Alltag beherrschen.
Kryptowährungen kannst du auf Binance*, Coinbase* oder eToro* kaufen. Hier geht es zu unserem ->Starterkit.
Folge uns auf Twitter, Instagram, Facebook, Steemit und tritt unserem Telegram News Kanal oder Newsletter bei.
Du würdest diesen Artikel gerne kommentieren? Dann tritt einfach unserer Telegram Diskussions-Gruppe bei.
*Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du über diesen Link etwas kaufst, bekommen wir eine kleine Provision vom Händler. Der Preis verändert sich dabei für dich nicht.
Verwandte Artikel
- 3 Probleme, die die Blockchain lösen muss, um das Web 3.0 zu bestimmen
- Dezentrale Apps und Services nehmen in Form einer neuen Blockchain Plattform Gestalt an
- Probleme bei Ethereum 2.0: Wird Ethereum durch Proof-of-Stake am Ende zentralisiert?
- Wird uns Polygon 2.0 der dezentralen Governance näher bringen?
- Die 3 Arten von Kryptowährungen – Was für unterschiedliche Kryptos gibt es?
Welche Themen sollen wir vertiefen?
Wähle aus, was dich aktuell beschäftigt. Deine Auswahl fließt direkt in unsere Themenplanung ein.
Crypto-News, die wirklich Mehrwert bringen.
Wöchentlich. 60 Sekunden Lesezeit. Sorgfältig kuratiert von unserer Redaktion: kein Hype, keine Werbe-Mails, kein Spam.
August 27, 2021 12:48 AM

Die schnellsten Blockchains – Diese 6 Netzwerke transferieren mit Lichtgeschwindigkeit
Was sind die derzeit schnellsten Blockchains? Wir stellen 6 Netzwerke vor, die extrem hohe Transaktionsgeschwindigkeiten aufweisen.
January 13, 2021 1:55 PM

Was sind Token-Swaps?
Der Begriff Token-Swap beschreibt einen Prozess, in dem digitale Tokens von einer Blockchain auf eine andere umgezogen werden. Am häufigsten geschieht so etwas, wenn ein Projekt zu seinen Anfängen auf einer großen Blockchain, wie etwa der von Bitcoin oder Ethereum, […]
February 28, 2020 8:19 PM

Die Grundlagen der Blockchain Technologie verstehen
In diesem Artikel erklären wir ein paar der Schlüsselbegriffe, welche immer im Zusammenhang mit einer Blockchain auftauchen.
February 26, 2020 9:13 PM

Book Review: “Mit Blockchain zum Kryptoinvestor” – Jens M. Helbig
Bestseller-Autor Jens M. Helbig liefert mit seinem neuen Buch eine umfassende Einsteigerhilfe für Neulinge im Krypto-Kosmos.
September 27, 2019 10:04 PM

800 $ statt 257 Millionen $ – Die fetten ICO Jahre scheinen vorbei zu sein
Immer wenn neue Technologien auftauchen, entsteht viel Wirbel um sie herum. Kryptowährungen und Blockchain wurden als weltverändernde Technologien gefeiert. Aber um ehrlich zu sein, wie bei allem auf der Welt, gibt es klare Grenzen, was die Blockchain leisten kann. Viele […]
February 29, 2020 3:27 PM

Blockchain macht globale Fortschritte auf der Credits-Plattform
Die Blockchain-Adaption findet statt, sie ist real. Obwohl langsam und mit diversen Herausforderungen verbunden, ist der Prozess im Gange. Und wie jede neue Technologie, die die Einführungsphase durchläuft, durchläuft auch die Blockchain eigene Veränderungen, da sie sich als Produkt weiterentwickelt, […]
February 18, 2020 10:07 PM

Seit wann gibt es Blockchain? Wann wurde Blockchain erfunden?
Trotz des massiven Preissturzes nach dem großen Hype Ende 2017 ist die Blockchain noch in aller Munde. Die Technologie wird massiv weiterentwickelt bzw. wird daran geforscht. Heute wollen wir uns der Frage widmen, wann Blockchain eigentlich erfunden wurde. Wie immer […]
October 13, 2018 11:56 PM

Australien baut seine Präsenz im Blockchain Bereich aus
Australien arbeitet weiter daran, seine Präsenz in der Blockchain Entwicklung für Regierungsaufgaben zu erhöhen.
September 11, 2022 1:23 PM

Was ist die Ethereum Prognose für das Jahr 2025?
Was ist die Ethereum Prognose für das Jahr 2025? Wir stellen eine Prognose vor, in der wir uns die wichtigsten Faktoren dazu anschauen.
March 31, 2021 5:35 AM

Smart Contracts rechtlich anerkannt – Gleichwertigkeit mit „traditionellen“ Verträgen
Ein neues Gesetz im US-Bundesstaat Iowa stellt Smart Contracts mit "traditionellen" Verträgen gleich. Alle Infos dazu hier!
December 24, 2023 4:37 PM

Aufregende Krypto-Events, auf die du im Jahr 2024 achten solltest
Was sind die aufregendsten Krypto-Events, die im Jahr 2024 anstehen? Wir geben einen Überblick, was uns im kommenden Jahr erwartet.
October 25, 2023 9:00 AM

Das NFT-Handelsvolumen auf Ethereum +124 %: Was kommt als Nächstes?
Das NFT Handelsvolumen auf Ethereum hat in den letzten Tagen ein Plus von 124% verzeichnet. Kommt der neue Bullrun für NFTs?
August 1, 2023 5:13 PM

Die Folgen von der HEX Anklage: Ist Ethereum in Gefahr?
Ist Ethereum in Gefahr, ebenfalls von der US-Börsenaufsicht SEC angeklagt zu werden? Wir schauen uns den Sachverhalt an.
July 10, 2023 9:30 PM

Welche Kryptowährungen sind dezentral?
Ein grundlegendes Ziel von Kryptowährungen ist es, ein System zu schaffen, das nicht zensiert werden kann. Niemand soll das Guthaben der Nutzer blockieren oder die Kontrolle über es übernehmen können. Dazu bedient man sich des Mittels der Dezentralität. Eine zentrale […]
May 3, 2023 1:30 AM

5 Risiken von Kryptowährungen, die du kennen solltest, bevor du investierst
Was sind die Risiken von Kryptowährungen, die du kennen und vermeiden solltest? Wir stellen 5 bekannte Risiken vor.
April 28, 2023 5:41 PM

Die große Ethereum Prognose für den Mai – Sind 3.000 Dollar in den nächsten Wochen möglich?
Kann der Ethereum Kurs in den kommenden Wochen auf 3.000 Dollar steigen? Wie sieht die Ethereum Prognose für den Mai 2023 aus?
March 3, 2023 5:20 PM

Shanghai-Update: Kursexplosion bei Ethereum oder droht ein Wertverlust?
Das Shanghai Update von Ethereum wurde auf den April 2023 verschoben. Was könnten die Auswirkungen vom Update auf den ETH Kurs sein?
February 26, 2023 8:22 PM

Kann Ethereum jemals den Bitcoin überholen? – Ein Blick in die Zukunft
Ist es überhaupt noch möglich, dass Ethereum in der Zukunft den Bitcoin überholen kann? Wir schauen dabei in die Zukunft des Netzwerkes.
January 16, 2023 7:11 AM

Was ist der beste Altcoin neben Ethereum? – Wir gehen die Vor- und Nachteile aller großen Altcoins durch!
Was sind die besten Altcoins neben Ethereum? Wir nennen euch die Vor- und Nachteile der wichtigsten Altcoins.
December 8, 2022 4:01 AM

Die Top 3 Kryptowährungen mit 100x Potenzial im Jahr 2023
Das Jahr 2023 steht vor der Tür und einige Kryptowährungen könnten explodieren. Welche Coins haben dabei ein Potenzial von 100x?
October 28, 2022 9:12 PM

Bitcoin versus Ethereum: Welche Kryptowährung ist die beste?
Bitcoin oder Ethereum? Die wichtigsten Unterschiede der beiden größten Kryptowährungen. Ein Gastbeitrag von 2022, im September 2026 aktualisiert.
August 9, 2022 12:36 AM

Frontal Reportage – Sind NFTs reiner Betrug?
In einer kürzlich veröffentlichten Reportage behauptet Frontal, dass NFTs nichts als Betrug sind. Wir gehen auf die Vorwürfe ein.
June 29, 2022 10:12 AM

Blockchaintechnologie- Nachfolger der Cloud?
Blockchain oder Cloud- Welche der beiden Technologien wird sich in Zukunft durchsetzen? Dezentralität oder Rechenzentren?
May 4, 2022 12:33 PM

Was ist eine Blockchain? – Die Technik einfach erklärt
Was ist die Blockchain? Wir erklären die Technologie und sagen, was die Blockchain zu bieten hat. Weiterhin geben wir einen kurzen Ausblick.
March 8, 2022 12:34 PM

Der Weg in die dezentrale Weltwirtschaft: Was sind DAOS?
Pleasr-, Maker-, und CityDAO sagen dir nichts? Wir klären dich über die nächste große Blockchaininnovation auf! Heute dreht sich alles um DAOs
Vielleicht auch interessant


