Newsticker

Umbra führt Stealth Adressen für Ethereum ein

Wenn der Kernschatten des Mondes die Sicht auf die Sonne verdeckt, gibt es eine Sonnenfinsternis. Bild von Cjames Fotografia via flickr.com. Lizenz: Creative Commons

Wenn man mit einer Ethereum-Adresse oder ENS-Domain wiederholt Geld empfängt, führt das zu Einbußen bei der Privatsphäre. Mit dem Smart Contract Umbra wird es möglich, Ether und andere Token privat zu empfangen.

Auch Ethereum leidet an einem typischen Privacy-Problem von Blockchains: Alle Transaktionen werden Adressen zugeschrieben und sind miteinander verknüpft. Da es bei Ethereum üblich ist, dieselbe Adresse mehrfach zu verwenden, wird hier das Problem noch gravierender als bei Bitcoin, zumal wenn man sich eine ENS-Domain gekauft hat.

Es wäre schön, wenn man einfach Geld über eine .eth-Adresse empfangen könnte. Doch angesichts der Transparenz der Blockchain führt das für User in ein gläsernes Bankkonto. Möglichkeiten, die Probleme der Privatsphäre zu beheben, sind daher mehr als nur ein “Nice to have”  – sie sind dringend notwendig.

Mit Umbra gibt es tatsächlich eine solche Möglichkeit. Umbra, zu deutsch der Kernschatten, ist ein relativ neues Protokoll für Stealth Addresses, nicht viel anders als Silent Payment Addresses, wie sie für Bitcoin geplant sind, nur eben bereits live und in Betrieb. Mit Umbra könnt ihr mit einer Adresse oder ENS-Domain Ether und verschiedene Token empfangen, ohne dass jemand diese der Adresse zuordnen kann, beispielsweise an christophbergmann.eth.

Privatsphäre in sechs Schritten

Für den Benutzer ist der Ablauf relativ einfach:

1.) Ihr geht auf die Umbra-App und loggt euch mit eurer Ethereum-Wallet ein. Neben der Ethereum-Mainchain unterstützt Umbra Optimism, Arbitrum, Gnosis Chain und Polygon.

2.) Dann erstellt ihr im Setup einen Umbra Private Key, dessen korrespondierender öffentlicher Schlüssel an eine ENS-Domain angehängt wird. Dafür müsst ihr einfach nur in der Wallet signieren und eine Tranaktion bestätigen.

3.) Danach könnt ihr eure Adresse oder ENS-Domain teilen und den Sendern mitteilen, dass sie die Transaktion über Umbra leiten sollen: “Ihr könnt per Umbra an christophbergmann.eth bezahlen.”

4.) Die Sender müssen dann Umbra ansurfen, ihre Wallet verbinden, auf „send“ klicken und eure Adresse oder ENS-Domain eingeben. Neben Ether kann man derzeit USDC, USDT, DAI-Dollar, WBTC sowie LUSD und RAI versenden. Umbra generiert eine Transaktion, die man dann in der Wallet signiert.

5.) Als Empfänger kann man daraufhin auf Umbra „receive“ anklicken, um zu erfahren, ob man etwas empfangen hat. Hierfür muss man in der Wallet eine kurze Nachricht signieren, durch die Umbra dann die Blockchain nach Transaktionen durchsucht.

6.) Wenn man etwas empfangen hat, kann man die Token aus der Stealth Address abbuchen. Man sollte nicht die eigentliche Adresse verwenden, sondern eine andere oder eine Börse. Es spricht aber auch nicht viel dagegen, die Token einfach in der Stealth Address zu lassen, da man ja die Schlüssel dafür hat.

Eine Verbindung zwischen Sender und Empfänger besteht zwar weiterhin: Ein Beobachter kann erkennen, dass X Geld an die Adresse Y bezahlt hat. Doch er erkennt nicht, dass Adresse Y mit der Adresse oder Domain zusammenhängt, die ihr gepostet habt. Somit könnt ihr mit einer Adresse Geld empfangen, die mit eurem Namen verbunden ist, ohne dass ein Beobachter der Blockchain davon Wind bekommt. Erst eine Technologie wie Umbra erlaubt es, eine Adresse tatsächlich als Identität zu verwenden.

Wie es genau funktioniert, erklären wir im Folgenden.

Eine Handvoll verschlüsselter Bits

Zunächst ist die Umbra-Webseite nur ein Interface für den Smart Contract. Umbra selbst ist onchain, die Webseite muss keine privaten Daten kennen, um zu funktionieren. Wenn sich das Protokoll bewährt, spricht nichts dagegen, es auch in Wallets zu integrieren.

Was die kryptographische und konzeptuelle Basis angeht, zeigt Umbra sehr große Ähnlichkeit mit den Silent Payment Addresses bei Bitcoin. Wenn kluge Köpfe ein Problem angehen kommen sie, unabhängig voneinander und auf verschiedenen Blockchains, nicht selten zu denselben Lösungen.

Im ersten Schritt generiert der User ein Umbra-Schlüsselpaar, das mit den Schlüsseln in seiner Wallet korrespondiert. Der öffentliche Umbra-Schlüssel wird dann an eine ENS-Domain angehängt. Wenn nun jemand über Umbra an die Adresse des Empfängers Ether sendet, schlägt er auf der ENS-Domain den öffentlichen Umbra-Schlüssel nach. Aus diesem und ein paar zufälligen Bits bildet er dann eine Stealth Adresse. Die zufälligen Bits verschlüsselt er mit dem öffentlichen Schlüssel des Empfängers, so dass nur dieser sie lesen kann.

Danach überweist der Sender die Ether oder Token an die Stealth Address und sendet die verschlüsselten Bits an den Smart Contract von Umbra, der ihn als „Event“ publiziert. Der Empfänger kann danach die Events durchsehen, um eine Nachricht zu finden, die für ihn bestimmt ist.

Die Ether abbuchen

Langfristig könnte hier ein Problem auftreten, da es für eine Wallet eine gewisse Zeit dauern kann, bis sie alle Events von Umbra gescannt und auskalkuliert hat. Derzeit gibt man Umbra eine signierte Nachricht, durch die die Webseite die letzten 10.000 Events durchsucht.

Sollte Umbra es aber zur Mass Adoption schaffen, werden 10.000 Events viel zu wenig sein, und es kann aufwändig werden, die eingegangenen Zahlungen zu erkennen. In dem Fall sollte es für den User praktisch werden, den Scan durch eine dritte Partei erledigen zu lassen. Dies aber würde bedeuten, dass man dieser den privaten Schlüssel überlässt und sie zum Treuhänder macht.

Für diesen Zweck sieht Umbra einen zweiten privaten Schlüssel vor: einen View Key. Dieser wird nur benutzt, um die zufälligen Bits zu verschlüsseln, während der eigentliche private Schlüssel, den nur der User hält, nötig ist, um die Adresse zu öffnen. Dies würde aber der dritten Partei dennoch Einblicke in die Transaktionshistorie ihrer User geben.

Bisher funktioniert Umbra aber nur mit einem Schlüssel. Die Webseite dient lediglich als Interface und die Suche nach den Events findet lokal statt, ohne dass der private Schlüssel die Wallet verlässt. Wenn der User auf diese Weise eine an ihn gerichtete Nachricht findet, entschlüsselt er sie und bildet aus den zufälligen Bits und seinem privaten Schlüssel den privaten Schlüssel der Stealth Address.

Mit diesem privaten Schlüssel kann er nun eine Transaktion signieren und die Ether von der Stealth Address auf eine beliebige andere Adresse übertragen. Über das Gas Station Network ist es auch möglich, Token weiterzuleiten, ohne die Stealth Address mit Ether für die Gebühren zu füllen. Der Smart Contract von Umbra bezahlt in diesem Fall die Gebühren und wechselt die entsprechenden Token per Uniswap dafür. So kann man mit Umbra auch Dollar-Token oder tokenisierte Bitcoins privat empfangen, ohne jemals mit Ether zu tun zu haben.

Kein Schweizer Taschenmesser

Umbra ist keine finale Lösung für die vielen Privacy-Probleme auf Ethereum. Wegen der vielen Anwendungen füllen sich Wallets im Lauf der Zeit mit einer Masse an Informationen, die die Privatsphäre ihrer Besitzer erheblich einschränken. Dies wird Umbra, zumindest im derzeitigen Setup, nicht lösen.

Umbra ist lediglich ein Werkzeug, um einige spezifische Privacy-Probleme zu lösen. Genauer gesagt erlaubt Umbra es, solche Probleme auf bequemere und einfachere Weise als bisher zu lösen. Wer will, kann ständig neue Adressen bilden und posten. Doch mit Umbra wird es möglich, auch ENS-Domains auf einigermaßen private Weise zu verwenden – und das ist es, was den Smart Contract so nützlich macht. Im Grunde macht erst er ENS-Domains zu einem praktikablen Endpunkt für Transaktionen.

Über Christoph Bergmann (2637 Artikel)
Das Bitcoinblog wird von Bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder ---

Kommentar verfassen

%d Bloggern gefällt das: