Hallo Habr! Ich präsentiere Ihnen die Übersetzung des Artikels "
Ein tieferer Blick auf verschiedene intelligente Vertragsplattformen ".
Wir leben in einer Ära intelligenter Verträge. Während Bitcoin uns zeigte, dass das Zahlungssystem in einem dezentralen Peer-to-Peer-Netzwerk existieren kann, war es Ethereum, das die Blockchain-Box der zweiten Generation von Pandora öffnete, und die Leute erkannten schließlich das wahre Potenzial verteilter Anwendungen (Dapps) und intelligenter Verträge.
In diesem Artikel werden wir uns eine der neuen intelligenten Vertragsplattformen von Cardano ansehen und herausfinden, was der Unterschied ist.
Bevor wir dies tun, stellen wir uns eine Frage.
Was sind intelligente Verträge?
Intelligente Verträge sind automatisierte Verträge. Sie führen sich selbst mit bestimmten Anweisungen aus, die in einer Programmiersprache geschrieben sind und ausgeführt werden, wenn bestimmte Bedingungen erfüllt sind.
Welche Eigenschaften von Smart Contracts erfüllen die Nutzungsbedingungen in verteilten Registern?
Alles, was in der Blockchain funktioniert, sollte unverändert sein und auf mehreren Knoten funktionieren können, ohne die Integrität des Systemzustands zu beeinträchtigen. Daher sollte die Funktionalität eines intelligenten Vertrags drei Dinge umfassen:
- Determinismus
- Fähigkeit, pünktlich abzuschließen
- IsolationFeature # 1: Determinismus
Ein Programm ist deterministisch, wenn es einem bestimmten Eingang jedes Mal dieselbe Ausgabe gibt. Zum Beispiel Wenn 3 + 1 = 4 ist, ist 3 + 1 immer 4. Wenn ein Programm denselben Satz von Eingabedaten auf verschiedenen Computern erzeugt, wird das Programm als deterministisch bezeichnet.
Es gibt verschiedene Punkte, an denen ein Programm nicht deterministisch arbeiten kann:
- Nicht deterministische Funktion aufrufen
- Verwendung nicht deterministischer Daten
- dynamischer Aufruf, da die aufgerufene Funktion oder das aufgerufene Programm nur zur Laufzeit bestimmt wird, ist der Aufruf selbst nicht deterministisch.
Funktion 2: Fähigkeit, pünktlich abzuschließen
In der mathematischen Logik haben wir einen Fehler, der als "Abschaltproblem" bezeichnet wird. Sie behauptet, dass es keine Möglichkeit gibt herauszufinden, ob ein bestimmtes Programm seine Funktion über einen bestimmten Zeitraum erfüllen kann. 1936 bewies Alan Turing anhand von Cantors Diagonal Problem, dass es keine Möglichkeit gibt, herauszufinden, ob ein bestimmtes Programm seine Arbeit pünktlich beenden kann oder nicht ...
Dies ist offensichtlich ein Problem bei intelligenten Verträgen, da Verträge per Definition rechtzeitig abgeschlossen werden können müssen. Es gibt verschiedene Möglichkeiten, einen Vertrag von außen zu beenden und zu vermeiden, dass ein endloser Kreislauf ressourcenschöpfender Verträge geschlossen wird:
- Unvollständigkeit : Die eingeschränkte Funktionalität erlaubt kein Springen und / oder Zyklen. Folglich kann ein intelligenter Vertrag nicht in eine Endlosschleife eintreten.
- Schritte und Kosten messen : Das Programm kann einfach die Anzahl der abgeschlossenen Befehle verfolgen und die Arbeit nach Abschluss einer bestimmten Anzahl von Schritten abschließen. Eine andere Methode ist ein Zähler. Hier werden die Verträge im Voraus bezahlt. Jede Anweisung erfordert eine bestimmte Menge. Übersteigt die bezahlte Gebühr die vorausbezahlte Gebühr, endet der Vertrag.
- Timer : Wenn die Ausführung des Vertrags nicht innerhalb einer bestimmten Frist passt, wird er gewaltsam gekündigt.
Funktion Nr. 3: Isolierung
In der Blockchain kann jeder Teilnehmer einen Smart-Vertrag hochladen. Verträge können jedoch wissentlich und unbewusst Viren und Fehler enthalten.
Wenn der Vertrag nicht isoliert ist, kann dies den Betrieb des gesamten Systems stören. Daher ist es sehr wichtig, dass der Vertrag isoliert wird, um das gesamte Ökosystem vor negativen Folgen zu schützen. In der Regel werden intelligente Verträge mit einem von zwei Systemen ausgeführt:
- Virtuelle Maschinen : (Ethereum und Neo)
- Docker : (Stoff)
Vergleichen wir diese beiden und bestimmen, was das beste Ökosystem schafft. Der Einfachheit halber werden wir Ethereum (virtuelle Maschine) mit Fabric (Docker) vergleichen.
Virtuelle Maschinen | Docker |
---|
Verträge enthalten nicht deterministische Funktionen und Daten sind auf die in der Blockchain enthaltenen Informationen beschränkt. Darüber hinaus können dynamische Anrufe nicht deterministischer Natur sein. Die verfügbaren Daten sind deterministisch | Aufgrund der Konstruktionsmerkmale von Docker ist das System von Benutzern abhängig, die deterministische Verträge erstellen. Nicht die beste Lösung |
Ethereum verwendet den "Kostenmesser", um den Vertrag abzuschließen. Jeder Schritt des Vertrags kostet „Gas“ und sobald die Ausführungskosten den vorausbezahlten Betrag überschreiten, wird die Ausführung beendet. | Stoff verwendet einen Timer. Da unterschiedliche Knoten aufgrund unterschiedlicher Rechenkapazitäten unterschiedliche Zeitgeber haben können, besteht die Gefahr, dass der Konsensprozess unterbrochen wird. |
Gute Isoliereigenschaften | Die Isolierung wird durch das Docker-Ökosystem bestimmt (unzureichende Isolierung). |
Somit bieten virtuelle Maschinen einen besseren Determinismus, eine bessere Vervollständigung und Isolation der Umgebung für intelligente Verträge.
Wir haben einige Merkmale der Implementierung intelligenter Verträge untersucht.
Ich muss sagen, dass intelligente Verträge ein wesentlicher Bestandteil und ein notwendiger Bestandteil moderner verteilter Anwendungen werden.
Hier sind einige Blockchain-Plattformen, die intelligente Vertragsfunktionen bieten:
- Ethereum
- Eos
- Stellar
- Cardano
- Neo
- Hyperledger Stoff
- Welligkeit
- Wellen
- Ergo-Plattform
In den folgenden Artikeln werden wir uns die intelligenten Vertragsmechanismen einiger dieser Plattformen genauer ansehen.