Was ist Corda und wie funktioniert die Technologie? Ist Corda überhaupt eine Blockchain oder nur eine Distributed Ledger Technologie (DLT)? Eine Meinung von Tobias Latzke. 

Warum Corda?

Bei der rasanten technologischen Entwicklung in der Blockchain-Industrie ist es zunehmend schwierig, den Überblick über die Vielzahl von möglichen Plattformen zu behalten und bei allen Optionen immer auf dem Laufenden zu sein. Daher stellt sich immer wieder die Frage, mit welcher Plattform man sich intensiver beschäftigen sollte, und warum.

Im Bereich der Plattformen mit Zugangsbeschränkung (Permissioned Ledgers) zählt für mich Corda auf jeden Fall dazu. Ein Blick auf Google Trends zeigt, dass ich damit nicht allein bin:

Suchen nach verschiedenen Permissioned Ledger Plattformen (Der Suchbegriff „Hyperledger“ ist unpräzise, da eigentlich mit einem konkreten Framework, z.B. „Hyperledger Fabric“ verglichen werden müsste. Die Zahl der Suchanfragen wäre dann aber noch geringer.)

Die wichtigsten Gründe aus meiner Sicht sind:

  • Gute Whitepaper: In der Einführung des Whitepapers gefällt mir vor allem der Abschnitt 3.1 über die Vision – vom Ende her gedacht. Das technische Whitepaper gibt Aufschluss über die wichtigsten Design-Entscheidungen, aber auch über Herausforderungen, Kompromisse, die eingegangen wurden, sowie Grenzen des Systems.
  • Gute Developer Experience: Die Doku von Corda ist verständlich und gut strukturiert und anhand des Einsteiger-Tutorials ist die erste eigene „CorDapp“ (Corda Distributed Application) schnell gebaut. Dieser Punkt ist essentiell, wenn man eine Community von Entwicklern aufbauen will, und wird häufig unterschätzt. UX kommt morgen, erst brauchen wir DevX!
  • In persönlichen Gesprächen mit anderen Entwicklern, z.B. auf Hackathons, habe ich überwiegend positive Erfahrungsberichte wahrgenommen.
  • Konzeptionelle Alleinstellungsmerkmale, auf die ich unten weiter eingehen möchte.

Ist Corda eine Blockchain?

Zunächst die Eckdaten des Corda-Projekts:

  • Zugangsbeschränkte Distributed Ledger Plattform
  • Homepage: Corda.net
  • Entwickelt von R3
  • Github: Quelloffen seit Ende 2016

Corda hatte keinen einfachen Start in der Crypto-Szene. Ein Konsortium von Banken – diejenigen, die von einem Teil der Community als die abzuschaffenden Intermediäre gesehen werden – beschließt, eine eigene Blockchain zu entwickeln. Mit Mike Hearn wird ein ehemaliger Bitcoin Core Developer als Lead Developer eingesetzt. Er bezeichnete Bitcoin als „gescheitertes Experiment“.

Entsprechend groß war die Häme in der Community, als mit ersten Details der Plattform klar wurde: Corda hat weder Blöcke noch einen globalen Ledger! Tatsächlich bezeichnet R3 Corda nicht als Blockchain sondern als blockchain-inspirierten Distributed Ledger. Ich hatte ebenfalls meine Zweifel, als in dem ersten Interview mit Mike Hearn mehrfach der Begriff Notardienste (Notary Services) las. Hört sich irgendwie nach Intermediär an.

Was ist Corda? Definition der Grundprinzipien von Corda

Anstelle eines globalen Ledgers treten geteilte Fakten, die jedoch nur sehr selektiv im Netzwerk verteilt werden. Die Corda Dokumentation nennt dies das Need-ToKnow-Prinzip. Ohne zu sehr ins Detail zu gehen kann man sagen, dass jeder Teilnehmer nur die Informationen bekommt, die ihn betreffen. In der entsprechenden Grafik teilt z.B. Carl, den Fakt 3 mit Demi und Ed, die Fakten 5 und 6 nur mit Bob, etc…

corda DLT Blockchain
Illustration: Sophie Revazishvili, nach Corda Dokumentation V3.0

In dem simplen Beispiel sieht man ebenfalls, dass keiner der Teilnehmer alle Fakten kennt. Dennoch sind die Fakten so konstruiert, dass Sie nicht angezweifelt werden können, da Sie jeweils aus einer Kette von Transaktionen resultieren. Dabei setzt Corda – genau wie Bitcoin – auf das sog. UTXO-Modell (engl. Unspent Transactions Outputs). Distributed Ledgers verwenden entweder das UTXO Modell, oder dass Konto/Bilanz-Modell (von Ethereum verwendet), um Transaktionen nachzuhalten. Jedes Fakt kann nur nach bestimmten Regeln erzeugt und konsumiert werden. Diese Regeln sind in anwendungsspezifischen Smart Contracts (,,Was sind Smart Contracts?„) festgehalten.

