Corda – Open-Source-Blockchain für Unternehmen

Seil ist ein verteiltes Hauptbuch zum Speichern, Verwalten und Synchronisieren finanzieller Verpflichtungen zwischen verschiedenen Finanzorganisationen.
Corda – Open-Source-Blockchain für Unternehmen
Corda verfügt über eine ziemlich gute Dokumentation mit Videovorträgen, die gefunden werden können hier. Ich werde versuchen, kurz zu beschreiben, wie Corda im Inneren funktioniert.

Schauen wir uns die Hauptmerkmale von Corda und seine Einzigartigkeit unter anderen Blockchains an:

  • Corda verfügt über keine eigene Kryptowährung.
  • Corda verwendet nicht das Konzept des Minings und des Proof-of-Work-Systems.
  • Die Datenübermittlung erfolgt ausschließlich zwischen den Transaktions-/Vertragsparteien. Es gibt kein globales Broadcasting an alle Netzwerkknoten.
  • Es gibt keinen zentralen Controller, der alle Transaktionen verwaltet.
  • Corda unterstützt verschiedene Konsensmechanismen.
  • Der Konsens zwischen den Teilnehmern wird auf der Ebene einer einzelnen Vereinbarung/eines einzelnen Vertrags und nicht auf der Ebene des gesamten Systems erzielt.
  • Eine Transaktion wird nur von den damit verbundenen Teilnehmern bestätigt.
  • Corda bietet eine direkte Verbindung zwischen formaler menschlicher Rechtssprache und intelligentem Vertragscode.

Das Hauptbuch

Das Konzept des Hauptbuchs in Corda ist subjektiv. Es gibt kein einziges zentrales Datenrepository. Stattdessen unterhält jeder Knoten eine separate Datenbank mit den ihm bekannten Fakten.

Stellen Sie sich zum Beispiel ein Netzwerk mit 5 Knoten vor, wobei ein Kreis eine Tatsache ist, die dem Knoten bekannt ist.

Corda – Open-Source-Blockchain für Unternehmen

Wie wir sehen, wissen Ed, Carl und Demi von Fakt 3, Alice und Bob sind sich dessen jedoch nicht einmal bewusst. Corda garantiert, dass in der Datenbank jedes Knotens gemeinsame Fakten gespeichert werden und die Daten identisch sind.

Staaten

Staat ist unveränderlich ein Objekt, das eine Tatsache darstellt, die einem oder mehreren Netzwerkknoten zu einem bestimmten Zeitpunkt bekannt ist.

Staaten können beliebige Daten speichern, zum Beispiel Aktien, Anleihen, Kredite, Identifikationsinformationen.

Der folgende Zustand stellt beispielsweise einen Schuldschein dar – eine Vereinbarung, dass Alice Bob einen Betrag von X schuldet:

Corda – Open-Source-Blockchain für Unternehmen
Der Lebenszyklus einer Tatsache im Laufe der Zeit wird durch eine Abfolge von Zuständen dargestellt. Wenn es notwendig ist, den aktuellen Status zu aktualisieren, erstellen wir einen neuen und markieren den aktuellen als historisch.

Corda – Open-Source-Blockchain für Unternehmen

Transaktionen

Transaktionen sind Vorschläge zur Aktualisierung des Hauptbuchs. Sie werden nicht an alle Ledger-Teilnehmer gesendet und stehen nur den Netzwerkteilnehmern zur Verfügung, die das gesetzliche Recht haben, sie einzusehen und zu verwalten.

Eine Transaktion wird dem Hauptbuch hinzugefügt, wenn sie:

  • vertraglich gültig
  • von allen erforderlichen Teilnehmern unterschrieben
  • enthält keine Doppelausgaben

Corda verwendet das UTXO-Modell (Unspent Transaction Output), bei dem jeder Ledger-Status unveränderlich ist.

Beim Erstellen einer Transaktion wird der Ausgabestatus der vorherigen Transaktion (nach Hash und Index) auf die Eingabe übertragen.

Corda – Open-Source-Blockchain für Unternehmen
Transaktionslebenszyklus:

  • Erstellung (Im Moment ist die Transaktion nur ein Vorschlag zur Aktualisierung des Hauptbuchs)
  • Signaturen sammeln (Erforderliche Parteien der Transaktion genehmigen den Aktualisierungsvorschlag, indem sie der Transaktion eine Signatur hinzufügen)
  • Übertragen Sie die Transaktion in das Hauptbuch

