Mit Payjoin lässt sich eine Bitcoin-Zahlung gemeinsam mit dem Empfänger vorbereiten. Beide Seiten bringen eigenes Geld in eine Transaktion ein, behalten aber ihre privaten Schlüssel und geben jeweils nur das Ausgeben ihrer eigenen Mittel frei. Beobachter der öffentlichen Blockchain können dadurch schwerer ableiten, wem die verwendeten Coins zuvor gehörten. Es entsteht weder eine andere Währung noch eine Garantie für Anonymität.
Alice bezahlt Bob. Eine Wallet ist eine Anwendung oder ein Gerät zum Empfangen und Senden von Bitcoin. Ihre Wallet verwaltet keinen einzelnen Kontostand wie eine Bank: Sie wählt noch nicht ausgegebene Outputs früherer Transaktionen aus, sogenannte UTXOs. Jeder Output enthält einen Betrag und Bedingungen dafür, wie er ausgegeben werden darf. Die neue Transaktion verweist mit ihren Inputs auf diese UTXOs und erzeugt neue Outputs für Bob sowie gegebenenfalls Wechselgeld für Alice. Bei einer gewöhnlichen Zahlung stellt nur Alice die Mittel bereit. Bei Payjoin beteiligt sich auch Bob und fügt ein eigenes UTXO hinzu. Er erhält weiterhin die vereinbarte Zahlung, bewegt dabei aber auch Geld, das ihm schon gehörte. Beide Wallets müssen das Ergebnis prüfen. Anschließend gibt jede Seite das Ausgeben ihrer eigenen Inputs mit einer digitalen Signatur frei; private Schlüssel werden nicht ausgetauscht. Der private Schlüssel ist ein geheimer Zahlenwert, mit dem eine solche Signatur erzeugt wird. [1] [3] [8] [6]
Analysten nehmen häufig an, gemeinsam ausgegebene Inputs gehörten einer Wallet. Diese Faustregel heißt common-input-ownership heuristic. Sie ist weder eine Bitcoin-Regel noch ein Identitätsnachweis, sondern eine Vermutung aufgrund üblichen Verhaltens. Payjoin erzeugt gültige Transaktionen, auf die diese Vermutung nicht zutrifft. Ein Beobachter kann somit nicht automatisch alle Inputs Alice zuordnen. Andere Informationen können ihm dennoch helfen. [1] [3]
Die Beträge geben wir in sats an, den kleinsten Bitcoin-Einheiten. Lassen wir die Gebühr kurz beiseite. Alice hat einen Input über 100 000 sats und bezahlt Bob 20 000 sats; 80 000 sats gehen an sie zurück. Bob ergänzt einen eigenen Input über 50 000 sats, und sein Output steigt auf 70 000 sats. Inputs und Outputs ergeben jeweils weiterhin 150 000 sats. Bob bekommt kein zusätzliches Geschenk: 50 000 sats gehörten ihm bereits, neu erhält er nur die vereinbarten 20 000 sats. Eine echte Transaktion muss selbstverständlich auch eine Gebühr bezahlen. [1] [6]
Damit die Wallets zusammenarbeiten können, brauchen sie einen gemeinsamen Ablauf und ein Nachrichtenformat. BIP78, das technische Dokument von Nicolas Dorier mit der 2019 vergebenen Nummer, verwendet PSBT — Partially Signed Bitcoin Transaction. Das ist ein Datenpaket mit einer Transaktion und den Angaben zu ihrer Prüfung und Signierung, noch keine Zahlung im Netzwerk. Die Zahlungsanforderung enthält den Parameter pj: die Adresse des Dienstes, den die Wallet kontaktieren soll. Zuerst sendet der Absender die ursprüngliche Zahlung als vollständig signierte und finalisierte PSBT. Sie ist bereits sendefertig, obwohl im Formatnamen „partially“ steht. Der Empfänger antwortet mit einem geänderten Vorschlag, der seine zusätzlichen Inputs und Signaturen enthält. Der Absender prüft ihn, signiert seine eigenen Inputs erneut und verbreitet die fertige Transaktion im Bitcoin-Netzwerk. Die Verbindung muss verschlüsselt und die Gegenstelle authentifiziert sein. PSBT ist keine Wallet-Sicherung: Weder der Seed als Grundlage der Schlüsselableitung noch private Schlüssel oder unnötige Angaben zur Ableitung werden übermittelt. [1] [5]
Die Wallet des Senders muss prüfen, ob ihre Inputs und geschützten Outputs erhalten bleiben, das Wechselgeld nicht willkürlich sinkt und der Gebührenbeitrag im erlaubten Rahmen bleibt. Sie signiert nur ihre eigenen ursprünglichen Inputs. Das Protokoll erlaubt bestimmte Änderungen an Empfänger-Outputs unter genau festgelegten Bedingungen; es erlaubt nicht, die ganze Zahlung umzuleiten. Auf einem Signiergerät sollte man die angezeigten Beträge verstehen und nicht lediglich den nächsten Bildschirm bestätigen. [1] [5]
Ein zusätzlicher Input beansprucht Platz und kann die absolute Gebühr der Zahlung erhöhen. Wer wie viel übernimmt, handeln die Wallets aus. Der Empfänger kann dabei aber eigene UTXOs zusammenführen oder eine weitere Zahlung aufnehmen, die sonst separat nötig wäre. Die Gesamtersparnis hängt daher vom Vergleich derselben Vorgänge ab, nicht vom Versprechen, jeder Payjoin sei billiger. Bei einer größeren Transaktion bedeutet dieselbe Gebühr in Satoshis einen niedrigeren Gebührensatz. [1] [2]
Bei BIP78 benötigt der Empfänger einen über das Internet erreichbaren Dienst, und beide Seiten müssen gleichzeitig kommunizieren. Für ein Telefon, das gerade seine Verbindung verliert, ist das unpraktisch. BIP77, auch Payjoin v2 genannt, nutzt deshalb einen Server als vorübergehenden Briefkasten. Eine Wallet legt eine Nachricht ab, die andere holt sie später ab, solange die vereinbarte Sitzung noch nicht abgelaufen ist. Das heißt asynchrone Kommunikation. Der Zahlungsvorschlag selbst ist Ende-zu-Ende-verschlüsselt: Die beteiligten Wallets können ihn lesen, der Briefkastenbetreiber nicht. OHTTP, Oblivious HTTP, ergänzt diesen Schutz. Anfragen laufen über einen getrennten Vermittler, sodass der Briefkastenserver die IP-Adresse der Wallet normalerweise nicht sieht. Eine IP-Adresse ist die Netzwerkadresse, die ein Gerät bei der Kommunikation über das Internet verwendet. Dieser Schutz der Zuordnung setzt voraus, dass Vermittler und Server ihre Aufzeichnungen nicht zusammenführen. Keiner erhält private Schlüssel für die Bitcoins. Der Server kann Nachrichten trotzdem verzögern oder verwerfen; Verschlüsselung allein garantiert keine Zustellung. [2] [4] [7]
Payjoin macht eine Zahlung nicht automatisch anonym. Beträge, Inputs, Outputs und Bestätigungszeit bleiben in der Blockchain sichtbar. Die Gegenseite kennt außerdem den Verhandlungsablauf; ein Händler kann eine Bestellung mit Ihrem Namen haben. Die öffentliche Transaktion trägt keine verpflichtende Payjoin-Markierung, doch wiederverwendete Adressen oder Wallet-Eigenheiten können weitere Hinweise liefern. Automatische Empfänger müssen sich auch gegen Versuche wehren, ihre UTXOs durch nie abgeschlossene Anfragen auszuspähen. [1] [2]
Die ursprüngliche signierte Transaktion kann als gewöhnliche Ersatz-Zahlung dienen. Im korrekten Protokoll geben sie und der Payjoin-Vorschlag dieselben ursprünglichen Inputs aus; höchstens eine davon kann daher bestätigt werden. Das ist kein Grund, nach einem Fehler ungeprüft eine weitere unabhängige Zahlung zu erstellen. Ein bereits übermittelter Signatursatz kann dem Empfänger erlauben, die ursprüngliche Transaktion zu verbreiten. Die Wallet sollte klar anzeigen, ob Payjoin, eine gewöhnliche Ersatz-Zahlung oder noch nichts erfolgt ist, und dies mit der Blockchain abgleichen. [1] [2]
Payjoin zu senden und zu empfangen sind unterschiedliche Fähigkeiten; die konkreten Wallets und Versionen müssen zusammenpassen. Eine Anfrage ohne zusätzlichen Empfänger-Input zu verarbeiten schafft noch nicht den beschriebenen Vorteil gegenüber der Eigentumsheuristik. Bei der Prüfung am 17. Oktober 2026 hat BIP78 den Status Deployed, BIP77 von Dan Gould und Yuval Kogman hingegen Draft. Payjoin wird zwischen Anwendungen mit gewöhnlichen Bitcoin-Transaktionen ausgehandelt: Es braucht keinen Soft Fork und ändert die Emissionsregeln nicht. [1] [2] [3]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit CoinJoin, Bitcoin-Privatsphäre, PSBT, Pseudonymität, UTXO, Satoshi. Auf diesen Eintrag verweisen außerdem Change Address, Bitcoin-Privatsphäre, Pseudonymität, Chain Surveillance.