Die Gültigkeit einer isolierten Transaktion reicht aber nicht aus, denn es müssen global widersprüchliche Transaktionen verhindert werden – das ewige Double-Spend-Problem!

Double-Spend und Notardienste

Wie verhindert man ein Double-Spend, wenn niemand alle Fakten kennt?
Hier kommen die Notardienste ins Spiel. Jeder Contract wird durch einen Notardienst überwacht, d.h. kein Fakt dieses Contracts kann konsumiert werden, ohne den Notardienst darüber zu informieren. Der Notardienst muss lediglich überprüfen, dass kein Fakt ein zweites Mal als Input vorgelegt wird. Dazu reicht sogar ein Hash der jeweiligen Inputs aus, allerdings kann der Notardienst dann wirklich „nur noch“ den Double Spend verhindern, aber nicht mehr die Gültigkeit prüfen. Beide Varianten sind in Corda möglich (validierende oder nicht-validierende Notardienste).

Wir halten also fest: Kein Knoten muss alle Transaktionen sehen und verarbeiten. Wir haben also keine Replikationsrate von 100% im Netzwerk. Dies ist eine äußerst wünschenswerte Eigenschaft und die Gemeinsamkeit der vielversprechendsten Ansätze zur DLT Skalierbarkeit wie z.B. Sharding, State Channels oder Side Chains.

Sharding ist eine Methode zur Datenpartitionierung und ein Ansatz für bessere Skalierbarkeit von Distributed Ledgers. Durch Sharding erreicht man, dass nicht mehr jeder Knoten alle Daten und Transaktionen verwalten muss.
Side Chain sind Distributed Ledger dessen Einträge kryptografisch mit einem Haupt-Ledger verknüpft werden können, ansonsten aber unabhängig und parallel zum Haupt-Ledger verarbeitet werden. State Channel sind Protokoll zweiter Ebene (2nd layer), welches nicht auf Zahlungen beschränkt ist (z.B. Payment Channel), sondern auf beliebige Zustände und deren Aktualisierungen angewendet werden kann. 

Die Eigenschaften bezüglich Vertraulichkeit erscheinen mir dabei klarer und überzeugender als beispielsweise bei Hyperledger Fabric. Ich folge dabei weitestgehend der Argumentation von R3’s CTO.

Es zeigt sich, dass Fabric Channels starke Ähnlichkeit mit einer Idee haben, die wir in der frühen Design-Phase für Corda auch erwogen und dann als zu begrenzt verworfen haben.

Richard Gendal Brown, CTO R3

Kritik an Corda

Sind damit also alle Probleme gelöst – Corda die ultimative Lösung für alles? Sicher nicht. Wie so oft muss man sagen „es kommt darauf an“. An vielen Stellen zeigt sich, dass die Plattform aus der „althergebrachten“ Finanzindustrie kommt, und vor allem deren Use-Cases im Hinterkopf bedacht wurden.

Im IoT-Umfeld ist Corda sicher nur sehr indirekt einsetzbar. Auch Anwendungsfälle mit vielen autarken digitalen Identitäten sind schwer umsetzbar, da momentan pro Knoten nur eine einzige ID verwaltet wird. Das Netzwerk würde so sehr schnell sehr groß, worauf es aber nicht ausgelegt ist. Rein praktische Überlegungen, z.B. die Entscheidung für validierende oder nicht-validierende Knoten, sind häufig nicht trivial und es fehlen belastbare Erfahrungswerte. Insbesondere im Fall von nicht-validierenden Notardiensten gibt es Szenarien, die sich nur „off-chain“ auflösen lassen.

Fazit zu Corda

Im Gegensatz zu den großen öffentlichen Plattformen wie Bitcoin (,,Was ist Bitcoin?“) oder Ethereum (,,Was ist Ethereum?“) sind mit Corda – genau wie mit vielen zugangsbeschränkten Alternativen – keine hundertprozentig dezentralen Lösungen möglich. Auch gibt es Anwendungsfälle, die sich nicht gut abbilden lassen.

Das System erfordert Teilnehmer, die sich gegenseitig kennen (Grundvoraussetzung aller zugangsbeschränkten DLTs), sowie ein Mindestmaß an Vertrauen. Ist man bereit, diese Voraussetzungen für einen Anwendungsfall zu akzeptieren, bekommt man aus meiner Sicht dank des Need-to-Know-Prinzips bezüglich Vertraulichkeit und Performance vergleichsweise viel geboten.

Alles in allem hebt sich Corda konzeptionell stark von der Konkurrenz ab und das zumindest in Teilaspekten positiv. Damit gehört die Plattform für mich zu denen, bei denen es sich lohnt, etwas tiefer einzutauchen.

[Bild: Mauromod/Shutterstock]

Diskutiert mit uns auf Telegram oder abonniert unseren regelmäßigen Newsletter für die aktuellsten News und Diskussionen!

CryptoMonday Workshop - Cryptos für Einsteiger

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here