Plasma ist ein Konzept von Vitalik Buterin, das für eine bessere Skalierbarkeit von u.a. der Ethereum Blockchain sorgen könnte. Dieser Artikel erklärt die Inhalte des White Papers und geht auch auf das vor kurzem vorgestellte Upgrade Plasma Cash ein.

Plasma und Plasma Cash – Skalierbarkeit und Sicherheit auf der Ethereum Blockchain

2017 veröffentlichten Vitalik Buterin (Ethereum) und Joseph Poon (Lightning Network) ein White Paper mit dem Titel “Plasma: Scalable Autonomous Smart Contracts”. Das Paper ist bis heute ein „working draft“ – es handelt sich um eine Arbeitsversion, die noch erweitert und ergänzt werden soll. Plasma ist eine sehr theoretische Abhandlung einer Lösung für die Skalierbarkeit von Blockchains durch Smart Contracts, die „Bäume“ von untergeordneten Blockchains generieren. Plasma Cash ist eine Lösung, die Buterin vor kurzem auf einer Ethereum Konferenz präsentierte. Plasma Cash verbessert die Synchronisation und erhöht die Sicherheit der Coins durch eine Konvertierung und Kennzeichnung. Im White Paper und in der Präsentation wird immer die Ethereum Blockchain als Basis für die Smart Contracts genannt. Wir gehen später nochmal auf die Kompatibilität von Plasma ein.

Was ist das Problem?

Die Herausforderung, vor der ein großer Teil der Krypto-Community steht, ist die Skalierbarkeit von Blockchains. Was versteht die Krypto-Community unter Skalierbarkeit? Die Möglichkeit, um größere Datenmengen zu verifizieren und in der Blockchain zu speichern. Momentan sind die Datenmengen, die bekannte Blockchains wie Bitcoin und Ethereum verarbeiten können, verhältnismäßig klein.

Bei Bitcoin ist die Blockgröße 1 MB. Aufgrund dieser Einschränkung können nur sieben Transaktionen pro Sekunde verarbeitet werden. In der Ethereum Blockchain können pro Sekunde 13-15 Transaktionen verifiziert werden. Wenn mehr Transaktionen stattfinden, entsteht eine Warteschlange oder Backlog. Da immer mehr Menschen Bitcoin und Ether verwenden, treten manchmal Engpässe auf und bleiben Tausende von Transaktionen hängen. In dieser Situation bevorzugen die Miner die Transaktionen mit hohen Gebühren, da sie daran mehr verdienen. Das treibt die Transaktionskosten in die Höhe.

Wer sich mit der Thematik noch nicht groß beschäftigt hat, würde fordern, dass die Blockgröße einfach erhöht wird. Gerade rund um Bitcoin spaltet diese Debatte die Community in zwei Lager. Momentan dürfen BTC-Blöcke nicht größer als 1 MB sein. Die Befürworter von einer Vergrößerung argumentieren, dass wenn mehr Platz im Block ist, mehr Transaktionen herein passen. Das würde die Wartezeit verkürzen und somit auch die Transaktionskosten nach unten drücken. Allerdings bietet die Blockgröße von 1 MB auch eine gewisse Sicherheit für die Dezentralität des Netzwerkes.

In Theorie kann jeder Rechner ein Block von 1 MB verifizieren (minen). Je größer ein Block aber wird, desto mehr Rechenleistung wird für das Mining des Blocks gebraucht. Ab einem bestimmten Punkt führt das dazu, dass die notwendige Hardware immer mehr professionalisiert werden muss und mit normalen PCs nicht mehr geschürft werden kann. Es würde dann zwangsläufig weniger Miner geben, die unter Umständen leichter angegriffen werden könnten oder, aus welcher Überzeugung auch immer, Blocks bevorzugen oder verwerfen könnten. Dieses Problem spielt jetzt schon in einem kleineren Ausmaß, da Privatpersonen schon keine Konkurrenz gegen die Mining Farms darstellen.

Zudem wäre die Vergrößerung von den Blöcken nur eine vorübergehende Lösung. Es wäre nur eine Frage der Zeit, bis auch die neuen Blöcke zu klein werden. Um mit Kreditkartengesellschaften wie VISA und Mastercard mitzuhalten, muss die Kapazität der Blockchain extrem angehoben werden. Im Moment verarbeitet VISA etwa 2.000-4.000 Transaktionen pro Sekunde. Die Kapazität des Systems erlaubt in der Theorie bis zu 56.000 Transaktionen. In der Praxis kommt diese Zahl aber nicht vor, da sogar während des Weihnachtsgeschäftes die Höchstwerte bei etwa 18.000 Transaktionen pro Sekunde liegen.

Zurück zur Blockchain.

Es gibt auch Lösungsansätze, um den vorhandenen Platz im Block effizienter zu nutzen, damit eine Vergrößerung nicht zwangsläufig sein muss. Das wird zum Beispiel von SegWit (Segregated Witness) umgesetzt. Kurz gesagt teilt es Transaktionsdaten auf und komprimiert einen Teil, damit die Transaktion am Ende weniger Platz im Block braucht. Eine ausführlichere Erklärung von SegWit gibt es in unserem KryptoWiki. Segwit führte zu einem Soft Fork. Das heißt, dass die Blockchain sich verzweigt hat, aber die absolute Mehrheit der Benutzer mit der Abzweigung mitgegangen ist.

Andere Vorschläge ändern gar nichts an der Blockchain. Sie werden nur aufgesetzt und versuchen in der Regel, die Transaktionen außerhalb der Blockchain abzuwickeln. Transaktionen, die nicht direkt auf der Blockchain erscheinen, werden auch off-chain Transaktionen genannt. Sie werden abgewickelt und erst später gesammelt in die „echte“ Blockchain gepackt. Beispiele für off-chain Lösungen sind das Lightning Network (Bitcoin) und Raiden (Ethereum). Diese Projekte werden auch als Second Layer (zweite Schicht) beschrieben, da die Software auf die Blockchain aufgesetzt wird und so eine Schicht zwischen der Chain und den Anwendungen bzw. Transaktionen bildet.

 

Was ist Plasma?

Plasma ist ein Konzept, das für eine bessere Skalierbarkeit von der Ethereum Blockchain sorgt. Plasma ist in der Theorie kompatibel mit allen Blockchains, die Smart Contracts aufnehmen können. Im White Paper wird nicht groß auf die Kompatibilität eingegangen, aber regelmäßig taucht sogar eine Kombination mit dem Lightning Network auf. Das lässt darauf schließen, dass sich Poon und Buterin sogar Gedanken gemacht haben, Plasma auf die Bitcoin Blockchain aufzusetzen. Welche Anpassungen dafür notwendig sind wird allerdings nicht beschrieben. Damit keine Verwirrung entsteht, gehen wir von der Etherchain von Ethereum aus.

Plasma ist im Prinzip eine Second Layer Lösung, kann aber auch zwischen der Blockchain und einer anderen Second Layer Lösung implementiert werden. Wir machen den Vergleich mit einem Bett. Die Ethereum Blockchain ist die Basis, sagen wir ein stabiles Bett aus Holz. Du kannst dich darauf hinlegen, aber das wäre recht unbequem – die Chain an sich ist nicht besonders nutzerfreundlich. Das heißt nicht, dass es unmöglich ist, ohne Matratze ein DApp auf die Blockchain zu setzen, wie es CryptoKitties bewiesen hat.

Schön ist es, wenn man sich in der Decke einmummeln kann und der Kopf auf einem guten Kissen liegt. Natürlich gibt es Wäsche in allen Farben und Formen. Das sind die quasi die DApps, mit denen du deine Mails versendest, Geld überweist, soziale Medien besuchst und so weiter. Es liegt auf der Hand, dass die meisten Applikationen – also alles, was du auf deinem smart Phone so nutzt – in der Zukunft DApps sein werden. DApps sind dezentralisierte Apps. Sie haben alle Vorteile und Sicherheiten von Dezentralität, werden für den Nutzer aber nicht von Apps zu unterscheiden sein.

Plasma ist die Matratze zwischen der Blockchain und den DApps. Es sorgt dafür, dass du auf deine Art die Blockchain für alles Mögliche verwenden kannst. Plasma kann eine dicke Matratze oder eine dünne Yogamatte sein.

 

Plasma ist eine Matratze für DApps

 

Plasma beschreibt eine Kombination von Smart Contracts, die eine neue Blockchain erstellt. Diese Blockchain wird, je nach Kontext, als Plasma Chain oder als Child Chain (Kind-Blockkette) beschrieben. Plasma Chain bedeutet eine Blockchain, die nicht die große Etherchain ist. Die Begriffe Child und Parent Blockchain werden verwendet, wenn es darum geht, die Beziehung zur übergeordneten Blockchain (Parent/Eltern) oder zur untergeordneten Blockchain (Child/Kind) zu beschreiben.

Auf der Etherchain entstehen Bäumchen mit Child Blockchains

 

Durch das Aufsetzen von Child Blockchains entsteht eine Art von Stammbaum. Die Etherchain ist der Root Blockchain oder Wurzel und die Plasma Chains verzweigen sich. So entstehen immer mehr Blockchains auf unterschiedlichen Levels. Auf Englisch heißt diese Datenstruktur „Merkle Tree“, auf Deutsch auch Hash-Baum. Die Plasma Blockchains können, wie gesagt, für alles Mögliche verwendet werden.

Auf der Root Chain können alle Arten von DApps und Anwendungen aufgesetzt werden.

 

Das von Poon und Buterin formulierte Ziel im White Paper ist vielleicht etwas hoch gegriffen: Plasma soll die sämtliche weltweite Datenverarbeitung auf der Ethereum Blockchain ermöglichen. Wir fangen allerdings erstmals klein an, damit wir das Konzept überhaupt erst verstehen.

 

Anwendung

Als praktisches Beispiel nehmen wir ein Token. Gehen wir davon aus, dass Cointrend einen eigenen Token hat, den CTT. (Nein, gibt es nicht! Nur für dieses Beispiel!) Alle Cointrend Mitglieder haben Tokens auf ihrem Wallet und können damit Inhalte freischalten, Produkte kaufen und sich gegenseitig CTT überweisen. Cointrend will für die Transaktionen selbstverständlich eine Blockchain verwenden, aber nicht für jede kleine Transaktion die hohen Kosten der Ethereum Blockchain haben.

Die Grundwährung bleibt Ethereum. Mitglieder nutzen also ETH, um CTT zu kaufen. Die Etherchain registriert die Anzahl von eingezahlten ETH, die im Smart Contract dann in CTT konvertiert werden. Auf der Hauptblockchain wird also nur die ETH-Transaktion festgehalten.

Die CTT wird in einem Smart Contract gepackt und alle Transaktionen werden in einer Plasma Blockchain abgewickelt. Klassische Blockchains, wie Bitcoin und Ethereum, lassen Miner nach dem Proof-of-Work (PoW) System arbeiten, um Blöcke zu verifizieren. Miner lassen eine Menge von willkürlichen Zahlen auf ein Puzzle los und wer als erste die richtige Nummer geraten hat, bekommt das Block und damit eine Belohnung. Wie mittlerweile alle wissen, verbraucht PoW sehr viel Rechenleistung und Strom.

Deswegen arbeiten die Plasma Chains mit dem Proof-of-Stake Verfahren. Das heißt also, dass auch die Cointrend Blockchain PoS verwendet. Wie funktioniert das?

Anstatt von Rechenleistung müssen Stakeholder beweisen, dass sie einen gewissen Anteil der Tokens besitzen. Der Stakeholder leitet eine Coinstake Transaktion ein, mit der er sich selbst einen Betrag und eine Belohnung überweist. Aus dieser Transaktion entsteht ein Hash. Aus den Hashes wird einen “Gewinner” gewählt, der den nächsten Block anhängen darf. Die Verlosung ist gewichtet. Das heißt, wer mehr Coins besitzt hat eine größere Chance, den nächsten Block zu gewinnen.

 

Hash? Gesundheit!

Wie wir wissen, können Daten durch Hashing stark komprimiert werden. Jeder Block in der Blockchain hat einen eigenen Hash. Wir wollen an dieser Stelle nicht groß auf die Technik eingehen, sondern nur auf die Anwendung.

Dies sind ein paar willkürliche  Beispiele von Hashes aus der Etherchain.

0x115ddee978be9b5f2d55b46bfadfac57a7100784756b6f75a6663f822474a3b4

0x0dcfa05c8726fefce2ce6d229df525f71e99b615c03d0fcb62c4985b1b9651a0

0xe06da86210d916c140ec27c16bc1c5f7a19932400ea5aa2e64ac880688533adb

 

Das Besondere an Hashing ist, dass das Input sehr groß sein kann. Je nachdem, welche Technik verwendet wird, kommt immer eine genaue Zahl von (wie in diesem Beispiel) 64 Zeichen raus.

Die Größe vom Output (dem Hash) ist unabhängig von der Größe des Inputs.

 

Um die Funktion kennenzulernen – und einfach da es Spaß macht – nutzen wir die die SHA-256 Hashfunktion auf https://hashgenerator.de/.

 

Der Hash aus dem Satz „Hallo, wir sind Cointrend“ ist:

fd874f24021f5a5d5f284ca931db3cfb877052b43844db3c0e5ae55b65bf107b

 

Wenn wir aber nur das Wort „Cointrend“ hashen, kommt raus:

cb7bc4b2beb730100e26c4c8b59c352aaf18e4831ee5360f2b9e654f50afbfdb

 

Wenn wir den Artikel „Mein erster Altcoin“ (4000+ Worte) von der Cointrend Seite hashen:

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

 

Die Ergebnisse sind immer gleich in Größe und Länge. Es ist nicht möglich, den Hash wieder in Text zu verwandeln. Für das Rückkonvertieren bräuchte man eine Rechenleistung, die nur Quanten-Rechner in der Theorie haben. Es ist aber sehr einfach, das Ergebnis zu prüfen > gib „Cointrend“ ein und vergleiche das Ergebnis.

Dies zeigt, dass in einem Hash die Daten einer einzigen Transaktion, oder die eines ganzen Blocks stecken können. Wenn das möglich ist, kann man aber auch die Daten einer ganzen Blockchain in einem Hash packen.

Das ist das wichtigste Prinzip von Plasma. Jede Chain wird gehasht an die nächste Ebene weitergegeben. So können die Daten unendlich vieler Chains als ein einziger Hash auf der Ethereum Blockchain gespeichert werden.

 

Sicherheit auf der Blockchain

Die Plasma Blockchain hat als Grundannahme, dass die Transaktionen, die übergeben werden stimmen. Die Blöcke werden weitergegeben an die Parent Chain und diese gibt regelmäßig alle Daten an die Root Chain weiter.

Dennoch kann es vorkommen, dass sogenanntes „Byzantine“ Verhalten auftaucht. Unter diesem Begriff fallen alle Transaktionen, die nicht legitim sind. Wenn jemand versucht, einen CTT zweimal auszugeben oder auf eine andere Art das System zu stören, entsteht ein Konflikt.

Im Fall eines Konfliktes lässt sich die Struktur von Plasma mit einem Rechtssystem aus unterschiedlichen Gerichten vergleichen. Wenn es eine suspekte Transaktion gibt, wendet man sich mit einem Beweis (fraud proof) an die Elternblockchain, die eine Ebene höher ist. In dieser Chain werden dann die korrekten Daten festgehalten. Stimmt auch hier etwas nicht, wird der Beweis wieder eine Stufe höher eingereicht. So kann ein Konflikt in der Theorie bis zur Ethereum Blockchain eskaliert werden. Was am Ende in dieser Chain verifiziert wird, gilt. Es gibt kein höheres „Gerichtshof“ als die Hauptblockchain.

Fehlerhafte Blöcke werden verworfen und die richtigen Hashes werden an die Parent Chain vermittelt.

 

Wie im Absatz zu Hashes klargeworden ist, sind die Ergebnisse sehr leicht zu kontrollieren. Wenn ein Stakeholder einen Block mit einem falschen Hash abschließt, können andere ohne Probleme beweisen, dass der Hash nicht stimmt. Der fraud proof ist also der Hinweis, dass mindestens eine Transaktion im Block nicht stimmen kann, da der Hash nicht er Richtige ist.

Aber was bedeutet das für den CTT aus unserem Beispiel? Wenn ein Stakeholder versucht, einen fehlerhaften Block zuzufügen, wird er bestraft. Sein Block wird verworfen. Dies beschädigt auch seine Reputation als Stakeholder. Es lohnt sich für Stakeholder also nicht, fehlerhafte Blöcke zu erstellen. Die Kryptowährung Nano arbeitet mit einem gleichen System.

Aber Plasma bietet mehr. Im schlimmsten Fall können alle Teilnehmer, also alle Mitglieder mit CTT aus der Chain aussteigen und zur Eltern Chain umsteigen. Dies nennt sich Mass Exit. Sie nehmen ihr Guthaben mit und die alte Plasma Chain ist wertlos geworden. Entscheidend hier ist, dass die Mitglieder mit ihrem Guthaben die Chain verlassen, bevor es der Hacker macht. In jedem anderen System wäre ein Mass Exit mit großen Transaktionskosten verbunden. Da aber die ganze Plasma Chain bei einem Mass Exit alle Mitglieder zusammenpackt, fallen nur einmal Gebühren an.

 

Was sind die Vorteile einer Plasma Chain?

Die Cointrend Mitglieder können in der Plasma Chain ihre Transaktionen verfolgen und solange es eine ausreichende Anzahl von PoS Stakeholdern und Mitgliedern gibt, läuft alles dezentral wie bei jeder anderen Blockchain auch. Benutzer brauchen sich um den ganzen Baum von Blockchains keine Gedanken machen: die relevanten Infos finden sie in der eigenen Plasma Chain.

Ein anderer Vorteil ist die Arbeitsverteilung. Durch MapReduce, ein Rechenformat, können Rechenleistungen aufgeteilt werden. Aus irgendeinem Grund ist das Beispiel fast immer ein Wordcount. Also: Cointrend ist enorm gewachsen, hat einen eigenen Merkle Tree mit unterschiedlichen Plasma Chains, und will die Wörter vom neuen eBook gezählt haben. (Nein, gibt es nicht! Nur für dieses Beispiel!)

Mit einem Smart Contract kann Arbeit von der Parent Chain auf die Chils Chains verteilt werden.

 

Die höchste Parent Chain kann jetzt das eBook in kleineren Aufgaben verteilen, zum Beispiel in Kapitel. Die Parent Chain gibt das Buch an die Child Chain mit der Aufgabe: Wörterliste von Kapitel 1 erstellen und restliche Kapitel an die nächste Child Chain weitergeben. Wenn alle Kinder die einzelnen Listen erstellt haben, werden die Daten an die Parent übergeben, die alles zusammenfügen kann. Voilà Wordcount.

Diese Art von Delegieren heißt auf Englisch „distributed computing“ > dezentralisierte Verarbeitung, und das erste Konzept wurde vor ewig von Google entwickelt. Das Prinzip kann für fast jede Art von Datenverarbeitung verwendet werden und ist sehr kompatibel mit der Blockchainstruktur von Plasma.

 

Größer gedacht?

Plasma bietet eine Basis für alle möglichen dezentralen Applikationen (DApps). Einige Beispiele werden im White Paper kurz erwähnt.

  • Dezentralisierte Exchanges, wie zum Beispiel Etherdelta, haben eine viel geringere Chance, gehackt zu werden. Ja, im Dezember 2017 wurde der DNS Server gekapert, aber die Smart Contracts waren nicht gefährdet und die Auswirkungen dann auch nicht so katastrophal wie bei den Hacks von zentralisierten Börsen. In einer Plasma Chain können alle Orders und Guthaben festgehalten und nicht korrumpiert werden.
  • Neue Lösungen für die Speicherung von Daten können mit Plasma Chains entwickelt werden. Um dies zu erklären, schielen wir auf Filecoin. Filecoin hat ein dezentralisiertes Netzwerk mit Speicherplatz entwickelt. Selber beschreiben sie es wie ein AirBNB für Daten. Benutzer stellen ihren freien Speicherplatz zur Verfügung und werden für ihre Dienstleistung bezahlt. Daten werden verschlüsselt und gesichert und das Netzwerk kann nicht von einer Regierung oder einem Provider ausgeschaltet werden.
  • In einer Plasma Chain gibt es aber auch Möglichkeiten, die Daten ständig in der Chain herumfließen zu lassen. So liegen sie niemals auf einem Server oder Festplatte, die angegriffen werden könnte.
  • D-Mail – dezentralisierte E-Mail. In einem dezentralisierten System können Nachrichten, selbstverständlich verschlüsselt, verschickt werden. Die Blockchain verarbeitet die Bewegungen und auch hier wäre es möglich, die Daten nicht statisch, sondern fließend zu speichern, wie im Beispiel oben.

Einige ähnliche Projekte sind auch schon unabhängig von Plasma am Start, könnten aber von dem Ansatz profitieren oder ihr Projekt auf Plasma aufsetzen.

 

Da war noch was.

Kein Konzept ist vollständig, ohne dass „atomic swaps“ ermöglicht werden. Auch Plasma nutzt eigene Smart Contracts, um dies umzusetzen. Atomic Swaps sind Transaktionen mit unterschiedlichen Kryptowährungen. Im Smart Contract kann eine Währung in eine andere konvertiert werden. Das heißt in der Praxis, dass eine BTC-Rechnung auch mit ETH beglichen werden kann. In einer off-chain Transaktion lässt sich die Konvertierung relativ leicht realisieren. Im White Paper werden die Swaps immer mal wieder erwähnt, aber nicht weiter ausgeführt. Für die Benutzerfreundlichkeit von Kryptowährungen und damit die Akzeptanz im Mainstream sind atomic swaps aber sehr wichtig.

 

Haben wir noch was zu meckern?

Ja.

Plasma hat nicht auf jede Herausforderung eine Antwort. Auch wenn die on-chain Skalierbarkeit verbessert wird, sind die Transaktionen in den Plasma Chains eine off-chain Lösung. Die Daten werden erst dann auf der Etherchain festgelegt, wenn die Blöcke übermittelt werden. Das darf in vielen Fällen in der Praxis kein Problem darstellen, aber bei größeren Beträgen und wichtigen Transaktionen kann eine offizielle Bestätigung gebraucht werden.

Jedes Mal, wenn Daten an die Root Chain übermittelt werden, fallen die Ethereum Transaktionskosten an. Jede Verzweigung muss also für sich überlegen, wo das Gleichgewicht zwischen günstigen off-chain und teuren on-chain Transaktionen liegt.

Auch ist die Frage, wie dezentral die Lösung ist, wenn eine Plasma Chain zu wenige Teilnehmer hat. PoS Blockchains sind eh schon leichter anzugreifen als die PoW Chains und die Sicherheitsmechanismen die greifen sollen, sind im White Paper zum Teil noch sehr abstrakt.

Obwohl Benutzer sich nur mit der eigenen Plasma Chain beschäftigen müssen, ist es notwendig, dass alle Daten synchronisiert werden. Das bedeutet, dass viel Rechenleistung und potentiell Speicherplatz für nicht-relevante Chains benutzt wird.

 

Es geht weiter: Plasma Cash

Auf der Ethereum Community Conference in Paris im März 2018 präsentierte Vitalik Buterin ein Upgrade von Plasma: Plasma Cash. Plasma Cash entwickelte er gemeinsam mit den Entwicklern Dan Robinson und Karl Floersch. Plasma Cash baut auf Plasma auf und fügt im Grunde genommen zwei wichtige Sachen zu.

  • Erstens nutzt Plasma Cash sogenannte „pegged tokens, die einzeln identifiziert werden können. Hiermit wird die Sicherheit der Tokens extrem gesteigert und Diebstahl zwecklos.
  • Zweitens muss nur der Transaktionspfad (Merkle Branch) von einzelnen Tokens synchronisiert werden und nicht länger die gesamte (Plasma-) Blockchain.

Darüber hinaus wird noch daran gearbeitet, wie man Plasma Chain Operators und das Ethereum Sharding zusammenbringen kann. Sharding ist eine Methode für das partitionieren von Datenmengen und sollte für eine bedeutend höhere Skalierbarkeit sorgen als nur die Plasma Blockchains. In diesem Text lassen wir das Sharding erstmal vorweg, da eine gründliche Erklärung den Rahmen sprengen würde.

 

Plasma Coins

Wie auch bei Plasma ist die Grundwährung die Währung der Root Chain. Wir bleiben bei unserem Beispiel Ethereum. Im ersten Smart Contract werden die Ether, die eingezahlt werden, in Plasma Coins konvertiert. Es gibt noch keine Abkürzung für die Plasma Coins, also nennen wir sie vorerst mal ETHP. Dies werden ERC721-Tokens sein.

ERC721 Tokens können unterschiedliche Werte und Eigenschaften haben. Jeder Token ist einzigartig, auch wenn mehrere Tokens ähnlich oder sogar komplett gleich aussehen. Wo haben wir das schon mal gehört? Genau – CryptoKitties! Wenn man hinter den farbigen Flausch guckt, sieht man durchnummerierte ERC721 Tokens. Wie CryptoKitties können die ETHP weder aufgeteilt noch mit anderen Coins zusammengefügt werden. Bildhafter: Es ist nicht möglich, ein halbes Kitty zu kaufen, oder drei Kitties gleichzeitig in einer Transaktion zu verkaufen.

Soweit der Vergleich. Die ETHP werden auf die Plasma Chain eingezahlt und haben also eine einzigartige Verifizierungsnummer und einen privaten Key. Ab dem Punkt der Erstellung fängt die Geschichte (history) von dem Token an. Bei jeder Transaktion wird diese Geschichte mitgeschickt. Die Validierung der Daten erfolgt über das Proof-of-Stake Verfahren, was wir vorhin erklärt haben.

 

Schutz gegen Hacking

Auf einer dezentralisierten Börse ist es bedeutend schwieriger, das System zu hacken, als auf einer zentralisierten Börse. Dennoch werden die meisten Exchanges vorerst noch zentralisiert bleiben. Wenn mit ETHP anstatt von ETH oder anderen Kryptowährungen gehandelt wird, ist Hacking allerdings sinnlos. Jeder Token ist gekennzeichnet und durch seine Transaktionsgeschichte einer Person zuzuordnen.

So gibt es also zwei Sicherheitsmechanismen. Entweder können alle Mitglieder eine Plasma Chain verlassen, wenn ein Hacker versucht, was anzurichten, oder der Hack findet erfolgreich statt, aber die Hacker können ihre Beute nicht verwenden.

 

Minimierung der Sync-Daten

Durch die Verzweigungen von Child Blockchains entstehen Hash-Bäume oder Merkle Trees. Wie vorhin schon kurz angerissen, braucht der Benutzer nur wenige Daten aus der einen Plasma Blockchain, mit der er arbeitet, aber dafür muss er die gesamte Chain synchronisieren. Je mehr Child Chains aufgesetzt werden, desto mehr Leistung und Platz braucht die Synchronisation.

Wenn aber ETHP verwendet werden, ist es nicht länger notwendig, alle Transaktionen zu kennen. Nur die Transaktionen, in denen der ETHP verschickt wurde, sind relevant. Der Besitzer braucht nur den Transaktionspfad (Merkle Branch oder Merkle Proof) von dem einen Token zu synchronisieren. Blöcke, in denen keine Transaktion mit dem Coin vorkommt, können außen vorgelassen werden.

Die Coin History, die synchronisiert werden muss, ist nur ein Bruchteil der gesamten Plasma Chain.

 

