Die meistgenutzte Annahme in der Kettenanalyse ist, dass alle Inputs einer Transaktion dem Zahler gehören. PayJoin bricht sie mit einem einfachen Trick: Der Empfänger fügt eine seiner eigenen Münzen als Input hinzu.
So funktioniert es (BIP78)
- Der Zahler erstellt eine normal signierte Transaktion (ein PSBT) und sendet sie an den Endpoint des Empfängers.
- Der Empfänger fügt einen eigenen Input hinzu und erhöht seinen Output um denselben Betrag.
- Der Zahler prüft, dass er nicht mehr als beabsichtigt zahlt, signiert dann und broadcastet.
On-chain sieht es aus wie eine gewöhnliche Zahlung. Aber die Inputs kommen von zwei Personen, und die Beträge verraten die echte Zahlung nicht mehr.
Warum es allen hilft
BIP78 stellt fest, dass Payjoin die Common-Input-, Change-Script-Type- und Round-Amount-Heuristiken ungültig machen kann. Weil Payjoins wie normale Transaktionen aussehen, macht allein ihre Existenz diese Heuristiken für alle unzuverlässiger – auch für jene, die nie Payjoin nutzen.
Status
- BIP78 hat Status „Deployed“ und wird von manchen Wallets und Zahlungsservern unterstützt (etwa BTCPay Server).
- BIP77 (Async Payjoin, Status Draft) entfernt die Notwendigkeit, dass der Empfänger einen Server betreibt, der im Zahlungszeitpunkt online ist.
Grenze: Beide Seiten müssen Wallets nutzen, die es unterstützen.