From: "'conduition' via Bitcoin Development Mailing List" <bitcoindev@googlegroups.com>
To: Bitcoin Development Mailing List <bitcoindev@googlegroups.com>
Subject: [bitcoindev] Re: Aligning privacy incentives in P2MR
Date: Sat, 13 Jun 2026 08:33:29 -0700 (PDT) [thread overview]
Message-ID: <5cab6e7c-bd9f-4098-a1b5-e6218f1f1cc7n@googlegroups.com> (raw)
In-Reply-To: <Q8YTY1ArMzia7tRvcZ5v769WPxCMxAl_0rUy-byOBjBcTd4HXj7IB7Yt4gxLbKqk7EXFWy-PuGB6QtI28qRjE5Vob-l44UmBH6L8aXInoSk=@proton.me>
[-- Attachment #1.1: Type: text/plain, Size: 5292 bytes --]
I have just submitted a PR into BIP360 which implements the suggestion
described in OP <https://github.com/bitcoin/bips/pull/2198>.
regards,
conduition
On Wednesday, June 3, 2026 at 7:26:39 PM UTC-4 conduition wrote:
> Hi list. I'm following up on an idea I sketched in this thread debating
> P2MR vs P2TRv2 <https://groups.google.com/g/bitcoindev/c/Qy4gwAGTK2w>.
>
> The premise is this: What if we modified this line of BIP360:
>
> The last stack element is called the control block c, and must have length
> 1 + 32 * m, for a value of m that is an integer between 0 and 128,
> inclusive. Fail if it does not have such a length.
>
>
> To this:
>
> The last stack element is called the control block c, and must have length
> 1 + 32 * m, for a value of m that is an integer between *1* and 128,
> inclusive. Fail if it does not have such a length.
>
>
> The key change is that the control block must now include at least one
> merkle authentication path. This effectively bans depth-zero script trees
> in P2MR, and requires every P2MR address to always pay the cost of having
> at least two spending conditions.
>
> This seems like a reduction in P2MR's features and efficiency. Why would
> we want to ban depth-zero script trees? Well these seem to be the source
> of a perverse incentive, as pointed out by Matt Corallo and Antoine Poinsot
> in prior threads <https://groups.google.com/g/bitcoindev/c/JA3kDl8AmQg>.
> Bitcoin script users are economically and practically incentivized by P2MR
> to use depth-zero script trees because their witnesses are *smaller* than
> if the same script were used in a taproot script spend.
>
> Furthermore, depending on the exact scripts and the developers' resources,
> devs using P2MR for a multi-party scripting protocol may not be
> sufficiently incentivized to add a cooperative spending path, even if their
> protocol might allow it. Doing so would require a depth-1 tree, which
> increases the witness size of the non-cooperative script spend path by 32
> bytes. For some short scripts, e.g <height> CLTV <pubkey> CHECKSIG, the
> devs may actually have incentive *not* to add a cooperative spending
> path, because the cooperative path would actually be *less-efficient*
> than just using the non-cooperative path as the single leaf of a depth-zero
> tree. This leads to easy fingerprinting of scripting protocols, less
> privacy for everyone else, and undoes a key design goal of P2TR.
>
> In Matt's words
> <https://groups.google.com/g/bitcoindev/c/JA3kDl8AmQg/m/EWS5ZxqZAAAJ>:
>
> The value of taproot is that its design natively adds [a cooperative
> spending path] *for free* to every contracting protocol, and not only adds
> it for free but *forces* every contracting protocol to carry at least some
> of the cost if they decline to do this. This results in a massive net
> privacy win across the entire Bitcoin ecosystem...
>
>
> a goal of taproot is *privacy* while offering efficiency for the common
> (all-sign) case. That is generally true across contracting protocols and
> makes things net-cheaper with a taproot-style system where you hit the
> common case often. This is another reason why P2MR is quite a loss
>
>
> By eliminating depth-zero script trees, we'd force all P2MR users to pay
> for the cost of having *at least* two spending conditions. We'd eliminate
> the incentive for script devs to use P2MR over P2TR because both are
> equally efficient, and incentivize P2MR users to add a cooperative spending
> path using BIP340, since those users are already paying for the cost of
> having a depth-1 tree anyway.
>
> This change to BIP360 wouldn't affect the recommended standard use-cases
> for single-signer and multisig P2MR: hybrid addresses with one Schnorr leaf
> and one PQ leaf. If anything, this change would encourage the proper use of
> PQ fallback scripts, because the incentive logic can be applied to someone
> who tries to use P2MR with only a single EC Schnorr leaf: This user must
> pay for the cost of a second leaf script anyway, so why not follow
> best-practices and add a PQ leaf?
>
> AFAICT this change only affects use cases which would otherwise degrade
> the fungibility of the UTXO set according to BIP360 critics, and encourages
> those use-cases to adopt a cooperative spending path which (assuming all
> other factors equal) will be indistinguishable from a regular single-signer
> P2MR wallet with a PQ fallback leaf.
>
> I've already chatted about this off-list with some BIP360 proponents and
> they seem receptive, but I'm really curious about the opinions of those who
> are leaning towards P2TRv2. Would this change to BIP360 address your
> concerns surrounding P2MR's privacy incentives? If not, why?
>
> regards,
> conduition
>
>
>
>
--
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/5cab6e7c-bd9f-4098-a1b5-e6218f1f1cc7n%40googlegroups.com.
[-- Attachment #1.2: Type: text/html, Size: 8473 bytes --]
prev parent reply other threads:[~2026-06-13 15:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-03 23:12 [bitcoindev] Aligning privacy incentives in P2MR 'conduition' via Bitcoin Development Mailing List
2026-06-05 19:56 ` 'Antoine Poinsot' via Bitcoin Development Mailing List
2026-06-05 22:52 ` 'conduition' via Bitcoin Development Mailing List
2026-06-06 4:29 ` Pieter Wuille
2026-06-06 19:33 ` 'conduition' via Bitcoin Development Mailing List
2026-06-10 3:00 ` Pieter Wuille
2026-06-12 4:43 ` 'conduition' via Bitcoin Development Mailing List
2026-06-06 22:12 ` Boris Nagaev
2026-06-06 17:52 ` 'Hayashi' via Bitcoin Development Mailing List
2026-06-13 15:33 ` 'conduition' via Bitcoin Development Mailing List [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5cab6e7c-bd9f-4098-a1b5-e6218f1f1cc7n@googlegroups.com \
--to=bitcoindev@googlegroups.com \
--cc=conduition@proton.me \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox