Montag, Oktober 21, 2019

Die Blockchain-Technologie ermöglicht eine vollkommen neue Art von Speicherung und Verwaltung von Zuständen, vor allem von digitalen Währungseinheiten, bzw. welcher Teilnehmer innerhalb der Blockchain wie viel von einer solchen Währung hat.

Die Beschaffenheit der Technologie mit dem Erzeugen von Blöcken innerhalb von bestimmten Abständen, auf denen dann jeweils nur eine begrenzte Menge an Transaktionen aufgezeichnet werden können, führt bei steigenden Nutzerzahlen aber unweigerlich zu einem Skalierungsproblem, welches sich in stark erhöhten Transaktionszeiten widerspiegelt.

Deutlich zu sehen ist das vor allem innerhalb der Bitcoin-Blockchain, deren Teilnehmer bereits seit einiger Zeit mit stark erhöhten Transaktionszeiten und auch Gebühren zu kämpfen haben. Ein erster Lösungsansatz um die Skalierung zu verbessern, ist das im August 2017 implementierte SegWit Update. Eine nähere Erklärung dazu findest du hier.

SegWit ist aber vor allem ein Wegbereiter für das sogenannte Lightning Network, an dem fieberhaft gearbeitet wird und welches eine möglichst vollständige Lösung des Bitcoin-Skalierungsproblems verspricht. Das Lightning-Network wird es ermöglichen, dass Teilnehmer untereinander sogenannte Payment-Channels, also Zahlungskanäle, auf- und zu machen können.

 

Payment Channels

 

Dabei wird nur zweimal mit der eigentlichen Blockchain interagiert, einmal beim Öffnen des Kanals und das zweite Mal, wenn er geschlossen wird. Alle Transaktionen, die zwischen den beiden Teilnehmern innerhalb des Zahlungskanals ausgeführt werden, finden off-chain statt und werden erst beim Schließen des Channels von dem Blockchain-Netzwerk verifiziert und eingetragen.

Ein Payment Channel funktioniert so, das beide Teilnehmer einen vorher festgelegten Betrag, bspw. Jeder 0,5 Bitcoin, in den Channel einfließen lassen, wenn er eröffnet wird. Jetzt können beide Teilnehmer sich beliebig oft einen Teil des ihnen zur Verfügung stehenden Betrages hin und her schicken. Jede Transaktion innerhalb des Cannels wird von beiden mit dem jeweiligen Private Key unterschrieben und validiert. Es müssen also beide zustimmen, damit die jeweilige Transaktion als neuer Status des Payment Channels aktualisiert wird. Wenn der Channel dann irgendwann geschlossen wird, wird der aktuellste Stand an die Blockchain übermittelt und von den Minern als übergeordnete Transaktion verifiziert und innerhalb der Blockchain eingespeichert. Daher müssen die beiden Teilnehmer auch nur Transaktionsgebühren zahlen, wenn der Channel geöffnet und geschlossen wird.

Drei Bausteine für einen funktionierenden Payment Channel

Damit ein Payment Channel sicher funktionieren kann, ohne dass man dem jeweils anderen Teilnehmer vertrauen muss, benötigt es drei Bausteine.

  1. Multisignature Blocks

Es muss möglich sein, dass mehrere Teilnehmer etwas in den Payment Channel einzahlen können, aber es kann nur wieder etwas herausgenommen werden, wenn alle Teilnehmer des Channels ihr Einverständnis geben.

  1. Hash Locks

Das Grundprinzip: Teilnehmer A will Teilnehmer B etwas sagen, ohne das Teilnehmer B weiß, was es ist. Teilnehmer A will also einen Wert/Daten verschlüsselt an B weitergeben. Die Verschlüsselung ist der sogenannte Hash. Teilnehmer B als Empfänger schickt nach der eingegangenen Transaktion den Hash zurück an Teilnehmer A, um den Empfang zu bestätigen. A kann über den Hash nachrechnen, ob die Transaktion korrekt stattgefunden hat.

Dadurch kann theoretisch Teilnehmer B die Transaktion an eine dritte Partei weitersenden. Die dritte Partei kann den Hash zurück zu A schicken, damit Teilnehmer A die Transaktion überprüfen kann. So kann man Daten/Kryptowährungen über mehrere Payment Channels an andere Personen schicken, ohne direkt mit ihnen verbunden zu sein. Es reicht, wenn man indirekt über mehrere Payment Channels mit der Zielperson/ dem Ziel-Wallet verbunden ist.

3. Time Locks

Angenommen, zwei Teilnehmer eröffnen einen Payment Channel und transferieren jeweils eine bestimmte Menge an Bitcoin in den Channel. Der Channel wurde eröffnet, damit Teilnehmer A einen Bitcoin an Teilnehmer B bezahlen kann, wofür sei in diesem Beispiel egal. Aus irgendeinem Grund will Teilnehmer A, nachdem der Channel eröffnet wurde und die Transaktion eingegeben wurde, die Transaktion nicht mit seinem Private Key bestätigen (Nur so kann der aktualisierte Stand später an die Blockchain übermittelt werden). Der Zahlungskanal hängt also in der Schwebe, da nicht alle benötigten Bestätigungen eingegangen sind, um den Kanal wieder schließen zu können.

Damit so ein Fall, indem die Währungen beider Teilnehmer auf ewig in dem eröffneten Kanal hängen bleiben, nicht vorkommen kann, braucht ein Payment Channel einen Time Lock. Das heißt, dass er sich nach einer vorher festgelegten Zeit automatisch wieder schließt und den Stand, der zum Zeitpunkt des Schließens aktuell war, an die Blockchain übermittelt. Das heißt also, dass bei einer Nicht-Einigung der Channel trotzdem irgendwann wieder geschlossen wird und der aktuellste Zustand an die Blockchain übertragen wird. Bei einer Nicht-Einigung heißt das, dass die ursprünglichen Mengen an Bitcoin wieder zu den jeweiligen Besitzern zurückfließen.

 

Vor- und Nachteile

 

Dieses Modell ermöglicht nicht nur wesentlich schnellere Transaktionen ohne Gebühren, sondern ermöglicht es auch, Cross-Chain-Transaktionen durchzuführen, also Kryptowährungen direkt mit anderen Teilnehmern auf anderen Blockchains umzutauschen. Dazu mehr in einem anderen Artikel.

Die Vorteile von Payment Channels liegen auf der Hand: Viel schnellere Transaktionen, so gut wie ohne Gebühren. Es gibt aber auch einige Nachteile: Diese Variante ist für große Zahlungen, die über Kanäle mit privaten Personen abgewickelt werden sollen, eher nicht geeignet, da die mögliche Größe einer Transaktion davon abhängig ist, wie groß der jeweilige eröffnete Channel ist, über den die Transaktion laufen muss.

Für Transaktionen im großen Stil werden also Parteien gebraucht, die in der Lage sind, große Payment Channels zu eröffnen, und das sind in der Regel keine Privatnutzer, sondern beispielsweise große Mining-Firmen, oder potentiell auch Banken mit einem enormen Kapital, mit dem genug Kryptowährungen erworben werden können, um Payment Channels im großen Stil anbieten zu können. Das würde zu weniger Dezentralität führen, da nicht viele solch große Payment Channels anbieten können und man auf große, professionelle Anbieter angewiesen wäre.

Tags: , , , , , , ,
Der Autor dieses Blogs.

0 Comments

Leave a Comment

%d Bloggern gefällt das: