explicitClick to confirm you are 18+

Folge 7.2: Technik des Lightning-Netzwerks

kryptokabinettNov 20, 2018, 11:29:51 AM
repeatthumb_upthumb_down

kryptokabinett.at ist ein Podcast/blog der sich an Anfänger und Neueinsteiger richtet.

Hallo!

...und Willkommen!

Das ist die Nachlese der siebten Folge des kryptokabinett.at-Podcasts zum Thema: Lightning-Netzwerk

PODCAST

https://kryptokabinett.blogspot.com/2018/01/folge-7-das-lightning-netzwerk-in-der.html#more

In diesem zweiten Post zur 7. Folge des Podcasts gibt es technische Details zum Lightning-Netzwerk.


Ich erkläre euch jetzt auch noch wie das ganze technisch bzw. kryptographisch abläuft:

Also Nerds aufgepasst!!

Jeder kann sich denken: ...wenn ich eine Transaktion über mehrere Teilnehmer laufen habe – wie verhindere ich das mir da dazwischen (im Netzwerk)  jemand Probleme macht – oder überhaupt:

...wie kann ich sicher sein das die Bitcoins bei der richtigen Person ankommen?

...und wenn wir den Channel schließen wie bekomme ich die Coins wenn der andere Teilnehmer nicht signieren will?


Als erstes Problem:

DIE GEISELNAHME

Um bei dem Beispiel mit dem Sparverein (von Nachlese Teil 1) zu bleiben:

Ich eröffne mit dem Sparverein einen Channel und wir überweisen jeweils Bitcoins in die 2of2-MultiSig-Adresse.

Jetzt sagt der Kassier des Sparvereins: HAHA!! ...wenn du mir nicht die Hälfte deiner Bitcoins gibst werde ich den Channel niemals schließen und du bekommst gar keine Coins mehr herausgezahlt!

Der Kassier hat also meine Coins als Geisel genommen.

Hier gibt’s folgende Lösung:

Es wird nicht nur die Transaktion gebildet um die Channels im Lightning-Netzwerk zu erstellen – es wird zuvor eine eigene Transaktion gebildet mit der jeder seine Coins wieder zurückgezahlt bekommt.
Diese Transaktion wird auch sofort als erstes signiert – jedoch noch nicht abgeschickt.

Jetzt erst wird der Payment-Channel gebildet und die Transaktion die die Teilnehmer durchführen wollen signiert und ins Lightning-Netzwerk geschickt.

Gibt’s also Probleme zwischen den Teilnehmern – kann jeder einzelne Teilnehmer den Channel schließen und jeder bekommt automatisch seinen Coins zurück: Somit ist keine Geiselnahme mehr möglich!


Zweites Problem:

ALTE TRANSAKTIONEN

Ich schiebe jetzt also ein ganzes Jahr lang meine Coins in den Sparverein. Doch der Am Ende des Jahres beschließt der Kassierer nur die erste Transaktion des Jahres die signiert worden ist abzusenden. Anstatt die Ersparnisse eines Jahres bekommen wir also nur einen Bruchteil zurück!

Sehr schlecht für mich!

Technisch gesehen ist nämlich jede Lighning-Transaktion des Jahres gleichwertig. Wie verhindern wir also hier Betrug? ...sehr effektiv - Indem wir Betrug unter Strafe stellen!

Wie kann so etwas kryptographisch durchgeführt werden?

Zuerst einmal müssen wir erkennen wer die falsche Transaktion sendet:

Jede Partei signiert die Transaktionen und gibt sie der anderen Partei der diese wiederum signiert:
Jede Partei (also Ich und der Sparvereinskassier) schreiben den Vorgang auf einen Zettel und unterschreibt diese - steckt ihn sodann in einen Umschlag und gibt ihm den anderem – dieser unterschreibt dann seinerseits den Umschlag.