Sobald eine Transaktion zum Hauptbuch hinzugefügt wird, werden die Eingabestatus als historisch markiert und können nicht in zukünftigen Transaktionen verwendet werden.

Corda – Open-Source-Blockchain für Unternehmen
Zusätzlich zu den Eingabe- und Ausgabezuständen kann eine Transaktion Folgendes enthalten:

  • Befehle (Transaktionsparameter, der den Zweck der Transaktion angibt)
  • Anhänge (Feiertagskalender, Währungsumrechner)
  • Zeitfenster (Gültigkeitszeitraum)
  • Notar (Notar, spezielle Netzwerkteilnehmer, die Transaktionen validieren)

Corda – Open-Source-Blockchain für Unternehmen

Verträge

Wenn wir von der Gültigkeit einer Transaktion sprechen, meinen wir nicht nur das Vorhandensein der erforderlichen Unterschriften, sondern auch die Vertragsgültigkeit. Jede Transaktion ist mit einem Vertrag verknüpft, der sie akzeptiert und den Eingabe- und Ausgabestatus validiert. Eine Transaktion gilt nur dann als gültig, wenn alle ihre Zustände gültig sind.

Verträge in Corda werden in einer beliebigen JVM-Sprache geschrieben (z. B. Java, Kotlin).

class CommercialPaper : Contract {
    override fun verify(tx: LedgerTransaction) {
        TODO()
    }
}

Es ist notwendig, von einer Klasse zu erben Contract und überschreiben Sie die Methode überprüfen. Wenn die Transaktion ungültig ist, wird eine Ausnahme ausgelöst.

Die Transaktionsvalidierung muss deterministisch sein, d. h. Der Vertrag muss die Transaktion immer entweder annehmen oder ablehnen. In diesem Zusammenhang kann die Gültigkeit der Transaktion nicht von Zeit, Zufallszahlen, Hostdateien usw. abhängen.

In Corda werden Verträge in einer sogenannten Sandbox ausgeführt – einer leicht modifizierten JVM, die eine deterministische Ausführung von Verträgen garantiert.

Streams

Um die Kommunikation zwischen Netzwerkknoten zu automatisieren, wurden Threads hinzugefügt.

Ein Fluss ist eine Abfolge von Schritten, die einem Knoten mitteilt, wie er eine bestimmte Ledger-Aktualisierung durchführen soll und an welchem ​​Punkt die Transaktion signiert und validiert werden muss.

Corda – Open-Source-Blockchain für Unternehmen

Manchmal dauert es Stunden oder Tage, bis die Transaktion von allen Parteien unterzeichnet ist und im Hauptbuch erscheint. Was passiert, wenn Sie einen an einer Transaktion beteiligten Knoten trennen? Threads verfügen über Prüfpunkte, an denen der Status des Threads in die Datenbank des Knotens geschrieben wird. Wenn ein Knoten im Netzwerk wiederhergestellt wird, macht er dort weiter, wo er aufgehört hat.

Konsens

Um in das Hauptbuch aufgenommen zu werden, muss eine Transaktion zwei Konsens erreichen: Gültigkeit und Einzigartigkeit.

Die Entscheidung über die Gültigkeit einer Transaktion treffen ausschließlich die direkt daran beteiligten Parteien.

Notarknoten prüfen die Transaktion auf Einzigartigkeit und verhindern Doppelausgaben.

Stellen wir uns vor, Bob hat 100 $ und möchte mit demselben Eingabestatus 80 $ an Charlie und 70 $ an Dan überweisen.

Corda – Open-Source-Blockchain für Unternehmen

Corda wird dir einen solchen Trick nicht erlauben. Obwohl die Transaktion die Gültigkeitsprüfung besteht, schlägt die Eindeutigkeitsprüfung fehl.

Abschluss

Die vom R3-Blockchain-Konsortium entwickelte Corda-Plattform ist kein reiner Anwendungsfall für die Blockchain-Technologie. Corda ist ein hochspezialisiertes Tool für Finanzinstitute.

Source: habr.com

Kommentar hinzufügen