Faktor Zehn erklärt: Was ist Corda?

Faktor Zehn Was ist Corda

Unser Faktor Zehn Kollege Michael Fischer berichtet in seinem heutigen Tech Talk über Corda – natürlich teilen wir die Informationen auch hier im Blog. Corda ist eine verteilte Datenbank und setzt auf verschiedene Konzepte der Blockchain. Mehrere Teilnehmer zusammen bilden dabei eine Datenbank, in der jeder Daten in einer vorher definierten Form als sogenannte Zustände ablegen kann. Diese Zustände können gelesen, aber nicht verändert werden. Um eine Änderung abzubilden, wird eine Transaktion erstellt, die den alten Zustand, die Änderung und den neuen Zustand enthält. Eine Transaktion wird dann von allen Beteiligten selbst ausgeführt, auf Korrektheit überprüft und erst übernommen, wenn sie von allen als gültig anerkannt wurde.

Faktor Zehn Corda 1

Anders als zum Beispiel bei Bitcoin werden Transaktionen und Zustände aber nicht mit allen Teilnehmern innerhalb eines Netzwerks geteilt, sondern nur mit denen, die Teil der Transaktion sind (Abbildung 1). Jeder Teilnehmer besitzt also nur die Zustände, die für ihn relevant sind. Dadurch wird nicht nur die Verbreitung sensibler Daten kontrolliert, sondern auch die Größe der Datenbank und die benötigte Rechenleistung reduziert.

Corda bietet einen Mittelweg zwischen individuellen Datenbanken (Abbildung 2) und einer zentralen Datenbank (Abbildung 3). Wie bei individuellen Datenbanken, liegen die Zustände in einer lokalen Datenbank vor, was einen sehr schnellen lesenden Zugriff ermöglicht. Das Ändern von Zuständen in Transaktionen verhindert eine Inkonsistenz zwischen den Teilnehmern. Da die Zustände nicht mit allen Teilnehmern geteilt werden, lässt sich die Rechenlast besser verteilen und der Ausfall eines Teilnehmers behindert nicht den Rest eines Netzwerks (Abbildung 4).

Faktor Zehn Corda

Was bietet Corda

Über Corda können beliebig viele Teilnehmer eine gemeinsame Datenhaltung betreiben, ohne dass ein zusätzlicher Intermediär sich um den Manipulationsschutz kümmern muss. Alle Änderungen werden durch die Verkettung von neuen und alten Zuständen dokumentiert. Jeder Teilnehmer kann sehen, wann und von wem eine Änderung an den gemeinsamen Daten gemacht wurde.

Die Vorteile von Corda sind:

  • Daten werden ohne Mittelsmann manipulationssicher gespeichert
  • Lückenlose Dokumentation von Veränderungen
  • Schneller lesender Zugriff
  • Transaktionen stellen die Datenkonsistenz sicher
  • Zustände werden nur mit den Beteiligten, nicht mit dem gesamten Netzwerk, geteilt
  • Rechenlast nur zwischen den Beteiligten einer Transaktion, nicht im gesamten Netzwerk
  • Smart Contracts überwachen Veränderungen schon auf Datenbankebene

Corda-Konzepte und Netzwerke: Austausch zwischen Nodes

Ein Corda Netzwerk besteht aus mehreren verschiedenen Benutzern und Diensten, die als Nodes bezeichnet werden. Die Networkmap dient als zentraler Einstiegspunkt in ein Netzwerk und verwaltet eine Liste aller aktiven Teilnehmer und ihrer IP Adressen, über die sie erreicht werden können. In jedem Netzwerk gibt es mindestens einen Notary Node. Dieser wird bei jeder Transaktion hinzugezogen und verhindert, dass Zustände mehrfach verändert werden (Double spending). Dem Notary liegen dabei nur die Hashwerte der Zustände vor, nicht aber ihr Inhalt. Damit ein Notary Node nicht zum Flaschenhals in einem Netzwerk wird, kann es parallel mehrere dieser Nodes geben. Darüber hinaus besteht ein Netzwerk aus einer beliebigen Anzahl an Benutzern, die als Corda-Node bezeichnet werden.

