From f208b9d4f93b57f80cbdc92a3f08808869cfd255 Mon Sep 17 00:00:00 2001 From: nymius <155548262+nymius@users.noreply.github.com> Date: Thu, 12 Mar 2026 12:06:50 -0300 Subject: [PATCH 1/3] BIP375: replace public keys by private keys to create ECDH in phrase On the sender side, the public key information provided by the Updater is used by the Signer in the silent payment output derivation phase to obtain the private keys required to produce the ecdh shares. The sender cannot produce the shares from its own public keys, but its private keys. This was implied by the former phrase and this change removes the ambiguity. --- bip-0375.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0375.mediawiki b/bip-0375.mediawiki index c50d62cc4e..4eaf499825 100644 --- a/bip-0375.mediawiki +++ b/bip-0375.mediawiki @@ -164,7 +164,7 @@ Outputs with PSBT_OUT_SP_V0_INFO set may only be added if there are no inputs sp ===Updater=== -The updater should add a PSBT_IN_BIP32_DERIVATION for any p2wpkh, p2sh-p2wpkh, or p2pkh input so the public key is available for creating the ecdh_shared_secret when the private key is not known. If the updater does not want to reveal the fingerprint or derivation path, it can set the value of the field to zero. +The updater should add a PSBT_IN_BIP32_DERIVATION for any p2wpkh, p2sh-p2wpkh, or p2pkh input to let the signer find the private keys to create the PSBT_IN_ECDH_SHAREs. If the updater does not want to reveal the fingerprint or derivation path, it can set the value of the field to zero. ====Change Detection==== From 7d7e0343cab5fa6b501a8bc5811ee94a30139830 Mon Sep 17 00:00:00 2001 From: nymius <155548262+nymius@users.noreply.github.com> Date: Thu, 12 Mar 2026 12:11:45 -0300 Subject: [PATCH 2/3] BIP375: add PSBT_IN_TAP_BIP32_DERIVATION in Updater role P2TR outputs with enabled key path spend are also required to derive ECDH shares. The Updater role wasn't mentioning this but all the others Inputs Available for Shared Secret Derivation (P2WPKH, P2PKH, P2SH-P2WPKH) as per BIP 352. P2TR is also part of these and should be mentioned too. --- bip-0375.mediawiki | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bip-0375.mediawiki b/bip-0375.mediawiki index 4eaf499825..7f8bdfef94 100644 --- a/bip-0375.mediawiki +++ b/bip-0375.mediawiki @@ -164,7 +164,12 @@ Outputs with PSBT_OUT_SP_V0_INFO set may only be added if there are no inputs sp ===Updater=== -The updater should add a PSBT_IN_BIP32_DERIVATION for any p2wpkh, p2sh-p2wpkh, or p2pkh input to let the signer find the private keys to create the PSBT_IN_ECDH_SHAREs. If the updater does not want to reveal the fingerprint or derivation path, it can set the value of the field to zero. +For any p2wpkh, p2sh-p2wpkh or p2pkh input the updater should add a PSBT_IN_BIP_32_DERIVATION. +For any p2tr input which has internal private key the updater should add a PSBT_IN_TAP_BIP32_DERIVATION. + +This must be done to allow the signer find the private keys to create the PSBT_IN_ECDH_SHAREs. + + If the updater does not want to reveal the fingerprint or derivation path, it can set the value of the field to zero. ====Change Detection==== From 6838026ac3611141ed9291f769c7a52d57a57a8f Mon Sep 17 00:00:00 2001 From: nymius <155548262+nymius@users.noreply.github.com> Date: Thu, 12 Mar 2026 12:16:02 -0300 Subject: [PATCH 3/3] BIP375: specify format for zeroing derivation data in Updater role --- bip-0375.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0375.mediawiki b/bip-0375.mediawiki index 7f8bdfef94..4b20a34727 100644 --- a/bip-0375.mediawiki +++ b/bip-0375.mediawiki @@ -169,7 +169,7 @@ For any p2tr input which has internal private key the updater should add a PSBT_ This must be done to allow the signer find the private keys to create the PSBT_IN_ECDH_SHAREs. - If the updater does not want to reveal the fingerprint or derivation path, it can set the value of the field to zero. +If the updater does not want to reveal the fingerprint or derivation path, it can set the value to a 4-byte zero fingerprint with no derivation paths. ====Change Detection====