PASS1-527: Add BIP375 Silent Payment sending support - #647
PASS1-527: Add BIP375 Silent Payment sending support#647220nightmore-spec wants to merge 8 commits into
Conversation
|
Progress update: commit The branch now covers PSBTv2 parsing/serialization, BIP375 global and per-input proof handling, labeled output derivation, output-script verification, Validation completed:
The remaining known limitation is conservative UI classification of labeled Silent Payment change: scripts are derived and verified, but ownership is not proven from Passport scan/spend derivations, so these outputs are shown as payments instead of hidden as trusted change. |
Summary
Implements sender-side Silent Payments support for Passport firmware using BIP352, BIP374, and the standardized BIP375 PSBTv2 protocol.
sp.../tsp...destination during confirmation; andCloses #527.
Protocol and safety
The implementation follows BIP375 rather than defining a proprietary host/device field:
SIGHASH_ALL;Validation
macgyver13/bip375-test-generatorv1.1.1, covering labeled outputs, global/per-input shares, collaborative inputs, and excluded P2SH/NUMS inputs;py_compile, repositorypycodestyle, andgit diff --check.All tests use deterministic public vectors. No funded transaction, real seed, wallet credential, or user-private material is involved.
Known limitation
PSBT_OUT_SP_V0_LABELis preserved and labeled outputs are derived and verified correctly, but Passport does not yet prove that a labeled Silent Payment output belongs to its own scan/spend derivation. Such outputs are therefore shown conservatively as payments instead of being hidden as trusted change.