Skip to content

Feat/silentpayments dleq multisigner - #142

Open
Sosthene00 wants to merge 18 commits into
masterfrom
feat/silentpayments-dleq-multisigner
Open

Feat/silentpayments dleq multisigner#142
Sosthene00 wants to merge 18 commits into
masterfrom
feat/silentpayments-dleq-multisigner

Conversation

@Sosthene00

Copy link
Copy Markdown
Collaborator
  • Add BIP-374 DLEQ-backed PartialSenderEcdhShare and GlobalSenderEcdhShare for multi-signer flows.
  • Add TransactionSharedSecret::new_from_global_share and new_from_partial_shares with vin coverage checks.
  • Introduce dleq-native / dleq-standalone feature flags via rust-dleq; legacy PartialSecret API retained.

@Sosthene00
Sosthene00 force-pushed the feat/silentpayments-dleq-multisigner branch from b1a2c81 to 269918b Compare June 23, 2026 13:22
@Sosthene00
Sosthene00 force-pushed the feat/silentpayments-dleq-multisigner branch from 269918b to a0cc0da Compare July 22, 2026 11:13
@Sosthene00
Sosthene00 force-pushed the feat/silentpayments-dleq-multisigner branch 3 times, most recently from d679ca4 to 6744fd8 Compare August 12, 2026 10:36
@Sosthene00
Sosthene00 force-pushed the feat/silentpayments-dleq-multisigner branch 3 times, most recently from 822abfb to e4cc145 Compare August 26, 2026 11:35
@Sosthene00
Sosthene00 force-pushed the feat/silentpayments-dleq-multisigner branch from 7f9494e to da45d4f Compare September 1, 2026 13:29
Sosthene00 and others added 18 commits September 3, 2026 10:17
Only accepts selections whose implied fee rate stays within the
requested rate (modulo vbyte rounding): selections that would absorb
the leftover excess into the fee are rejected, and among the accepted
ones the fee is minimized. When no selection can honor the rate the
strategy is simply absent from the results, leaving callers free to
fall back to the other strategies.
Introduce BIP-374 DLEQ-backed `PartialSenderEcdhShare` and `GlobalSenderEcdhShare`
types, with `TransactionSharedSecret` constructors for global and per-input
share aggregation. Add `dleq-native` and `dleq-standalone` feature flags via
rust-dleq while keeping the legacy `PartialSecret` sending API for backward compatibility.
Replace PartialSecret-based generate_recipient_pubkeys with a DLEQ-aware
API taking a TransactionSharedSecret per scan key. Remove legacy
calculate_partial_secret helpers and update spdk-wallet spending to use
TransactionSharedSecret and GlobalSenderEcdhShare.

Adapted from 33562f7 to the SilentPaymentKeyMaterial naming (the
SilentPaymentAddressRaw commits it built on are skipped as obsolete).
Implements the BIP-375 signer roles as a new workspace crate built on top of
rust-psbt (psbt-v2, from a fork at branch taproot_sign) and the silentpayments crate.

Ported from ba1e67b (includes local WIP: validation module stub), adapted to
SilentPaymentKeyMaterial instead of the obsolete SilentPaymentAddressRaw.
Add the psbt workspace dependency and re-export it (and DATA_CARRIER_SIZE)
for consumers of the BIP-375 flow.

Partial port of 0a197e7: the coin-select extraction and the
SilentPaymentUnsignedTransaction removal are intentionally skipped — coin
selection lives in spdk-wallet's own coin_select module on this branch.
…outputs

Fix output script computation when multiple outputs share the same scan key (labeled addresses of one recipient)
@Sosthene00
Sosthene00 force-pushed the feat/silentpayments-dleq-multisigner branch from da45d4f to ce841fe Compare September 3, 2026 09:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants