de
Zurück zur Liste

Vitalik Buterin über Sinn und Unsinn von Stealth Adressen

source-logo  bitcoinblog.de 14 Februar 2023 07:05, UTC

Ethereum-Mitgründer Vitalik Buterin erklärt, wie Stealth-Adresses eines der Probleme von Ethereum mit der Privatsphäre entschärfen können. Das Konzept ist interessant – doch selbst Vitalik Buterin räumt ein, dass eine Praxis, die bei Bitcoin längst üblich ist, ähnliche Vorteile einfacher erreicht.

Über Probleme redet es sich am besten, wenn man eine Lösung im Ärmel hat. So benennt Vitalik Buterin die Privacy-Schwächen von Ethereum selten so unverblümt, wie in einem Post, in dem er Stealth Addresses vorstellt.

Die Privatsphäre der User sei eine der größten verbleibenden Herausforderung von Ethereum. Alles auf einer Blockchain öffentlich, was bei Ethereum nicht allein Geld und Finanzen meint, sondern auch ENS-Namen, NFTs, Soulbound-Token und mehr. Das gesamte Spektrum von Ethereum-Anwendungen zu nutzen bedeute in der Praxis, „signifikante Teile deines Lebens öffentlich zu machen.“ Es sei daher weithin anerkannt, dass dies ein Problem sei.

Ein Teil der Lösung können Stealth Addresses sein – ein Konzept, das bereits 2014 von Peter Todd für Bitcoin formuliert wurde, bislang aber lediglich bei Monero umgesetzt wurde. Stealth Addresses verschleiern nicht, dass es eine Transaktion gab – dies ist unmöglich – und sie trennen auch nicht den Link zwischen Sender und Empfänger. Stealth Addresses verbergen jedoch, wer der Empfänger ist. Bei Bitcoin geschieht dies bereits zum Teil durch die Praxis, für jede Transaktion eine neue Adresse zu verwenden, so dass die Zuordnung an eine Identität zumindest etwas schwieriger ist. Bei Ethereum dagegen verwendet Wallets den „Account“ – das ist die Adresse – immer wieder: Für Ether, für Token, für NFTs, fürs Login bei dApps und so weiter. Ethereum verschiebt damit das fragile Gleichgewicht zwischen Transparenz und Privatsphäre auf eine für User ungünstige Weise.

Eine Stealth Address könnte helfen. Das ist ein Konzept, das es erlaubt, eine Adresse zu teilen, aus der jemand anderes neue Adressen ableiten kann. Sie hat einen ähnlichen Effekt wie das Wechseln der Adressen, aber den Vorteil, dass man diese nicht kommunizieren muss. Eine Steal Address, erkärt Vitalik technisch treffend, „ist eine Adresse, die sowohl von Alice als auch Bob“ – die beiden Parteien einer Transaktion – „generiert werden kann, aber nur von Bob kontrolliert wird.“

Technisch und kryptographisch ist das Verfahren recht anspruchsvoll, aber schlüssig. Bob, der Empfänger, besitzt einen geheimen „spending key“, was dem privaten Schlüssel entspricht, und generiert mit diesem eine „Stealth Meta-Addresse“. Diese gibt er an Alice, der Senderin, oder veröffentlicht sie mit seiner ENS-Adresse. Es ist kein Problem, wenn die ganze Welt sie sieht. Alice kann dann auf Basis der Meta-Adresse eine Stealth-Address generieren, die Bob gehört, und Assets an diese senden. Zugleich muss sie einige kryptographische Daten generieren – den ephemeren (flüchtigen) öffentlichen Schlüssel – und onchain ablegen, damit Bob die Adresse findet, die etwas empfangen hat. Dank kryptographischer Tricks können nur Alice und Bob aus dem ephemeren Schlüssel die Adresse ableiten.

Die Kryptographie von Stealth Addresses, erklärt Vitalik, ist solide, und die Umsetzung nicht übermäßig schwierig. Daher gibt es auch bereits ein Ethereum Improvement Proposal (EIP), das die Einführung von Stealth Addresses skizziert. Eigentlich stünde der Einführung nichts mehr im Wege, oder?

Es gibt jedoch, schreibt Vitalik, „einige ziemlich große Details der Implementierung, durch die man zuerst gehen muss.“ Eines ist sehr spezifisch für Ethereum: Wenn man beispielsweise ein NFT per Stealth Address empfängt und die Wallet die Adresse auch erkennt, besitzt man das NFT zwar. Doch um es zu überweisen, muss man Gebühren bezahlen, und da die Adresse kein Guthaben in Ether hat, kann sie das nicht. Man könnte natürlich Ether an sie senden, doch damit würde man die Adresse mit einer anderen verbinden, und der Sinn der Übung ist ja eben, dies zu vermeiden. Es gibt einen Vorschlag, Gebühren mit Token zu bezahlen (ERC-4337), doch dies gilt nur für fungible ERC20-Token, nicht für NFTs.

Vitalik hat jedoch einen Vorschlag, um das Problem zu lösen. Man kann „spezialisierte Transaktions-Aggregatoren“ beauftragen. Diese würden „einem User erlauben, eine Serie von ‚tickets‘ zu kaufen, die man benutzen kann, um onchain-Gebühren für Transaktionen zu bezahlen.“ Diese Tickets würden blinde Signaturen nach David Chaum verwenden, um die Adresse, die die Tickets bezahlt hat, nicht mit der zu verbinden, die sie in Anspruch nimmt. Unabhängig von Stealth Addresses hätte ein solcher Mechanismus viele Vorteile.

Bei Bitcoin, wo es solche Komplikationen nicht gibt, wurden Stealth-Adressen niemals wirklich eingeführt. Es gab ein BIP, und es gab diverse Versuche, sie etwas mit der Darkwallet zu etablieren, doch das Thema schlief relativ bald wieder ein. Ein Grund könnte sein, dass die Entdeckung der Adressen, die aus der Stealth Address abgeleitet werden, nicht ganz trivial ist, und nicht nur den Wallet-Entwicklern viel Arbeit aufbürden, sondern womöglich auch mehr Zeit brauchen würde, als sich mit einer sinnvollen Nutzererfahrung verträgt. Ein anderer könnte sein, dass sich bei Bitcoin der Fokus auf Offchain-Lösungen wie Lighning verschoben hat, weshalb das Interesse schlicht nicht mehr da war.

Ohnehin verwenden die meisten Bitcoin-Wallets Adressen nur einmal. Stealth Addresses bringen daher nur wenig Vorteile für die Privatsphäre, sondern erkaufen vor allem umständlich errungene Vorteile für die Nutzererfahrung. Daher sind Stealth-Adressen mehr für die Privacy-Maximalisten von Monero interessant, für die jedes Jot mehr Privatsphäre ein Gewinn ist.

Für Ethereum wäre es ein wesentlich weniger umständlicher, schnellerer und weniger komplexerer erster Schritt, ebenfalls die Praxis einzuführen, für jede Transaktion neue Adressen zu verwenden. Bisher erschweren Ethereum-Wallets dies erheblich, wobei auch das Account- anstelle des UTXO-Systems eine Rolle spielt. Daher meint auch Vitalik Buterin, „Wallets sollte anfangen, sich hin zu einem nativen Multi-Adress-Modell zu bewegen“, etwa indem sie für jede Anwendung, mit der sie interagieren, neue Adressen generieren. Es wäre ein erster und wichtiger Schritt, mit dem schon sehr viel gewonnen wäre.

bitcoinblog.de