Der Lightning-Hackday: Herausforderungen und Lösungen für mobile Lightning-Wallets

Leider habe ich es nicht zum Lightning-Hackday geschafft. Aber dafür habe ich zwei Präsentationen herausgesucht und für euch zusammengefasst. Bei beiden geht es um die spannende Frage, wie man Lightning in eine mobile Wallet bringt.

Manchmal läuft alles schief. Vergangenen Freitag Abend habe ich mich auf den Weg nach Berlin gemacht, im Gepäck 20 Kilogramm meines Buches. Ich habe mich sehr darauf gefreut, auf dem Lightning-Hackday Präsentationen zuzuhören, Bekannte zu treffen und mein Buch zu bewerben und gegen Lightning zu verkaufen.

Aber sobald ich in München ankam, wo ich in einen anderen Fernbus steigen sollte, ging alles schief. Aus irgendeinem Grund hat der Bus am ZOB in München exakt null Fahrgäste eingeladen – falls er überhaupt dort gehalten hat, weil niemand ihn je gesehen hat – und irgendwann um 2 in der Nacht haben ich und 20 weitere Fahrgäste eingesehen, dass es nichts mehr wird. Einige sind eine alternative Route gefahren, die am Samstag um 15 Uhr in Berlin angekommen wäre, was für mich keine Option war. Ich habe zum Glück zwei junge Männer gefunden, die mich zurück nach Ulm mitgenommen haben. Die Lektion dürfte sein, nie wieder eine Reise so knapp zu planen.

Viel spannendere Lektionen haben die Besucher des Lightning-Hackdays bekommen. Es gab zahlreiche spannende Vorträge und Podiumsdiskussionen. Man kann sich die Vorträge auf Youtube anschauen, allerdings nur als ein einzelnes, 7-stündiges Video. Mithilfe des Planes der Veranstaltung habe ich mir zwei Präsentationen herausgesucht, die mir spannend genug vorkamen, um darüber zu schreiben. Gut möglich, dass ich das beste verpasst habe, aber die Themen der beiden Präsentationen schienen mir interessant und konsistent zu sein – bei beiden geht es darum, wie man eine mobile Wallet mit Lightning entwickelt.

Fünf Schwierigkeiten beim Bau einer mobilen Lightning-Wallet

Die erste Präsentation war von Pavel Prikhodko von Bitfury. Sie beginnt in dem Video etwa um 3:35. Pavel stellt das Lightning Peach Wallet vor, das von BitFury entwickelt wurde. Die Peach Wallet ist derzeit noch in der Testphase; sie ist “nicht perfekt, aber wir wollen sie vorstellen und einige der interessantesten Teile diskutieren,” erklärt Pavel. Er berichtet, welche Schwierigkeiten das Team zu lösen hatte.

Die erste Schwierigkeit ist es, einen Channel zu öffnen, ohne dass es die User überfordert. “Neue User wissen nichts.” Die perfekte Lösung dafür ist der Autopilot, der die Guthaben der User automatisch auf verschiedene Channel verteilt. “Aber der ist noch nicht bereit. Daher haben wir als Standardeinstellung eine Verbindung zu unserem Hub implementiert. Das hilft der User-Experience.”

Die zweite Schwierigkeit ist, die Guthaben in dem Channel zu managen. “Man muss die Guthaben kontrollieren, sicherstellen, dass die Gegenparteien genügend Geld in anderen Channels haben und diese nicht zur falschen Zeit schließen.” Erneut ist der Hub von BitFury hilfreich, da er gewährleistet, dass genügend Liquidität in den Channels ist.

Die dritte Schwierigkeit ist es, die andere Partei zu finden. Woher weiß die mobile Wallet, wie sie Geld zum Ziel bringt? “Wir haben ein Feature implementiert, dass die User Transaktionen zu anderen Usern senden können, die sie in der Kontaktliste haben.” Neue Kontakte können per QR-Code eingspielt werden, fremde Parteien zu finden scheint jedoch noch ein Problem zu sein.

Die vierte Schwierigkeit ist es, ein Backup der Channels zu bilden. “Wenn man die Daten verliert, kann man den Channel nicht schließen und hat keinen Zugang zu seinem Geld.” BitFury hat ein Backup in der Cloud implementiert, bei dem die Daten natürlich verschlüsselt werden. “Das ist unsere Lösung für das Problem.”

Die fünfte Schwierigkeit schließlich ist es, die Wallet auf verschiedenen Geräten zu synchronisieren. “Man möchte die Wallet mit verschiedenen Geräten benutzen, aber das ist recht kompliziert, weil niemand LND auf einem Smartphone laufen lässt. Der Node selbst muss auf einem Server sein, mit dem sich die Geräte der User verbinden.” Weil man die Schlüssel aber nicht in der Cloud aufbewahren möchte, hat Bitfury eine Lösung entwickelt, bei der die Schlüssel zwischen Geräten und LND separiert werden. Wie das genau funktioniert, übersteigt aber meinen Horizont, sorry.

Zuletzt verdient noch ein Feature Erwähnung, mit dem die Peach Wallet glänzen soll: wiederkehrende Zahlungen. Sogenannte “Payment Streams” könnten eine der Anwendungen von Lightning sein, die mit Bitcoin einfach nicht funktionieren. “In unserer Wallet kann man einen Betrag je Sekunde spezifieren und einstellen, wie viele Sekunden man bezahlt. Dann sendet die Wallet jede Sekunde eine Zahlung, und man kann den Stream laufen lassen oder schließen.” Dies könnte etwa genutzt werden, um Videos oder Lieder zu streamen.

Lightning ist Bitcoin + Lightning

Weiter als BitFury ist das französische Startup Acinq, das Eclair entwickelt hat, einen Lightning-Node, dessen abgespeckter Version bereits jetzt als mobile Version für Lightning benutzt wird.

Fabrice Drouin erklärt, welche Herausforderungen die Firma bewältigen musste, um ein voll funktionsfähiges mobiles Lightning-Wallet auf den Markt zu bringen. Sein Vortrag beginnt etwa ab 4:08 im Video.

Zunächst skizziert Fabrice, wie Zahlungen bei Lightning funktionieren: “Per QR-Code bekommt man eine Zahlungsaufforderung, in der die Payment Hash, der Betrag und ein Ablaufdatum enthalten sind. Der wichtige Unterschied zu Bitcoin ist: Der Empfänger initiiert die Zahlung. Er muss aktiv sein und eine Zahlungsaufforderung generieren. Der Bezahlende wird aus dieser den Betrag, das Ziel und die Payment-Hash extrahieren und dann nach einer Route suchen.”

Um zu bezahlen, muss die Wallet eine Route durch den immer größer werdenden Graphen des Lightning-Netzwerks finden. “Wenn man keine findet, kann man nicht bezahlen. Wir benutzen Source-Routing, was bedeutet, dass der Sender die Route vollständig selbst sucht, womit der User die komplette Kontrolle behält.” Wie genau das funktioniert, erklärt Fabrice später.

Zunächst gibt er einen allgemeinen Überblick über die Architektur der Wallet. Dies dürfte für jeden, der mit dem Gedanken spielt, eine eigene Wallet zu bauen, extrem interessant sein.

Im ersten Schritt musste Acinq eine Bitcoin-Wallet wie alle anderen bilden. Dies ist schließlich die Voraussetzung für Lightning-Wallets. Da ein Smartphone natürlich keinen Full Node mit der ganzen Blockchain packt, musste es eine Light-Wallet sein. Hierfür gibt es verschiedene Designkonzepte, Acinq hat sich dafür entschieden, die Wallet mit Servern der beliebten Wallet Electrum zu verbinden. “Das war relativ einfach zu implementieren und benutzt eine clevere Architektur. Da Electrum zudem dabei ist, auch Lightning zu implementieren, werden sie ähnliche Probleme wie wir zur lösen haben.”

