Was sind Bitcoin Silent Payments (BIP352)
Silent Payments sind ein Konzept im Bitcoin-Ökosystem, das darauf abzielt, die Privatsphäre von Bitcoin-Transaktionen zu verbessern, indem es den Empfang von Bitcoin-Transaktionen ermöglicht, ohne dass die Öffentlichkeit oder Dritte den Zusammenhang zwischen den sendenden und empfangenden Adressen erkennen können.
Der Artikel basiert auf dem Artikel von Shiftcrypto selber, die Silent Payments auf der Bitbox02 vorstellen. Wir haben versucht, den doch recht komplexen Artikel, auch für wenig technik-affine verständlich rüber zu bringen.
Funktionsweise von Silent Payments
Im Grunde funktioniert Silent Payments so, dass der Absender eine bestimmte Art von Transaktion erstellt, die auf der Blockchain nicht eindeutig auf den Empfänger hinweist. Stattdessen werden spezielle „stille“ oder „stille Empfangsadressen“ genutzt, die vom Empfänger erzeugt werden und lediglich indirekt auf dessen Wallet verweisen. Der Empfänger kann, basierend auf einem Schlüssel, die Transaktionen identifizieren und die Coins als seine eigenen erkennen. Dabei wird aber keine öffentliche Adresse genutzt, die leicht rückverfolgbar wäre, sondern der Absender nutzt den öffentlichen Schlüssel des Empfängers, um eine „Silent Payment“-Adresse zu erstellen, auf der die Coins landen.
Aktuell müssen Bitcoin-Empfänger für jede Transaktion eine neue Adresse bereitstellen, um ihre Privatsphäre zu schützen, was umständlich und unpraktisch ist. Das führt bei Abhebungen und Einzahlungen von Börsen oder beim Sammeln von Spenden zu einem aufwendigen Prozess, bei dem neue Adressen registriert und verifiziert werden müssen. Um diesen Aufwand zu umgehen, verwenden viele eine einzige Adresse, was ihre Privatsphäre gefährdet, da Transaktionen leicht nachvollziehbar werden.
Silent Payments bieten hier eine Lösung: Sie ermöglichen die Nutzung statischer Adressen, die mehrfach verwendet werden können, ohne die Privatsphäre zu gefährden. Nur Absender und Empfänger können Transaktionen erkennen, was es z.B. Spendenorganisationen erlaubt, eine feste Spendenadresse öffentlich zu machen, ohne dass Dritte ihre Transaktionen einsehen können.
Transaktionen wie sie bis jetzt laufen
Eine Bitcoin-Transaktion besteht aus Inputs und Outputs.
Outputs erzeugen neue UTXOs, während Inputs bestehende UTXOs verbrauchen. Meistens wird ein UTXO mit einem öffentlichen Schlüssel gesichert und durch eine Signatur des dazugehörigen privaten Schlüssels ausgegeben. Bei Silent Payments wird durch spezielle kryptografische Techniken für jede Transaktion an eine statische Adresse ein neuer, unbenutzter öffentlicher Schlüssel generiert.
Was sind nochmals Private Keys und Public Keys
Was ist ein Private Key
Ein Private Key ist ein geheimer Schlüssel, den nur der Besitzer kennt. Er ist wie ein Passwort und besteht aus einer langen Zeichenfolge. Mit dem Private Key kann man:
- Nachweisen, dass man Inhaber von bestimmten Bitcoin ist: Der Private Key erlaubt es, Transaktionen zu signieren und damit zu beweisen, dass die Bitcoin auf einer bestimmten Adresse tatsächlich einem gehören.
- Zugriff auf seine Bitcoin behalten: Solange du deinen Private Key sicher aufbewahrst, kannst nur du Transaktionen von deiner Bitcoin-Adresse ausführen.
💡 Beispiel: Stell dir vor, du hast ein Schließfach (deine Bitcoin-Adresse). Dein Private Key ist der einzige Schlüssel, der dieses Fach öffnet. Ohne diesen Schlüssel kann niemand auf den Inhalt zugreifen.
Was ist ein Public Key
Ein Public Key ist ein öffentlicher Schlüssel, der aus dem Private Key abgeleitet wird. Er ist zwar eng mit dem Private Key verknüpft, aber durch die Verschlüsselung kann der Public Key sicher geteilt werden, ohne dass jemand den Private Key daraus ableiten kann.
Mit dem Public Key wird eine Bitcoin-Adresse erstellt, die öffentlich verwendet werden kann. Andere Leute nutzen diese Adresse, um dir Bitcoin zu senden. Der Public Key hilft also dabei, Transaktionen zu bestätigen und sicherzustellen, dass sie vom legitimen Besitzer (dem Inhaber des Private Key) kommen.
💡 Beispiel: Stell dir vor, dein Public Key ist wie eine IBAN deiner Bank. Er zeigt, wohin andere Geld schicken sollen, aber nur du hast die PIN (den Private Key), um das Geld tatsächlich abzuheben.
Eine Artikel der sich mit dem Thema befasst, findet ihr hier.
So funktioniert das Zusammenspiel
- Senden von Bitcoin: Wenn du Bitcoin sendest, nutzt du deinen Private Key, um die Transaktion zu signieren. Diese Signatur bestätigt, dass die Transaktion tatsächlich von dir stammt.
- Empfangen von Bitcoin: Du gibst anderen deinen Public Key (bzw. die Bitcoin-Adresse). Sie können dir darüber Bitcoin senden, aber nur du kannst mit deinem Private Key darüber verfügen.
Schlüsselaustausch mit Elliptic-Curve Diffie-Hellman
Elliptic-Curve Diffie-Hellman (ECDH) ist ein Verfahren, mit dem Alice und Bob ein gemeinsames „Geheimnis“ teilen können, um sicher miteinander zu kommunizieren, ohne ihre privaten Informationen preiszugeben.
Schlüsselpaare: Alice und Bob haben beide ein Schlüsselpaar, bestehend aus einem privaten und einem öffentlichen Schlüssel.
- Der private Schlüssel bleibt geheim.
- Der öffentliche Schlüssel ist sozusagen ihre „öffentliche Adresse“, die sie unbesorgt teilen können.
Berechnung des gemeinsamen Geheimnisses:
- Alice nimmt ihren geheimen Schlüssel und Bobs öffentlichen Schlüssel, um ein gemeinsames „Geheimnis“ zu berechnen.
- Bob macht das Gleiche – er nutzt seinen geheimen Schlüssel und Alices öffentlichen Schlüssel. Dadurch erhalten sie beide dasselbe geheime Ergebnis, ohne jemals ihre geheimen Schlüssel direkt auszutauschen.
Warum das sicher ist:
- Da nur Alice und Bob den gemeinsamen geheimen Wert kennen, können sie diesen nutzen, um beispielsweise Bitcoin sicher zu senden oder zu empfangen.
- Der Empfänger kann die Coins später freischalten, ohne dass die Privatsphäre oder Sicherheit gefährdet wird.
Kurz gesagt: ECDH erlaubt es Alice und Bob, eine spezielle Adresse zu generieren, auf die nur sie beide Zugriff haben, ohne ihre privaten Daten preiszugeben.
Die mit diesem öffentlichen Schlüssel gelockten Coins können entweder vom Absender Alice (mit ihrem privaten Schlüssel) oder vom Empfänger Bob (mit seinem privaten Schlüssel) ausgegeben werden. Wie kann man die Coins so sperren, dass nur Bob sie ausgeben kann?
Silent Payments
Eine Silent Payments-Adresse sieht anders aus als die normalen Bitcoin-Adressen, da sie mit „sp1“ beginnt. Diese Adresse enthält mehr Informationen als üblich, um die Privatsphäre zu wahren und Transaktionen nur für den Empfänger sichtbar zu machen:
- Zwei Schlüssel für die Sicherheit: Eine Silent Payments-Adresse verschlüsselt zwei Schlüssel des Empfängers – einen zum „Scannen“ und einen zum „Ausgeben“. Der Scan-Schlüssel erlaubt es, die Transaktion zu identifizieren, während der Spend-Schlüssel nötig ist, um später die Coins auszugeben.
- Die Rolle des Absenders: Wenn Alice Bitcoin an Bobs Silent Payments-Adresse sendet, verwendet sie diese beiden öffentlichen Schlüssel, um eine besondere Adresse zu erstellen, die nur Bob erkennen und entsperren kann. Alice benötigt dafür nur die Informationen aus Bobs Silent Payments-Adresse und ihren eigenen privaten Schlüssel.
- Das „Schloss“ der Coins: Alice schließt die Coins an einer speziellen Stelle (Taproot Output) ein. Diese Coins können auf der Blockchain nicht direkt Bob zugeordnet werden, nur er kann sie jedoch mit seinen beiden privaten Schlüsseln entsperren und ausgeben.
- Schutz der Privatsphäre: Der Aufbau der Silent Payments-Adresse schützt die Privatsphäre aller Beteiligten. Da niemand sehen kann, dass Bob der Empfänger ist, bleibt die Transaktion anonym, ohne dass die beiden direkt kommunizieren oder neue Adressen generieren müssen.
Zusammengefasst:
Eine Silent Payments-Adresse ermöglicht es, Bitcoin so zu versenden, dass nur der Empfänger den Zugang hat, ohne dass die Transaktion öffentlich als seine erkennbar ist.
Welchen privaten Schlüssel verwendet Alice? Woher kennt Bob ihren öffentlichen Schlüssel?
Alice möchte Bob Bitcoin senden und kennt dafür seine Silent Payments-Adresse, die seine öffentlichen Schlüssel enthält. Bob muss jedoch auch Alices öffentlichen Schlüssel kennen, um die Zahlung als für ihn bestimmt zu erkennen – aber ohne, dass Alice und Bob dafür direkt kommunizieren müssen.
Die Lösung
Alice kann ihren eigenen öffentlichen Schlüssel einfach in die Transaktion einfügen, denn jede Transaktion enthält automatisch Informationen zu den öffentlichen Schlüsseln des Senders. Das heißt, wenn Alice eine Transaktion erstellt, nutzt sie ihre privaten Schlüssel, um diese freizugeben, und Bob kann daraus die zugehörigen öffentlichen Schlüssel entnehmen.
So kann Bob das gemeinsame Geheimnis allein aus den Transaktionsinformationen berechnen und die Zahlung erkennen. Das macht Silent Payments sehr praktisch, da es keine zusätzliche Kommunikation zwischen Absender und Empfänger braucht.
Kurz gesagt: Alice schickt die Coins, und Bob erkennt die Zahlung, weil die nötigen Schlüssel bereits Teil der Transaktion sind.
Einschränkungen von Silent Payments
Silent Payments funktionieren nur, wenn jede Transaktion einen einzelnen öffentlichen Schlüssel pro Input hat. Daher sind nur bestimmte Arten von Eingaben erlaubt: P2TR („Key Spends“), P2WPKH, P2WPKH-P2SH und P2PKH – also die gängigsten Single-Signature-Skripttypen.
Das bedeutet, dass Nutzer von Multisignatur-Konten oder komplexeren Skripten keine Silent Payments nutzen können, was als ein erheblicher Nachteil angesehen wird und die Einführung von Silent Payments erschweren könnte.
Sicherstellen, dass Adressen nicht wiederverwendet werden
Das Hauptziel von Silent Payments ist es, dass Adressen nicht wiederverwendet werden. Der öffentliche Schlüssel für den Empfänger wird dabei jedes Mal neu erstellt – basierend auf den Schlüsseln von Alice und Bobs Silent Payments-Adresse.
Falls Alice jedoch immer dieselbe Adresse für Transaktionen an Bob nutzen würde, könnten dabei wiederkehrende Schlüssel entstehen, was die Privatsphäre gefährden könnte. Um das zu verhindern, fügt man zusätzlich eine Art „Kennung“ des Transaktionsinputs hinzu, die jede Transaktion eindeutig macht.
So wird der Output-Schlüssel für Bob einzigartig, indem er mit einem Hash der spezifischen Kennung des Inputs verknüpft wird, die durch vorherige Transaktionen eindeutig bestimmt ist. Dadurch hat jede Transaktion einen eigenen, nicht wiederverwendbaren Output-Schlüssel.
Die Entwickler der BitBox-Hardware-Wallet haben entscheidend dazu beigetragen, Silent Payments auch für Hardware-Wallets wie die BitBox02 zugänglich zu machen.
In einem ersten Entwurf des Vorschlags für Silent Payments wurde ein Hash aller Transaktionsinputs verwendet, was für Hardware-Wallets problematisch ist, da diese nur begrenzten Speicherplatz haben und nicht alle Daten gleichzeitig laden und sortieren können. Eine solche Anforderung hätte die Verwendung von Silent Payments auf Hardware-Wallets eingeschränkt und zu Kompatibilitätsproblemen geführt.
Durch die Rückmeldung und Diskussion der BitBox-Entwickler wurde eine Lösung entwickelt, bei der nur der kleinste Input verwendet und gehasht wird. Diese Änderung schaffte es in die finale Version des Vorschlags und ermöglichte die Integration von Silent Payments in die BitBox02 – ein Meilenstein, der sicherstellt, dass auch Nutzer von Hardware-Wallets von den Vorteilen profitieren können.
Fazit
Silent Payments bieten eine innovative Möglichkeit, Bitcoin-Adressen mehrfach zu nutzen, ohne die Privatsphäre des Empfängers zu gefährden. Statt bei jeder Transaktion eine neue Adresse generieren zu müssen, können Benutzer eine einzige Adresse dauerhaft verwenden, was das Handling von Bitcoin-Transaktionen deutlich vereinfacht. Vor allem für Organisationen und Dienstleister, die ihre Adressen öffentlich teilen, stellt dies eine erhebliche Erleichterung dar, da jede Transaktion privat bleibt und nur für den eigentlichen Empfänger erkennbar ist. Dies wird durch das elliptische Diffie-Hellman-Verfahren erreicht, das zwischen Absender und Empfänger ein gemeinsames Geheimnis erzeugt. Der Empfänger kann so die Zahlung identifizieren, ohne dass der Zusammenhang öffentlich nachvollziehbar ist.
Ein wesentlicher Vorteil von Silent Payments liegt in der verbesserten Benutzerfreundlichkeit, da die wiederholte Adressgenerierung entfällt. Dazu kommt ein hoher Grad an Privatsphäre, weil Transaktionen für Dritte auf der Blockchain nicht auf den Empfänger zurückzuführen sind. Dank der Anpassungen, die durch die Zusammenarbeit mit den Entwicklern der BitBox-Hardware-Wallet erreicht wurden, sind Silent Payments nun auch auf Hardware-Wallets anwendbar, ohne dass Einschränkungen beim Speicher oder der Sicherheitsarchitektur bestehen.
Ein Nachteil ist jedoch die derzeit eingeschränkte Kompatibilität mit Multisignatur-Transaktionen, die mehr Sicherheit durch die Einbindung mehrerer Schlüssel bieten. Auch ist die Implementierung von Silent Payments komplex und erfordert spezielle Anpassungen in Wallets, was die Einführung dieser Technologie verlangsamen könnte. Außerdem könnte die gesteigerte Privatsphäre durch Silent Payments in einigen Ländern regulatorische Herausforderungen mit sich bringen, da die Rückverfolgbarkeit von Finanzflüssen stark eingeschränkt wird.