Good evening ZmnSCPxj,
>I suppose that means that the knower of `k` is a trusted party; it is trusted to only issue commitments and not generate fake ones
Then you can reduce the scheme to just committing to K and having that key sign whatever the burn was intended for. I doubt this is useful in practice.
>can you please explain
The goal is to burn multiple amounts (10, 20, 30, 40) in a single OP_RETURN (100) and specifically indicating how much of the total is intended for what use case. A merkle sum tree achieves this.
(1a) 100 (1b) ABCD (2a) 100 (2b) ABCD
/ \ / \ / \ / \
30 70 AB CD 30 70 AB CD
/ \ / \ / \ / \ / \ / \
10 20 30 40 A B C D 10 20 A B
(view as monospace font, e.g. via bitcoin-dev archive)
So while in a normal merkle tree (1a) you hash e.g. A and B to get AB, with a sum tree (1b) you also hash 10 and 20 to get 30.
When you verify the full merkle sum proof (2a + 2b, combined in a single tree), you verify that 10 (A) + 20 (B) add up to 30 (AB), and 30 (AB) + 70 (CD) add up to 100 (ABCD), else the root hash won't match.
This ensures that you can't create a valid tree with commitments that add up to more than the burned amount (essentially a "double spend").
>the buyer has every incentive to actually pay
Not if you never had any intention of buying it and are just trying to run them out of business.
Hope this helps!
Cheers,
Ruben