Merkleize All The Things



Summary:

In a discussion about the use of taproot internal pubkey with "dynamic key aggregation," Johan proposed a method for efficient use in coin pools by removing data from the merkle tree and storing the pubkeys of members in the embedded data. Removing a member's key would require replacing it with a fixed NUMS key and computing the new root, re-using the same Merkle proof. Salvatore Ingala suggested making OP_CICV and OP_COCV symmetrical and exploring a single OP_CHECK_IN_OUT_CONTRACT_VERIFY opcode for greater flexibility. He also noted that there may be reasonable CoinPools designs without additional opcodes. Johan agreed that removal of a public key from the taproot internal key is out of scope for this proposal but suggested using an old-style multisig check in case someone exits the pool.


Updated on: 2023-06-16T03:06:24.403619+00:00