Smart Contract

Finden Sie dieser Artikel interessant?


Smart contract

Smart Kontrakt (Eng. smart contract, self-executing contract, blockchain contract, oder digital contract) [1] – ist ein elektronischer Algorithmus, der entwickelt wurde, um den Prozess der Ausführung von Verträgen (Contracts) in einem Block zu automatisieren. Die Hauptaufgabe von Smart Contracts besteht darin, die Diskrepanz zwischen den Auslegungen der Vertragsbedingungen durch die Parteien auszuschließen.


Inhaltsverzeichnis

Geschichte der Schöpfung

Der Autor der Idee von Smart Contracts war Nick Szabo. In seinen Arbeiten von 1996-1997 schlug er vor, Computeralgorithmen mit Benutzerschnittstellen für Transaktionen im Bereich des elektronischen Handels zu verwenden. Nach der Idee des Autors sollte die Beschreibung der Vertragsbedingungen mit mathematischen Werkzeugen und Programmiersprachen erfolgen. In der Praxis wurde die Idee von Smart Contracts erstmals von Vitalik Buterin in seinem Projekt Ethereum (2013) umgesetzt.

Grundprinzipien der Arbeit

Was sind Smart Contracts? Intelligente Verträge einfach in 6 Minuten erklärt!

Die Verwirklichung der Idee von Sabo wurde mit dem Aufkommen der Blockchain-Technologie möglich. Es gewährleistet die Gültigkeit und den Schutz eines Smart-Vertrages durch folgende Eigenschaften:

  • Dezentraler Systemtyp. Keine Vertragspartei kann den Text des Dokuments ändern, da eine Kopie des Vertrags in der Registrierung gespeichert ist, die auf viele Knoten des Netzwerks verteilt ist.
  • Datenbanken sind geöffnet. Vertragsbedingungen stehen allen Nutzern des Blocks zur Verfügung. Dies vereinfacht die Prüfung der Ausführung von Verträgen.
  • Formalisierung der Vertragsbedingungen. Die Überprüfung und Erfüllung der Vertragsbedingungen erfolgt durch den Programmcode (if-this-then-that (IFTTT)). Daher ist die Möglichkeit einer missbräuchlichen Vertragserfüllung ausgeschlossen.
  • Atomare Operationen. Der Vertrag wird entweder erfolgreich umgesetzt oder nicht ausgeführt.
  • Vollständigkeit auf Turing. Die Blockkette, in Ethereum vorgestellte ist, hat eingebaut Turing. Dies ist eine vollständige Sprache für die Entwicklung intelligenter Verträge, über die die Benutzer selbst Verträge erstellen können.

Ausführung eines Smart-Contracts

In Ethereum wird der Smart-Contractscode in einer spezifischen Umgebung ausgeführt – der virtuellen Maschine Ethereum (EVM). Jeder Knoten des Netzwerks überprüft den neuen Block und durchläuft die Transaktionen, die in diesem Block enthalten sind. Außerdem implementiert es den von diesen Transaktionen in EVM initiierten Code.
Jeder Netzwerkknoten führt dieselben Berechnungen durch und speichert die gleichen Werte.
Die Erstellung von Blocks aus Transaktionen von Miners erfolgt gegen Gebühr. Die Kosten zur Durchführung der Operation werden in Gaseinheiten gemessen.

Sicherheit und Schwachstelle

Smart Contracts in Ethereum sind aus verschiedenen Gründen anfällig für Hackerangriffe.
Fehler in der Solidity Sprache

  • Semantik der Sprache. Verträge werden in der Programmiersprache Solidity erstellt, die an Java erinnert und eine Reihe von Funktionen repräsentiert. Der Byte-Code der virtuellen Maschine Ethereum unterstützt jedoch nicht die Arbeit mit Funktionen. Aus diesem Grund werden die Verträge vor dem Senden an den Block zusammengestellt. Ein Druckfehler in der Vertragscodezeile kann zur Implementierung der Fallback-Funktion führen.
  • Falsche Reihenfolge der Ausnahmen. Um einen Smart Contract zu implementieren, müssen Sie möglicherweise die Arbeit seiner Methode unterbrechen – eine Ausnahme. Wenn während der Ausführung des Befehls „call“ eine Ausnahme auftritt, werden die Verträge ausgeführt, bis das Gas ausgeht.
  • Wiederverwendbarkeit. Die gleichen Programmanweisungen können mehrmals eingegeben werden, beispielsweise über die Fallback-Funktion. Dies führt zu einem Zyklus in der „Call“ -Methode und dem Verbrauch von allem Gas.

Fehler der virtuellen Maschine Ethereum.

  • Die Invarianz von Verträgen. Der auf dem Blockchain veröffentlichte Vertrag kann nicht geändert werden. Wenn der Vertrag einen Fehler enthält, können Sie ihn nicht beheben, Sie können den Vertrag nur kündigen. Ein anschauliches Beispiel ist die Beseitigung der Folgen eines Angriffs auf Smart Contracts DAO.
  • Verlust von Ether beim Transfer. Um einen Ether zu senden, ist es notwendig, die Adresse der Empfangsseite anzugeben, die eine Sequenz von 160 Bits darstellt. Wenn die angegebene Adresse nicht an den Benutzer oder Vertrag gebunden ist, ist der ausgestrahlte Ether für immer verloren.

Fehler in der Blockkette

  • Status des Vertrags. Eines der Probleme des Smart-Contracts ist, dass ein Teil der Transaktionen, die in eine kurze Verzweigungskette fallen, nicht realisiert wird. Demnach wird der Status des Vertrags vorläufig nicht eindeutig bestimmt werden. Eine der Vertragsparteien kann der Ansicht sein, dass der Vertrag ausgeführt wurde, obwohl dies nicht geschehen ist.
  • Zeitbeschränkungen. Die Definition des Vertragszustandes braucht Zeit, wodurch er angreifbar wird.

Größere Fälle von Betrug

Im Juli 2016 wurde ein Angriff auf die DAO durchgeführt. Als Ergebnis übertrug der Hacker auf den Rest seines Vertrages über 64 Millionen Dollar. Für den Angriff wurde die Eigenschaft der Rentabilität verwendet. In einer Transaktion nahm der Hacker die DAO-Gelder und übersetzte die Sendungen in ihre Tochter DAO, wiederholte die Operation wiederholt. [2]

Siehe auch auf BitcoinWiki