Jeder Corda-Node stellt eine interne H2 Datenbank bereit oder kann mit einer externen Datenbank wie MySQL oder Postgres verbunden werden. Beim Start meldet er sich automatisch an der Networkmap an und holt sich dort periodisch die Liste der anderen Nodes ab. Wird eine Transaktion gestartet, wird eine Peer-to-Peer Verbindung mit jedem beteiligten Node und dem Notary hergestellt.

Faktor Zehn Corda 5

Der Node kann jetzt um sogenannte CordApps erweitert werden. Sie sind unabhängige Module die beim Start eines Nodes geladen werden und enthalten die Definition der Zustände, intern States genannt, der Smart Contracts und der Flows (Abbildung 5). Smart Contracts regeln, wie die Zustände innerhalb einer Transaktion verändert werden dürfen und Flow beschreiben den Ablauf einer Transaktion. CordApps lassen sich auch nachträglich noch hinzufügen um einen Node um zusätzliche Funktionen zu erweitern. Auch muss nicht jeder Node in einem Netzwerk alle Cordapps installiert haben. Bei jeder Transaktion wird geprüft, ob alle Beteiligten die benötigten Cordapps überhaupt installiert haben. Falls nicht, wird die Transaktion mit einer Fehlermeldung abgebrochen.

Über eine RPC Verbindung können Applikationen auf einen Node zugreifen und Flows starten. Flows stellen dabei Interaktionen mit dem Node dar und können States auslesen, Transaktionen mit anderen Nodes starten und mit Hilfe von Smart Contracts Änderungen validieren und automatisch übernehmen. Eine Transaktion wird von einem Node gestartet und an alle beteiligten Übertragen. Jeder überprüft die Transaktion unabhängig und signiert sie, falls er zustimmt. Erst wenn alle Signaturen zusammengetragen wurden, wird die Transaktion als gültig betrachtet und in die Datenbank aller beteiligten Nodes übernommen.

Die Codebasis von Corda ist open-source und basiert auf Java und Kotlin. Dadurch kann die Sicherheit und Funktionalität unabhängig kontrolliert werden. Der Hersteller R3 stellt zwei Versionen von Corda bereit. Eine Community Edition, die kostenfrei verwendet werden kann und eine Enterprise Edition mit leicht erweiterten Funktionen und Support für zusätzliche Datenbanken wie z.B. Oracle Database.

Es existieren Standardimplementierungen für die Networkmap und Notary, so dass jeder ein funktionsfähiges Netzwerk aufbauen und verwalten kann. Alternativ bietet R3 gegen eine monatliche Gebühr den Beitritt in ein globales Netzwerk an, in dem bereits namhafte Banken und Versicherungen vertreten sind.

 

Faktor Zehn Fazit

Corda bietet die Möglichkeit, bei der verteilten Datenhaltung auf einen Intermediär zu verzichten und trotzdem Konsistenz und Manipulationsschutz zu garantieren. Durch das Need-to-Know-Prinzip werden die Daten aber nicht an alle Nodes in einem Netzwerk übertragen. Das bietet nicht nur Vorteile beim Datenschutz, sondern erhöht auch die Performance im Vergleich zu anderen Blockchain Lösungen. Da Cordapps in Java und Kotlin geschrieben werden, kann auf bestehendes Know-How innerhalb eines Unternehmens zurückgegriffen werden.

Links

Corda Dokumentation: https://docs.corda.net/index.html

Corda Enterprise Dokumentation: https://docs.corda.r3.com/releases/4.3/#

R3 Webseite: https://www.r3.com/corda-platform/

 

 

Michael Fischer

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Solve : *
30 − 11 =