Skip to main content

Neue Lightning Funktion: Was ist Route Blinding?

Am von

Eine lang erwartete Funktion namens Route Blinding wurde gestern der Lightning Spezifikation BOLT-4 (Basis of Lightning Technology) hinzugefügt. Federführend war der Lighting Entwickler Bastien Teinturier. Es ist jetzt nur noch eine Frage der Zeit, bis erste Lightning Implementierungen die neue Routing Funktion anbieten werden.

Was es mit Route Blinding überhaupt auf sich hat und wo die Unterschiede zum Status Quo liegen, schauen wir uns in diesem Beitrag etwas genauer an!

„Fast 3 Jahre nach der initialen Version wurde „Route Blinding“ zur Lightning Spezifikation hinzugefügt.

Ein großes Danke an alle, die sich beteiligt haben und zur Verbesserung beigetragen haben! Bleibt dran, diese Funktion wird schon bald in euren Lieblings-Implementierungen landen.“

@realtbast

Der Status Quo

Lese-Tipp: Das Lightning Netzwerk einfach erklärt

Sofern man keine direkten Lightning Kanäle mit einem Zahlungspartner pflegt, müssen Zahlungen über mehrere Lightning Nodes weitergeleitet, also gerouted, werden, bis sie beim gewünschten Empfänger ankommen. Aktuell geschieht dies im Lightning Netzwerk über sogenanntes Onion Routing. Wie bei einer Zwiebel ist eine Zahlung in mehrere Schichten eingewickelt, die nach und nach abgeschält werden, um jeweils ein neues Stück Information freizulegen.

Um die nächste Schicht einer solchen Lightning Zwiebel zu entfernen, braucht es immer einen bestimmten Schlüssel. Somit wird sichergestellt, dass nur die für die nächste Weiterleitung zuständige Node die dafür notwendigen Informationen erhält – mehr nicht. Eine Lightning Zahlung kann daher relativ privat erfolgen, da nur Sender und Empfänger nähere Details über die Zahlung kennen. Zwischen den beiden sitzen nur weiterleitende Nodes, die eine Zwiebel erhalten, schälen und entsprechend weiter geben. Von wem diese Zwiebel ursprünglich kam und wie weit sie noch wandern wird, können sie nicht wissen, und das geht sie schließlich auch gar nichts an.

Perfekte Privatsphäre?

Zwar ist Privatsphäre im Lightning Netzwerk um ein Vielfaches besser als bei regulären Bitcoin-Transaktionen, deswegen aber noch lange nicht perfekt. So kennt beispielsweise der Sender einer Zahlung den gesamten Zahlungspfad bis hin zum Empfänger. Logisch, er muss die „Routing Zwiebel“ schließlich initial zusammenbauen. Dabei lernt er zwangsläufig aber auch den öffentlichen Schlüssel seines Empfängers kennen. Möchte dieser komplett unerkannt bleiben, ist es an dieser Stelle bereits zu spät. Darüber hinaus kann jeder, der die Rechung (Invoice) der Zahlung kennt, den öffentlichen Schlüssel des Empfängers einfach daraus ablesen.

Der Sender kennt den gesamten Zahlungspfad und den öffentlichen Schlüssel des Empfängers

Blinded Paths

Ein Blinded Path, also ein verblendeter oder verborgener Zahlungspfad, wird mithilfe vom jetzt offiziell spezifizierten Route Blinding ermöglicht. Anstatt dem Sender den öffentlichen Schlüssel des Empfängers zu überlassen, um den kompletten Weg zum Empfänger zu konstruieren, kennt dieser nur noch einen Teil des Pfades. Nur alleine der Empfänger kennt damit den letzten Teil des Pfads und bleibt gegenüber dem Sender im Verborgenen.

Der verborgene Pfad zum Empfänger ist dem Sender nicht mehr bekannt. Er kennt den Weg (hier) nur bis zu Node 2.

Um dies technisch zu ermöglichen, muss der Empfänger allerdings erst einmal selbst aktiv werden. Vor der Zahlung tauscht er gemeinsame Geheimnisse mit den Nodes, die auf dem verborgenen Pfad liegen sollen, aus. Dies geschieht mithilfe von asymmetrischer Kryptografie, genauer gesagt einem Diffie-Hellman-Schlüsselaustausch. Die technischen Details ersparen wir uns, wichtig ist nur zu verstehen, dass der Empfänger nun individuell mit jeder verborgenen Node verschlüsselt kommunizieren kann. Der Fluss des Zahlungspfades, welcher für den Sender bisher komplett nachvollziehbar war, kann somit unterbrochen werden.

Der Sender erhält für seine Zahlung jetzt erstmal den öffentlichen Schlüssel von Node 2, bis dahin bleibt schließlich alles beim Alten und er kann selbst einen Pfad konstruieren. Ab der „Einstiegsnode in den verborgenen Pfad“ braucht er allerdings weitere Informationen vom Empfänger. Dafür teilt dieser ihm verschleierte öffentliche Schlüssel der Nodes auf dem verborgenen Pfad mit. Für jede dieser Nodes muss er außerdem eine verschlüsselte Nachricht bereitstellen. Diese enthält, vereinfacht gesagt, die Anweisung an die jeweilige weiterleitende Node „was zu tun ist“, also an wen sie weiterleiten muss. Der innere Kern der Zwiebel wird also vom Empfänger bereits im Voraus so konstruiert, dass der Sender den Inhalt nicht mehr nachvollziehen kann. Er weiß nur, wo dieser Teil hingehört, damit die Zahlung erfolgreich ist.

Die jeweiligen Nodes auf dem verborgenen Pfad können dann ihren Teil der Zwiebel entschlüsseln, und zwar mit dem gemeinsamen Geheimnis, welches sie zuvor mit dem Empfänger ausgetauscht haben.

Fazit

Mit Blinded Routing kann mit etwas mehr Aufwand ein netter Bonus an Privatsphäre gewonnen werden. Trotzdem sollte man sich auch weiterhin im Klaren sein, dass keine Lösung perfekt ist und nie alle Probleme auf einmal gelöst werden können.

Beispielsweise kennt der Sender aus unserem Beispiel weiterhin die Anzahl an Schritten, bis er beim Empfänger angelangt. Liegen die beiden also nah beieinander, müsste man sich überlegen gefälschte „Hüpfer“ in die Zahlung einzubauen, um eine größere Entfernung (im Netzwerk) zu suggerieren.

Privatsphäre im Lightning Netzwerk ist ein sehr komplexes Thema mit vielen Aspekten, die beachtet werden müssen. Die Entwicklungen sind allerdings sehr vielversprechend und hoffentlich dauert es gar nicht mehr allzu lange, bis die ersten Endnutzer ihre Zahlungen hinter verborgenen Pfaden verstecken!


Der öffentliche Schlüssel unserer Blocktrainer Node ist zum Glück kein Geheimnis, einer kleinen Spende auf die herkömmliche Art steht also nichts im Wege. Vielen Dank! 🙂