* [bitcoindev] BIP-352: Limiting the number of per-group recipients (K_max)
@ 2026-02-04 17:20 Sebastian Falbesoner
2026-02-19 20:39 ` [bitcoindev] " Sebastian Falbesoner
0 siblings, 1 reply; 3+ messages in thread
From: Sebastian Falbesoner @ 2026-02-04 17:20 UTC (permalink / raw)
To: Bitcoin Development Mailing List
[-- Attachment #1.1: Type: text/plain, Size: 2160 bytes --]
Hi list,
In the course of working on a Silent Payments module for libsecp256k1 [1],
we
discovered that the scanning approach suggested in BIP-352 [2] suffers from
very poor performance for adversarial transactions [3].
One more recent proposal to mitigate this issue is by introducing a "K_max"
protocol limit. This effectively limits the number of per-group recipients
within a single transaction, i.e. the number of recipients sharing the same
scan public key. In theory this is a backwards incompatible protocol change,
in practice we believe that none of the existing SP wallets would be
affected,
for a reasonably high K_max (the example value used is K_max=1000, but this
can be seen as a placeholder).
See the following BIP change draft for more details and motivation:
https://github.com/theStack/bips/commit/961d1442139ceecd6c0cc5775ef911d69aabed4c
The discussion is on-going at the following issue:
https://github.com/bitcoin-core/secp256k1/issues/1799 [4]
If you have any concerns or feedback for this change, either for currently
existing wallets or potential future use-cases that you could think of,
please
comment there. Most SP wallet developers that we are aware of have already
been
pinged on the issue. We are posting this here to reach a wider audience and
to
provide an alternative opportunity to comment, in case anyone doesn't want
to
use GitHub.
Best,
Sebastian
[1] https://github.com/bitcoin-core/secp256k1/pull/1765
[2]
https://github.com/bitcoin/bips/blob/5d0f70a5cf4cfc429267cd6cc246ba3bcb949cb3/bip-0352.mediawiki?plain=1#L330
[3]
https://github.com/bitcoin-core/secp256k1/pull/1698#pullrequestreview-3341766084
[4]
https://github.com/bitcoin-core/secp256k1/issues/1799#issuecomment-3842046237
ff. in particular
--
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups•com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/b8edb433-c7b8-4d79-b710-e89a578eb42cn%40googlegroups.com.
[-- Attachment #1.2: Type: text/html, Size: 4884 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* [bitcoindev] Re: BIP-352: Limiting the number of per-group recipients (K_max)
2026-02-04 17:20 [bitcoindev] BIP-352: Limiting the number of per-group recipients (K_max) Sebastian Falbesoner
@ 2026-02-19 20:39 ` Sebastian Falbesoner
2026-03-04 9:45 ` Sebastian Falbesoner
0 siblings, 1 reply; 3+ messages in thread
From: Sebastian Falbesoner @ 2026-02-19 20:39 UTC (permalink / raw)
To: Bitcoin Development Mailing List
[-- Attachment #1.1: Type: text/plain, Size: 2767 bytes --]
Thanks for all the feedback left on the secp256k1 issue [1].
As no objections were raised to the proposed K_max protocol change, I've
opened a corresponding PR in the BIPs repository, where the discussion can
be continued:
https://github.com/bitcoin/bips/pull/2106
Best, Sebastian
[1] https://github.com/bitcoin-core/secp256k1/issues/1799#issuecomment-3842046237
ff.
On Wednesday, February 4, 2026 at 6:21:09 PM UTC+1 Sebastian Falbesoner
wrote:
> Hi list,
>
> In the course of working on a Silent Payments module for libsecp256k1 [1],
> we
> discovered that the scanning approach suggested in BIP-352 [2] suffers from
> very poor performance for adversarial transactions [3].
>
> One more recent proposal to mitigate this issue is by introducing a "K_max"
> protocol limit. This effectively limits the number of per-group recipients
> within a single transaction, i.e. the number of recipients sharing the same
> scan public key. In theory this is a backwards incompatible protocol
> change,
> in practice we believe that none of the existing SP wallets would be
> affected,
> for a reasonably high K_max (the example value used is K_max=1000, but this
> can be seen as a placeholder).
>
> See the following BIP change draft for more details and motivation:
>
> https://github.com/theStack/bips/commit/961d1442139ceecd6c0cc5775ef911d69aabed4c
>
> The discussion is on-going at the following issue:
> https://github.com/bitcoin-core/secp256k1/issues/1799 [4]
>
> If you have any concerns or feedback for this change, either for currently
> existing wallets or potential future use-cases that you could think of,
> please
> comment there. Most SP wallet developers that we are aware of have already
> been
> pinged on the issue. We are posting this here to reach a wider audience
> and to
> provide an alternative opportunity to comment, in case anyone doesn't want
> to
> use GitHub.
>
> Best,
> Sebastian
>
> [1] https://github.com/bitcoin-core/secp256k1/pull/1765
> [2]
> https://github.com/bitcoin/bips/blob/5d0f70a5cf4cfc429267cd6cc246ba3bcb949cb3/bip-0352.mediawiki?plain=1#L330
> [3]
> https://github.com/bitcoin-core/secp256k1/pull/1698#pullrequestreview-3341766084
> [4]
> https://github.com/bitcoin-core/secp256k1/issues/1799#issuecomment-3842046237
> ff. in particular
--
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups•com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/ea67d9d0-3e3e-4906-9c47-495f8011468en%40googlegroups.com.
[-- Attachment #1.2: Type: text/html, Size: 7634 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* [bitcoindev] Re: BIP-352: Limiting the number of per-group recipients (K_max)
2026-02-19 20:39 ` [bitcoindev] " Sebastian Falbesoner
@ 2026-03-04 9:45 ` Sebastian Falbesoner
0 siblings, 0 replies; 3+ messages in thread
From: Sebastian Falbesoner @ 2026-03-04 9:45 UTC (permalink / raw)
To: Bitcoin Development Mailing List
[-- Attachment #1.1: Type: text/plain, Size: 4466 bytes --]
Update: the proposed BIP-352 protocol change [1] was merged, setting K_max
= 2323.
This limit was chosen intentionally, as it represents the maximum number of
taproot
outputs that can fit within a <= 100 kvB transaction with the smallest
Silent Payments
eligible input (a taproot key-path spend) [2].
Consequently, any transaction that adheres to the current transaction size
policy rule [3] is guaranteed to also comply with the K_max protocol limit.
It
is therefore extremely unlikely that any wallet would ever encounter this
limit
in practice, as such a transaction would not propagate on the network.
Thanks to everyone involved in proposing, discussing and reviewing this
change.
The secp256k1 silentpayments module PR [4] will be updated and taken out of
draft state shortly.
Best,
Sebastian
[1] https://github.com/bitcoin/bips/pull/2106
[2] a 1-in-2323-out P2TR transaction has a vsize of 99959 vbytes, see e.g.
https://jlopp.github.io/bitcoin-transaction-size-calculator/ or
https://bitcoinops.org/en/tools/calc-size/ (note that the latter calculator
doesn't account the two extra bytes needed for the output-count compactSize
encoding); adding one more taproot output (taking 43) vbytes would result
in 100002 vbytes
[3] `MAX_STANDARD_TX_WEIGHT` in Bitcoin Core (expressed in WUs):
https://github.com/bitcoin/bitcoin/blob/2702711c3a54b2ba9ae3781b61c90d28ee951de6/src/policy/policy.cpp#L110-L114
[4] https://github.com/bitcoin-core/secp256k1/pull/1765
On Friday, February 20, 2026 at 12:36:08 AM UTC+1 Sebastian Falbesoner
wrote:
> Thanks for all the feedback left on the secp256k1 issue [1].
>
> As no objections were raised to the proposed K_max protocol change, I've
> opened a corresponding PR in the BIPs repository, where the discussion can
> be continued:
> https://github.com/bitcoin/bips/pull/2106
>
> Best, Sebastian
>
> [1]
> https://github.com/bitcoin-core/secp256k1/issues/1799#issuecomment-3842046237
> ff.
> On Wednesday, February 4, 2026 at 6:21:09 PM UTC+1 Sebastian Falbesoner
> wrote:
>
>> Hi list,
>>
>> In the course of working on a Silent Payments module for libsecp256k1
>> [1], we
>> discovered that the scanning approach suggested in BIP-352 [2] suffers
>> from
>> very poor performance for adversarial transactions [3].
>>
>> One more recent proposal to mitigate this issue is by introducing a
>> "K_max"
>> protocol limit. This effectively limits the number of per-group recipients
>> within a single transaction, i.e. the number of recipients sharing the
>> same
>> scan public key. In theory this is a backwards incompatible protocol
>> change,
>> in practice we believe that none of the existing SP wallets would be
>> affected,
>> for a reasonably high K_max (the example value used is K_max=1000, but
>> this
>> can be seen as a placeholder).
>>
>> See the following BIP change draft for more details and motivation:
>>
>> https://github.com/theStack/bips/commit/961d1442139ceecd6c0cc5775ef911d69aabed4c
>>
>> The discussion is on-going at the following issue:
>> https://github.com/bitcoin-core/secp256k1/issues/1799 [4]
>>
>> If you have any concerns or feedback for this change, either for currently
>> existing wallets or potential future use-cases that you could think of,
>> please
>> comment there. Most SP wallet developers that we are aware of have
>> already been
>> pinged on the issue. We are posting this here to reach a wider audience
>> and to
>> provide an alternative opportunity to comment, in case anyone doesn't
>> want to
>> use GitHub.
>>
>> Best,
>> Sebastian
>>
>> [1] https://github.com/bitcoin-core/secp256k1/pull/1765
>> [2]
>> https://github.com/bitcoin/bips/blob/5d0f70a5cf4cfc429267cd6cc246ba3bcb949cb3/bip-0352.mediawiki?plain=1#L330
>> [3]
>> https://github.com/bitcoin-core/secp256k1/pull/1698#pullrequestreview-3341766084
>> [4]
>> https://github.com/bitcoin-core/secp256k1/issues/1799#issuecomment-3842046237
>> ff. in particular
>
>
--
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups•com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/4bd9b8e5-1233-4959-b34f-281b5e91dcc1n%40googlegroups.com.
[-- Attachment #1.2: Type: text/html, Size: 10124 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-03-04 10:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-04 17:20 [bitcoindev] BIP-352: Limiting the number of per-group recipients (K_max) Sebastian Falbesoner
2026-02-19 20:39 ` [bitcoindev] " Sebastian Falbesoner
2026-03-04 9:45 ` Sebastian Falbesoner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox