You can also read the English version of this article.
Um einen Brief an Freunde oder Familie zu senden, musst du zuerst deren Postanschrift kennen. Es muss also in irgendeiner Form eine Interaktion zwischen dir und dem Empfänger stattfinden, um die Adresse auszutauschen, bevor du einen Brief verschicken kannst. Ist die Adresse einmal bekannt, kannst du so viele Briefe senden, wie du möchtest, ohne deinem Bekannten vorher Bescheid geben zu müssen. Selbst wenn niemand zu Hause ist, kann ein Briefkasten Briefe ohne Interaktion empfangen – und du kannst deinen Freund oder deine Freundin überraschen!
Die meisten Leser dieses Artikels versenden wahrscheinlich lieber Bitcoin-Transaktionen statt Briefe, doch der zugrunde liegende Prozess ist tatsächlich recht ähnlich: Nach der anfänglichen Interaktion des Austauschens einer Bitcoin-Adresse können so viele Zahlungen an den Empfänger gesendet werden, wie man möchte, da die Adresse nicht abläuft. Und genau wie ein Briefkasten erfordert eine Bitcoin-Wallet keine Aufmerksamkeit und muss auch nicht "online" sein, um Zahlungen zu empfangen – auch mit Bitcoin kannst du also deine Liebsten überraschen!
Es gibt jedoch einen Haken, nämlich die Privatsphäre des Empfängers. Bestände von Bitcoin-Adressen sind öffentlich, was bedeutet, dass alle Transaktionen, die zu einer Adresse gehören, eingesehen werden können. Aus diesem Grund generiert die BitBoxApp stets neue Empfangsadressen, statt bereits verwendete anzuzeigen; eine gängige Praxis, um es anderen schwerer zu machen, mehrere Bitcoin-Transaktionen mit der eigenen Identität zu verknüpfen. Der Nachteil der ständigen Verwendung neuer Adressen ist dabei recht offensichtlich: Diese neuen Bitcoin-Adressen müssen jedes Mal irgendwie mit Transaktionspartnern kommuniziert werden, was bei einigen Anwendungsfällen etwas lästig sein kann.
Unvollkommene Lösungen
Da Bitcoin-Adressen nur ein kleines Stück Information sind, können sie auf verschiedenste Weise kommuniziert werden. Während Adressen selbst nicht geheim sind, sind sie dennoch anfällig für Manipulationen. Daher sollte der Kommunikationskanal, der zum Austausch von Adressen verwendet wird, einigermaßen sicher sein – ein Thema, das weitere Probleme aufwirft, die wir in einem anderen Blog-Artikel ausführlicher beschrieben haben.
Das Hauptproblem, auf das wir uns zunächst konzentrieren möchten, ist die Benutzererfahrung beim wiederholten Austausch von Bitcoin-Adressen. Schauen wir uns ein paar bereits etablierte Möglichkeiten dafür an:
- Ignorieren: Wie bereits erwähnt, kann eine Bitcoin-Adresse einmal geteilt und anschließend beliebig oft wiederverwendet werden, natürlich auf Kosten der Privatsphäre des Nutzers.
- Manuelles Teilen: Wenn uns jemand in Bitcoin bezahlen möchte, können wir manuell eine neue Adresse mit dem Sender teilen. Während dies in Bezug auf den Schutz der Privatsphäre effektiv ist, kann diese Methode ineffizient sein und ist nicht immer praktikabel.
- Erweiterte öffentliche Schlüssel: Mit einem erweiterten öffentlichen Schlüssel (xpub) eines gesamten Bitcoin-Kontos kann der Sender selbst beliebig viele neue Adressen erstellen. Dies löst das Problem jedoch nur schrittweise für einzelne Transaktionspartner, da das Teilen eines einzigen erweiterten öffentlichen Schlüssels mit mehreren Entitäten wiederum ein großer Verlust für die Privatsphäre darstellen würde.
- Adressen auf Abruf: Fortgeschrittenere Benutzer, die beispielsweise auf geschäftlicher Ebene regelmäßig Bitcoin empfangen müssen, können Dienste wie BTCPay nutzen, die sich um die Kommunikation kümmern und es Sendern ermöglichen, neue Adressen auf Abruf anzufordern. Das ist eine gute Lösung für sowohl Privatsphäre als auch die Benutzerfreundlichkeit, erfordert jedoch immer noch Zeit und Aufwand für die Einrichtung und sprengt daher wahrscheinlich den Rahmen für den persönlichen Gebrauch.
Keine dieser Lösungen ist wirklich perfekt für die tägliche Nutzung einer Bitcoin-Wallet. Alle oben genannten Vorschläge scheinen einen unvermeidbaren Kompromiss zwischen Privatsphäre und Benutzerfreundlichkeit mit sich zu bringen, was oft dazu führt, dass Benutzer nachlässig werden und sich gegen Privatsphäre, zugunsten von mehr Benutzerfreundlichkeit entscheiden.
Austausch mit Hilfe von Kryptographie
Für eine elegantere Lösung für das genannte Problem können wir einen Kommunikationskanal nutzen, der ohnehin verwendet wird: das Bitcoin-Netzwerk. Mit ein wenig kryptographischer Magie können die notwendigen Informationen ausgetauscht werden, um direkt durch (oder mithilfe von) einer Bitcoin-Transaktion neue Adressen zu vereinbaren bzw. zu erstellen. Mit einem solchen Mechanismus müsste der Benutzer nur einen einzigen "Payment Code" teilen, der sich nicht verändert und es anderen ermöglicht, neue Adressen abzuleiten, ohne die Privatsphäre zu gefährden.
Es gibt heute hauptsächlich zwei Bitcoin Improvement Proposals für diese Methode: BIP-47 Payment Codes und Silent Payments (BIP-352). Schauen wir uns an, wie sie funktionieren und ob sie das zugrunde liegende Problem wirklich sinnvoll lösen können.
BIP-47
Payment Codes nach dem BIP-47 Standard sind bereits in einigen Wallets implementiert, wie z.B. der beliebten Sparrow Wallet, und werden oft als „PayNyms“ codiert. Diese sind etwas länger als normale Bitcoin-Adressen und können an ihren Anfangszeichen „PM8T“ erkannt werden. Du hast vielleicht schon ein PayNym gesehen, der als netter Roboter im Profilbild einer anderen Person dargestellt wird:
Diese BIP-47 Payment Codes können nicht nur ähnlich wie reguläre Bitcoin-Adressen aussehen, sie enthalten tatsächlich auch eine: die Benachrichtigungs-Adresse. Diese Adresse ist für jeden mit Zugang zum Payment Code öffentlich verfügbar und ändert sich nicht. Um eine neue Bitcoin-Adresse zu vereinbaren, erstellt der Sender zunächst eine Benachrichtigungs-Transaktion an die Benachrichtigungs-Adresse, die ein kleines Stück Information in einem OP_RETURN-Output enthält.
Dies muss nur einmal geschehen und ermöglicht es dem Sender und Empfänger, durch einen Diffie-Hellman-Schlüsselaustausch ein gemeinsames Geheimnis auszutauschen, ein gängiges Verfahren in der Kryptographie, wobei keine geheimen Informationen offengelegt werden.
Kurz gesagt kann der Sender nun eine beliebige Anzahl neuer Bitcoin-Adressen erstellen, ohne direkt mit dem Empfänger kommunizieren zu müssen. Indem er sich die Benachrichtigungs-Adresse und die entsprechenden Transaktionen anschaut, kann der Empfänger diese Bitcoin-Adressen jederzeit leicht rekonstruieren und das Netzwerk nach eingehenden Zahlungen absuchen.
Während BIP-47 Payment Codes die Privatsphäre wahren und keine Interaktion für jede neue Adresse benötigt wird, haben sie einen offensichtlichen Nachteil: eine zusätzliche Bitcoin-Transaktion, die in Zukunft, vor allem bei steigenden Transaktionsgebühren, die Kosten für Privatsphäre erhöhen. Es ist auch erwähnenswert, dass obwohl die endgültigen Adressen nur zwischen dem Sender und dem Empfänger bekannt sind, die Benachrichtigungs-Transaktionen im Wesentlichen für jeden einsehbar sind. Metadaten wie die Gesamtzahl der Transaktionspartner werden somit offengelegt.
Silent Payments
An dieser Stelle kommt ein weiterer Ansatz ins Spiel: Silent Payments. Prinzipiell funktionieren Silent Payments sehr ähnlich wie BIP-47 Payment Codes, jedoch ohne die Notwendigkeit einer dedizierten Benachrichtigungs-Transaktion. Jeder, der Zugang zu einer Silent Payment Adresse hat, kann daraus eine neue Adresse ableiten und sofort eine Transaktion senden.
Auf den ersten Blick klingt dies wie eine perfekte Lösung, da alle zuvor genannten Nachteile hier nicht zutreffen: Adressen bleiben privat, es ist keine Interaktion zwischen den Transaktionsparteien erforderlich und es sind keine zusätzlichen Bitcoin-Transaktionen notwendig.
Allerdings bringt das Weglassen der Benachrichtigungs-Transaktion ein völlig neues Problem für den Empfänger mit sich: Jeder kann zwar leicht an eine neue Bitcoin-Adresse zahlen, aber wie würde der Empfänger überhaupt davon erfahren? Die Benachrichtigungs-Transaktion informierte diesen zuvor über einen neuen potenziellen Transaktionspartner, einschließlich eines öffentlichen Schlüssels – eine Information, die nun fehlt.
Stattdessen muss der Empfänger überprüfen, ob jede einzelne neue (Taproot-)Transaktion im Netzwerk eine Zahlung enthält, die zur eigenen Silent Payment Adresse gehört. Dies erhöht den Rechenaufwand für den Empfänger bzw. dessen Wallet-Software erheblich und kann die Wiederherstellung der Wallet recht zeitaufwändig machen.
Dennoch stellen Silent Payments eine vielversprechende Lösung für das allgemeine Problem des Austauschs von Adressen dar, und laufende Entwicklungen zeigen, dass die Komplexität in Zukunft zumindest weiter reduziert werden könnte. Generell könnten Payment Codes für Nutzer von Hardware-Wallets wie der BitBox02 dabei helfen, ein sicheres „Adressbuch“ aufzubauen, indem diese direkt auf dem Gerät registriert werden. Wenn eine neue Adresse für einen bereits bekannten Zahlungscode erstellt wird, wäre keine zusätzliche Verifizierung durch den Benutzer erforderlich, da das Gerät dies eigenständig nachvollziehen kann.
Unterstützung für das Senden an Silent Payment Adressen ist derzeit etwas, an dem wir arbeiten und möglicherweise in Zukunft zur BitBox02 und BitBoxApp hinzufügen werden. Dies wäre ein wichtiger Schritt zur Beschleunigung der breiten Akzeptanz.
Fazit
Die Art und Weise, wie wir Bitcoin-Adressen mit anderen teilen, sollte idealerweise kein Kompromiss zwischen Benutzerfreundlichkeit und Privatsphäre sein. Auch wenn das manuelle Generieren neuer Empfangsadressen ein paar zusätzliche Schritte erfordert, bleibt es derzeit der einfachste Weg, die Privatsphäre mit der BitBox02 und der BitBoxApp zu schützen. Payment Codes nach BIP-47 oder Silent Payments stellen einen interessanten Lösungsansatz für dieses Problem dar, mit einem wichtigen Fokus auf Privatsphäre, auch wenn dabei Kompromisse eingegangen werden müssen.
Du hast noch keine BitBox?
Deine Kryptowährungen sicher zu halten muss nicht schwer sein. Die BitBox02 Hardware Wallet speichert die privaten Schlüssel deiner Kryptowährungen offline. So kannst du deine Coins sicher verwalten.
Die BitBox02 gibt es auch als Bitcoin-only-Version mit einer radikal fokussierten Firmware: weniger Code bedeutet weniger Angriffsfläche, was deine Sicherheit weiter verbessert, wenn du nur Bitcoin speicherst.
Hol dir eine in unserem Shop!
Die BitBox-Produkte werden von Shift Crypto, einem privaten Unternehmen mit Sitz in Zürich, Schweiz, entwickelt und hergestellt. Unser Team aus Bitcoin-Entwicklern, Krypto-Experten und Sicherheitsingenieuren entwickelt Produkte, die unseren Kunden eine stressfreie Reise vom Anfänger zum Meister der Kryptowährung ermöglichen. Die BitBox02, unsere Hardware-Wallet der zweiten Generation, ermöglicht es den Nutzern, Bitcoin und andere Kryptowährungen zu speichern, zu schützen und mit Leichtigkeit zu handeln – zusammen mit der dazugehörigen Software, der BitBoxApp.