Da der Merkle Branch natürlich im Laufe der Zeit immer länger wird, werden die Overhead Data, die mitgeschickt werden müssen auch immer größer. Um diese zu minimieren, schlägt Buterin vor, Checkpoints einzufügen. Der Token wird durch eine Abhebung (withdrawal) ausgezahlt und sofort wieder in das System eingezahlt. Ab diesem Punkt fängt die Geschichte vom Token neu an und brauchen zukünftige Besitzer nur den Weg bis zum Checkpoint nachvollziehen.

 

Transaktionen anfechten

Wenn Konflikte entstehen, ist es auch in Plasma Cash möglich, eine Transaktion anzufechten. Die möglichen Szenarien sind aber überschaubar. Das liegt unter andere m daran, dass die ETHP bei der Erstellung chronologisch durchnummeriert werden. Der erste Token ist die 1, der nächste die 2 usw. Dies lässt sich mit der Nummerierung von Dollar- oder Euroscheinen vergleichen. Keine Nummer darf mehrmals vorkommen und jede vergebene Nummer wird in einem Register festgehalten.

Wenn jemand versucht, aus dem Nichts einen Token zu kreieren, bekommt der Token

  1. Eine Nummer, die bereits vergeben wurde
  2. Eine Nummer, die noch gar nicht an der Reihe ist

 

Im Fall 1. hat der Hacker eine Kopie von einem existierenden Token, aber ohne eine Transaktionsgeschichte. Der Inhaber vom Original kann eine Transaktion mit der Kopie anfechten und wird immer recht bekommen, da er die Herkunft nachweisen kann.

Im Fall 2. erkennt das System, dass ein Token ausgegeben wurde, der gar nicht registriert ist. Auch hier ist keine Transaktionsgeschichte vorhanden und kann die (Schein-)Gültigkeit nicht bewiesen werden.

Angenommen, dass Besitzer sich nur für ihre eigenen Tokens interessieren, gibt es bei gefälschten Transaktionen nur ein einziges Opfer. Diese Person kann entweder mit Merkle Proof oder mit einem gleichzeitigen bzw. früheren UTXO beweisen, dass es sich um eine doppelte Ausgabe (double spend) handelt. Merkle Proof ist die Transaktionsgeschichte von dem Token, also ein Auszug von der Plasma Chain.

Ein UTXO ist eine Transaktions-Output, der noch nicht ausgegeben wurde. Sobald eine Transaktion abgeschlossen ist, wird der Input gelöscht und ein UTXO erstellt. Dieser kann dann wieder ausgegeben werden. Wenn jemand beweisen kann, dass vor oder zu dem Zeitpunkt der fehlerhaften Transaktion der Token noch als UTXO bei ihm lag, wird die falsche Transaktion gelöscht.

 

Anonymisierung

Plasma Cash ist im jetzigen Konzept nicht besonders anonym. Das liegt zu einem Teil daran, dass weder die Ethereum Blockchain noch das Plasma System auf Anonymität ausgelegt sind. Die Ausgangslage ist somit eine andere als bei Projekten wie Monero oder zCash.

Gerade die Registrierung von Tokens und die Tatsache, dass diese immer nachverfolgt werden können, mag zu Bedenken führen. Auch wenn dieser Aspekt nicht ganz vorne steht, wird sehr wohl über eine Anonymisierung der Daten nachgedacht.

Eine Überlegung ist die Implementierung von zk-STARKS. STARKS sind die neuen SNARKS. Say what? Kryptowährung zCash entwickelte zk-SNARKS – hiermit werden die öffentlichen Daten in der Blockchain (Sender, Empfänger, Betrag) maskiert.

Die Abkürzung steht für Zero-Knowledge Succinct Non-Interactive Argument of Knowledge. Mit der Technik kann festgestellt werden, ob eine Transaktion legitim und korrekt abgewickelt wurde, ohne dass der Miner irgendwelche Daten oder Inhalte aus der Transaktion erhält. Dies ist möglich durch eine eigene Hashing-Technik.

Die SNARKS wurden zum Teil hart kritisiert. Sie seien nicht quantensicher, setzten noch zu viel Vertrauen voraus und mit einem Master Key könnten alle Daten rückwirkend wieder bloßstellen. Wer sich ausführlicher mit der Debatte auseinandersetzen möchte, kann sich auf der zCash Seite über zk-SNARKS informieren und sich im Anschluss mit dem Blogbeitrag von Buterin zu zk-STARKS beschäftigen. Viel Spaß dabei.

Für diejenigen, die nicht alle Details brauchen: Zk-STARKS ist die neue, verbesserte Generation von zero-knowledge Verifizierungen. Sie wurde Ende 2017 von Vitalik Buterin vorgestellt. Das Hashing in diesem System ist nicht so anfällig wie die ältere Methode, sie ist quantensicher und zudem so gut wie vertrauensfrei.

Der einzige Nachteil von zk-STARKS ist, dass der Beweis, der für die Verifizierung einer Transaktion mitgeschickt werden muss einige hunderte von Kilobytes anstatt von den 288 Bytes bei zCash umfasst.

 

Der neueste Stand

Auf ethresear.ch erscheinen sehr regelmäßig neue Posts mit Ideen zum Thema. Wer sich für Plasma und Plasma Cash interessiert, kann hier so gut wie live mitdenken und den Entwicklern Buterin, Floersch und Robinson Fragen stellen. In dem längeren Plasma Cash Thread werden u.a. die Möglichkeiten für die weitere Reduzierung der Daten diskutiert. Auch das von uns ignorierte Sharding wird hier entwickelt.

Eine Option für die Reduzierung der Daten ist es, den binären Merkle Tree mit einem Patricia-Trie zu ersetzen. Klinkt komplizierter als es ist. In diesem Krypto-Fall würde PATRICIA (Practical Algorithm to Retrieve Information Coded in Alphanumeric) prüfen, wie viele Child Chains an einer Parent Chain hängen. Wenn es nur ein Child gibt, werden Child und Parent zusammengefügt. So wird Platz gespart und kann ebenfalls die Geschichte von einem Coin verkürzt werden. Die Patrica wird jetzt schon für u.a. IP-Routing und für Suchfunktionen, wie zum Beispiel in Textdateien, benutzt.

Ein anderer interessanter Punkt ist die Abschaffung der Verifizierung. In der Vorstellung von Floersch ist das Verifizieren von Transaktionen überflüssig geworden. Da jeder ETHP seine eigene Administration führt, beweist das Ausgeben von einem Token bereits, dass er der zahlenden Person gehört(e).

 

Schlussbemerkungen

Plasma und Plasma Cash klingen ähnlicher als sie sind. Während sich Plasma auf die Skalierbarkeit von Blockchains konzentriert, ist Plasma Cash eher eine Maßnahme gegen Hacks, die in das Plasma System integriert wird. Auch wenn Buterin, Poon, Floersch und Robinson wahrscheinlich schon wieder beim nächsten Konzept sind, ist Plasma noch nicht komplett ausgereift und Plasma Cash erst recht nicht.

Das heißt aber nicht, dass sich keiner mit der Materie auseinandersetzen soll. Alleine schon aufgrund der großen Namen, die hinter Plasma stecken, lässt sich vermuten, dass wir hier tatsächlich über die Zukunft von Blockchains reden. Ohne eine bessere Skalierbarkeit ist die Mainstream Adoption von Kryptowährungen unmöglich. Mit der Implementierung von Plasma ist eine Grundlage für die Entwicklung von nutzerfreundlichen DApps gegeben und wird eine Kryptotransaktion einfacher als eine Überweisung mit der Bank-App sein. Darüber hinaus ermöglichen die meisten Second Layer Lösungen, einschließlich Plasma, die sogenannten „atomic swaps“. Dieser Ansatz nimmt den Argumenten vieler Kryptogegner den Wind aus den Segeln und wird auch an der Akzeptanz im Mainstream beitragen.

In eigener Sache: Es ist absolut notwendig, dass demnächst weiter auf Sharding eingegangen wird. Das Konzept wird noch aktiv von den Ethereum Entwicklern diskutiert, also warten wir auf einen Konsens. Auch Plasma ist noch nicht fertig. Wenn größere Anpassungen im Konzept vorgenommen werden, bekommt dieser Artikel ein markiertes Update. Hast du was gelesen, was wir noch nicht wissen? Gib uns per Mail oder im Forum Bescheid!

 

Quellen:

https://plasma.io/plasma.pdf

Plasma White Paper

https://www.youtube.com/watch?v=jvlunzEl_so

Decypher Media bespricht das Plasma White Paper

https://www.youtube.com/watch?v=suMDB34GXZ4
Karl Floersch‘ inoffizielles Video während der Ethereum Community Conference in Paris (8.-10.03.18)

https://www.youtube.com/watch?v=uyuA11PDDHE&t=1s

Vitalik Buterins Vortrag auf der Ethereum Community Conference in Paris (8.-10.03.18)

https://ethresear.ch/t/plasma-cash-plasma-with-much-less-per-user-data-checking/1298

Plasma Cash Thread

https://vitalik.ca/general/2017/11/09/starks_part_1.html

Blogpost von Vitalik Buterin zu zk-STARKS

https://z.cash/technology/zksnarks.html

Erklärung der zk-SNARKS von zCash

 

Stand der Quellen: 16.03.2018

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

Weitere Technik Artikel