Sphinx: privé Lightning-betalingen

In eerdere artikelen (1, 2) zijn we uitgebreid ingegaan op de basisprincipes van het Lightning netwerk. In dit artikel nemen we een kijkje naar het protocol dat wordt toegepast om delen van de informatie van Lightning-betalingen privé te houden.

Tussenpersonen weten naar wie je geld stuurt

We hebben al vaker geschreven over het feit dat bitcointransacties niet volledig anoniem zijn. Dit verandert met het Lightning netwerk niet: een gewone bitcointransactie is nog altijd openbaar. Wel kunnen er door gebruik te maken van payment channels vele verschillende transacties direct tussen twee partijen plaatsvinden zonder dat deze allemaal openbaar worden; alleen bij het sluiten van het payment channel wordt een openbare transactie gedaan. Maar hoe zit dit bij het Lightning netwerk, waarbij een betaling niet tussen twee partijen plaatsvindt, maar via een netwerk van tussenpersonen? Herinner je even het schema uit de vorige artikelen:

lightningbasic

Om een betaling van Alice naar Dave te versturen zal een route over het Lightning netwerk gevonden moeten worden. In dit geval gaat dat via Bob en Carol. Als we de Lightning-betaling zonder extra privacy-maatregelen over het netwerk zouden versturen, dan zouden Bob en Carol weten dat Alice een betaling aan Dave heeft gedaan. Idealiter is dit niet het geval, want dat zou betekenen dat alle tussenpersonen redelijk wat informatie over de transacties die iemand doet kunnen verzamelen.

Onion routing

De oplossing die hiervoor wordt toegepast is gebaseerd op Sphinx. Sphinx werd in 2009 gepresenteerd in een paper door George Danezis en Ian Goldberg, ongerelateerd aan Bitcoin. Later werd door Olaoluwa Osuntokun en Christian Decker voorgesteld om het Sphinx-protocol aan te passen zodat deze toepasbaar is op Lightning-betalingen. Sphinx is vergelijkbaar met Tor.

Tor staat voor The Onion Router. Tor is veelal bekend van gebruik voor het dark web waarbij het internetverkeer volledig geanonimiseerd wordt. Tor bereikt dit door de te versturen informatie meerdere malen te versleutelen, waardoor er meerdere 'lagen' versleuteling ontstaan - hier komt ook de naam 'onion' vandaan.

Sphinx past dezelfde 'ui' analogie toe bij Lightning. Elk stapje door het netwerk, waarbij een betaling via een tussenpersoon wordt doorgegeven aan de volgende in de route, is versleuteld. Elke tussenpersoon in de route kan slechts één laag van de versleuteling uitpakken. Het uitpakken van een laag onthult alleen waar het pakketje vervolgens heen gestuurd moet worden, maar niet wie de uiteindelijke ontvanger is.

onionlightninghtlc

Bij een Lightning-betaling wordt de route door het netwerk vooraf door de verzender bepaald, waardoor deze de transactie op de juiste manier kan 'inpakken' in verschillende lagen versleuteling. De verzender weet immers precies hoeveel tussenpersonen er tussen de oorsprong en de ontvanger zitten. Wanneer een tussenpersoon vervolgens het pakketje ontvangt weet deze alleen waar de betaling één stap terug vandaan kwam - via welk payment channel de betaling bij de tussenpersoon terecht is gekomen - en wie de volgende stap in de route is. De tussenpersonen weten echter niet of zij de eerste, laatste of middelste stap in de route waren. Hierdoor weten alleen de originele verzender en ontvanger wie een betaling aan wie heeft gedaan.

Sphinx is slechts de eerste stap in het privé houden van alle informatie in Lightning-transacties. Olaoluwa Osuntokun gaat hier uitgebreider in op onion routing in het Lightning netwerk. Ook Confidential Transactions en Bulletproofs kunnen uiteindelijk bijdragen aan privacy bij het doen van Lightning-betalingen.


Belangrijke thema’s in dit artikel. Klik op een thema en ontdek meer.