Eine harte, aber effiziente Lösung

Um Lightning-fähig zu sein, muss die Wallet aber nicht nur wie andere Bitcoin-Wallets Transaktionen kreieren, signieren und senden. Sie muss auch die Blockchain beobachten, um Transaktionen zu erkennen, die Channels öffnen (oder schließen) und eine “Routing Table” pflegen, durch die sie die Payment-Routen berechnen kann.

“Man muss die Blockchain beobachten, um Aktionen zu erkennen, auf sie zu reagieren und Betrug zu bestrafen. Aber mobile Wallets sind auch offline,” erklärt Fabrice. “Wenn dein Peer einen alten Channel-State publiziert, verpasst du das Zeitfenster, in dem du ihn dafür bestrafen kannst, und du verliert Geld. Das ist ein sehr großes Problem.” Der Entwickler skizziert zwei Lösungen dafür: “Erstens, man verlängert das Zeitfenster für die Strafen. Das hat aber den Nachteil, dass man lange braucht, um einen Channel zu schließen, eine Woche oder mehr. Zweitens, man delegiert die Blockchain-Beobachtung an eine dritte Partei, die Watchtowers. Das ist eine sehr elegante und gute Idee, aber bisher ist sie nicht ausreichend implementiert.”

So, wie Watchtower derzeit konzipiert sind, beobachten sie die Blockchain für einen User und sind in der Lage, auf Regelverstöße zu reagieren – und all das ohne etwas über die tatsächlichen Zahlungen der User zu wissen. Das ist sehr clever gelöst, hat jedoch den Nachteil, dass die Watchtower immer mehr verschlüsselte Daten speichern müssen, ohne zu wissen, wann sie was löschen können. “Das große Problem ist nun, dass wir noch keine Methode gefunden haben, um Watchtower für diese Arbeit zu bezahlen.”

Die Lösung für Eclair war schließlich hart, aber konsequent: “Wir haben uns entschieden, mit einer mobilen Wallet zu beginnen, die nur versenden, aber nicht empfangen kann. Das macht eine Menge Dinge einfacher.” Denn wenn man nur sendet, nimmt die Balance eines Channels nur ab. Für einen Angreifer macht es keinerlei Sinn, nun einen alten State zu veröffentlichen, da er dann nur selbst etwas verlieren würde. Zudem erspart diese Variante es, Lösungen für das Problem zu finden, dass der Empfänger einer Zahlung aktiv und damit auch online sein muss.

Routing und Backups

Anschließend geht Fabrice noch ein wenig ins Detail. Zunächst erklärt er genauer, wie das Routing auf einem mobilen Gerät funktioniert. “Wenn man startet, ist die Routing-Tabelle noch nicht up to date. Man muss sie einige Sekunden aktualisieren, bevor man bezahlen kann. Wenn die Wallet sich mit Peers verbindet, erfährt sie von neuen Channels und von alten Channels, die geschlossen haben.” In der ersten Version hat Eclair bei jedem Start die gesamte Routing-Tabelle heruntergeladen, was aber, so Fabrice, “ein Alptraum war.”

Die zweite Version lädt nur die IDs der Channels herunter und fragt nach dem ganzen, wenn sie es braucht. Das sind 8 Byte je Channel oder 80 Kilobyte für 10.000 Channels, was für die nächste Zeit ausreichend skalieren sollte. Eine Alternative wäre es gewesen, das Routing an einen zentralen Server zu übergeben. “Das ist das, was die Bitcoin Lightning Wallet macht. Das ist sehr schnell, aber es unterläuft den ganzen Punkt von Source Routing und untergräbt die Privacy. Wir wollten das nicht machen.”

Ein großes Problem schließlich sind auch für Eclair die Backups. Die Wallet löst es so, dass sie verschlüsselte Backups auf Basis der Seed auf Google-Drive speichert. Das war recht einfach für Android zu implementieren. Jedesmal, wenn sich der State eines Channels des Users ändert, bekommt das Backup ein Update. Das ist noch nicht perfekt, aber es reicht aus, um Guthaben zu rekonstruieren, wenn man das Smartphone verliert.

Der Autopilot schließlich wird von Eclair nicht benutzt. Stattdessen verbindet sich die Wallet mit dem Node von Acinq, gibt dem User aber die Wahl, sich per QR-Code mit anderen Nodes zu verbinden.

About Christoph Bergmann (1372 Articles)
Das Bitcoinblog wird von Bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder, es es seit Mitte 2013 führt. Christoph hat vor kurzem ein Buch geschrieben: Bitcoin: Die verrückte Geschichte vom Aufstieg eines neuen Geldes. Das Buch stellt Bitcoin in seiner ganzen Pracht dar. Ihr könnt es direkt auf der Webseite Bitcoin-Buch.org bestellen - natürlich auch mit Bitcoin - oder auch per Amazon. Natürlich freuen wir uns auch über Spenden in Bitcoin oder Bitcoin Cash an die folgende Adresse: 1BvayiASVCmGmg4WUJmyRHoNevWWo5snqC. Wer will, kann uns auch Hier mit Lightning spenden. Tipps für Stories sind an christoph.bergmann@mailbox.org immer erwünscht. Wer dies privat machen möchte, sollte meinen PGP-Schlüssel verwenden.

2 Comments on Der Lightning-Hackday: Herausforderungen und Lösungen für mobile Lightning-Wallets

  1. Hey, wo sind die Kommentare?

    Ich denke die Beweislage ist eindeutig: Das Lightning -Netzwerk wurde von Lucifer höchstpersönlich konzipiert, um unter dem Deckmantel “Blockstream” die vollständige Versklavung der Menschheit endgültig zu besiegeln.

    Wir brauchen unbedingt mehr Leute mit einem selbstgebastelten Aluminium-Hut, die der Öffentlichkeit klarmachen, was hier überhaupt passiert! Bald ist es zu spät!!

  2. Die Probleme von Bitcoin unteranderem die Skalierbarkeit war seit der Lancierung vor rund 10 Jahren bereits bekannt und es gibt seit anhin keinerlei Anzeichen, dass sich dies ändern kann. Zur Erinnerung Bitcoin wurde nie für die breite Masse entwickelt. Die Diskussion um Lightning dauert nun bereits einige Jahre, praktikable Resultate immernoch gleich 0 auch nach hunderten Millionen an sogenannten Entwicklungskosten vermeintlich hoch spannender Firmen und hundert tausenden Blockchain Experten. Kaum zu glauben das ein nutzloses und nie zu gebrauchendes System Marktkapitalisierungen von über einer halben Billion aufwies. Für mich wäre das spannendste Thema wie dieser Hype um ein ersichtlich nutzloses Sytem überhaupt entstehen konnte und die Akteure und Lobbyisten genauer zu analysieren, welche gezielt und organisiert dafür geschaut haben und teilweise weiterhin schauen, dass neue Investitionen gefunden werden, sodass Ihr eigenes nutzloses Investment an Wert gewinnt. Es wurden ungestraft Kursmanipulationen über Social Medias, Blogs, Konferenzen, usw. betrieben um die eigenen Coins zu hypen und Profit zu machen. Die Ersten werden die Gewinner sein, die in der Mitte können vielleicht den Schaden begrenzen, die die zuletzt reingekommen sind bezahlen die Rechnung. Man merkt hier definitiv die Simularitäten mit einem Schneeballsystem und man sollte die Akteure auch rechtlich so beurteilen, es ist unverschämt was hier abgeht zugunsten einiger Wales und dass einige trotz den Dutzenden klar ersichtlichen negativen Punkten für unsere Gesellschaft, weiterhin das Gefühl haben etwas gutes und sinnvolles zu tun.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s