Wir haben also jetzt zwei Transaktionen (eine Transaktion in je einem Kuvert) die unterschiedlich sind – im Kern jedoch den gleichen Vorgang beinhalten.

Als nächstes müssen wir die Voraussetzungen erstellen einen Betrug rückgängig zu machen.

Eine Transaktion muss eine bestimmte Anzahl an Bestätigungen erhalten bevor ihr Inhalt ausgegeben werden kann. Sagen wir z.B. 1000 Blöcke der Blockchain. Wir haben also eine Zeitschloß an die Transaktion gehängt.

So jetzt geht’s aber los:

 - Wir haben also die zwei Transaktionen der Parteien.

 - Wir haben die Retour-Transaktionen der Geiselnahme.

 - und wir haben ein Zeitschloß das die Coins für eine bestimmte Dauer von Blöcken einfriert.

Jetzt wird der gesamte Inhalt des Channels sofort an die Gegenpartei gesendet – dies kann nur von der anderen Partei ausgelöst werden – aber erst nachdem die Transaktions gesendet wurde!

Also wenn der Kassier unseres Sparvereins mir nur die erste veraltete Transaktion mit 0,1mBTC auszahlen lassen will dauert es z.B. 1000Blöcke lang bis diese Transaktion gültig ist. Sobald diese jedoch abgeschickt wurde habe ich die Möglichkeit mir das komplette Guthaben des Channels augenblicklich auszahlen zu lassen.

Solange beide Teilnehmer den Channel beobachten kann also erkannt werden wenn jemand eine alte Transaktion verschickt und diesen sofort bestrafen indem er alle coins des channels einkassiert.

So wird alleine schon der Versuch eines Betrugs unter Strafe gestellt. Sehr wirksam!


Wie werden aus einzelnen Channels ein Netzwerk und wie kann ich den Teilnehmern da trauen?

Zuerst mal: vertrauen muss ich keinem im Netzwerk – nur der Kryptograhie!

Zum Anfang - Eine normale Lightning-Transaktion sagt: du darfst mich ausgeben wenn du mich signierst und zu einer Adresse schickst.

Jetzt haben wir aber nicht eine so einfache Transaktion wie zuvor denn ich möchte nun einem Bekannten im Sparverein Coins schicken.
Ich habe aber nur einen Channel zum Sparverein – so wie alle anderen Sparvereinsmitglieder auch. Ich möchte somit über den Sparverein die Coins zu dem Bekannten schicken – ich traue aber dem Kassier nicht!

Der Bekannte erstellt also einen Wert X bildet davon einen Hash und schickt mir diesen zu.

Ich schicke nun die Coins an den Sparverein  - aber nur wenn mir der Sparverein den Wert X schickt der zu diesem Hash führt!

Hier brauchen wir aber eine spezielle Transaktion: einen sogenannten Hash-Contract.

Dieser sagt folgendes: du darfst mich ausgeben wenn du mich signierst UND den Wert X lieferst der zu dem Hash führt.

Der Sparverein bekommt als die Coins von mir nur wenn er dem Bekannten nach dem Wert X fragt und mir sodann diesen Wert X schickt.

Und der Bekannte gibt dem Sparverein natürlich den Wert X – aber nur wenn er vorher die Coins vom Sparverein bekommt!

Da könnte der Sparverein ja auch sagen – da pfeif ich drauf – und der Kassier könnte schadenfroh zusehen wie ich ihm Coins schicke und diese dann eingefroren sind und niemals bei meinem Bekannten ankommen.

Um das zu verhindern benötigen wir wieder ein Zeitschloss. Wenn sich der Sparverein weigert die Transaktion durchzuführen kann ich nach einer bestimmten Zeitdauer die Transaktion wieder auflösen und mir einen anderen Weg z.B. über andere Personen suchen - die ebenfalls einen Channel zu meinem Bekannten haben.

Es gibt zwar noch Diverse Probleme: z.B. beim Übersenden von größeren Mengen von Coins – hier muss sich das Netzwerk Teilnehmer suchen die zusammen auch über entsprechende Mengen an Coins verfügbar haben.

Auch stellen sich noch andere Fragen: ...wie es mit der Dezentralität bestehen wird wenn sich z.B. große Hubs bilden.
Große Hubs betreffen auch Fragen der Anonymität - denn wenn viele Lightning-Transaktionen über ihre Lightning-Nodes gehen könnten diese dann in Versuchung kommen die Adressen mit dennen ihrer Kunden abzugleichen. Ein Datengau!


Das ist jetzt alles sehr einfach beschrieben – aber die ersten zehntausend Payment-Channels sind bereist eröffnet und das Lightning-Netzwerk wächst derzeit rasant an und in den nächsten Monaten wird es wohl einsatzbereit werden.

Es wird dann möglich sein das Lightning-Netzwerk mit einer einzigen Blockchain-Transaktion zu betreten – dort viele Transaktionen zu tätigen – und irgendwann beim Beenden des Channels erst wieder eine Blockcain -Transaktion zu tätigen.

Diese Möglichkeit kann das komplette Bitcoin-Netzwerk von derzeit 5-7 Transaktionen/Sekunde auf hunderttausende von Transaktionen/Sekunde hochskalieren und Zahlungs-Netzwerke wie VISA, SEPA und andere weit hinter sich lassen - und das bei geringsten Transaktionskosten und hoher Geschwindigkeit.

Das Lightning-Netzwerk könnte die dringlichsten Skalierungs-Probleme von Bitcoin lösen – etwas das ziemlich notwendig ist – ansonsten werden wir 2018 zusehen können wie Bitcoin von seiner Konkurrenz eingeholt wird.

In den Shownotes gibt es auch einen Link wo ihr dem Netzwerk in Echtzeit beim wachsen zusehen könnt bzw. viele Links zu interessanten Artikeln in denen weitere Infos stehen.

So weit zu der spannensten Erweiterung die die Bitcoin-Blockchain derzeit zu bieten hat.

Viel Spaß mit Nachlese und Podcast!


Hier gehts zurück zum Ersten Teil der Nachlese...


https://bitcoinblog.de/2017/04/25/lightning-wie-aus-payment-channels-ein-netzwerk-entsteht/

https://bitcoinblog.de/2018/01/24/die-lightning-faq-fuer-fortgeschrittene/

https://bitcoinblog.de/2018/01/18/die-ersten-lightning-transaktionen-auf-dem-echten-bitcoin-netz/

https://www.btc-echo.de/vereinte-ziele-des-bitcoin-lightning-netzwerk/

https://www.btc-echo.de/lightning-network-eine-fruehe-version-zur-loesung-der-bitcoin-skalierung/

https://www.btc-echo.de/beta-version-von-bitcoins-lightning-network-verfuegbar/

https://www.btc-echo.de/lightning-network-fuehrt-transaktionen-zwischen-verschiedenen-blockchains-durch/

https://lnmainnet.gaben.win/

https://www.reddit.com/r/Bitcoin/comments/7pwna9/lightning_network_megathread/

https://explorer.acinq.co/



Ich bin über http://kryptokabinett.at , und ebenfalls über über Twitter und facebook erreichbar und würde mich über Likes und Kommentare freuen:

https://www.facebook.com/KryptoKabinett/

https://twitter.com/kryptokabinett


Alle bisherigen Podcastfolgen sind auf kryptokabinett.at abrufbar bzw. kann man den Podcast über folgenden RSS-Feed abonnieren:

http://feeds.soundcloud.com/users/soundcloud:users:336006123/sounds.rss


Nachtrag:

Der Podcast wurde im Jänner 2018 aufgenommen und November 2018 transkribiert.

Viel Spaß beim Nachlesen!

...und haltet Eure Privatekeys sicher!!! :)