<p>If you cannot change the keys, then you can only change what they are tweaked with, i.e. the script path. Because the script path is a merkle tree, you could just add another script that contains just an unspendable script with a counter and increment it each time (the script needs to be unspendable as otherwise if anyone were to guess that path, they could potentially use it to steal your coins). That would be sufficient to change the merkle root so that the tweak is different.</p>

CC BY-SA 4.0
2022-03-25T13:08:35.890Z
Thank you very much! Next to the backup key I could add a leaf which contains a hardcoded public-key-like value. I would just perform basic addition with a counter to this "key". So this leaf/script should be unspendable, right? Or is there a better approach?
ByteFlowr
CC BY-SA 4.0
2022-03-25T15:14:04.370Z
Yes, I think that is an appropriate approach.
Ava Chow
CC BY-SA 4.0
2022-03-27T13:11:09.610Z
@ByteFlowr: Using the tweaked public keys in the keypath spends would not be relatable due to the differing tweaks. However, if you ever need to spend multiple UTXOs per the backup key, you would reveal that those UTXOs share the same internal public key and use the same backup key in the scriptpath.
Murch
CC BY-SA 4.0
2022-03-25T01:42:31.970Z
2022-03-25T01:42:31.970Z
Ava Chow
<p>I have a keypath (which is a 2-of-2 multisig) and a tweak attached to it, this tweak is responsible for the scriptpath.</p>
<p>The scriptpath only has a backup public key (used rarely).</p>
<p>Alice + Bob's public keys form the multisig, which is then tweaked. After the tweak I derive a bech32 address.</p>
<p>How can I construct hundreds of different bech32 addresses without having to change any underlying keys?</p>
<p>I want to be able to spend UTXOs across addresses in a single transaction involving just Alice and Bob's single key (basically everything like derivation paths before Taproot).</p>

<multi-signature><taproot><bech32-address><address-reuse>
Taproot: Multisig Keypath - different bech32 addresses for same keys
ByteFlowr
# Taproot: Multisig Keypath - different bech32 addresses for same keys

(Asked by: username_0 on 2022-03-24)

I have a keypath (which is a 2-of-2 multisig) and a tweak attached to it, this tweak is responsible for the scriptpath.

The scriptpath only has a backup public key (used rarely).

Alice + Bob's public keys form the multisig, which is then tweaked. After the tweak I derive a bech32 address.

How can I construct hundreds of different bech32 addresses without having to change any underlying keys?

I want to be able to spend UTXOs across addresses in a single transaction involving just Alice and Bob's single key (basically everything like derivation paths before Taproot).

**Tags:** multi-signature, taproot, bech32-address, address-reuse


---

## 1 answers

### Answer by username_1 on 2022-03-25. Score: 2

If you cannot change the keys, then you can only change what they are tweaked with, i.e. the script path. Because the script path is a merkle tree, you could just add another script that contains just an unspendable script with a counter and increment it each time (the script needs to be unspendable as otherwise if anyone were to guess that path, they could potentially use it to steal your coins). That would be sufficient to change the merkle root so that the tweak is different.

> **Comments:**
> **username_0**: Thank you very much! Next to the backup key I could add a leaf which contains a hardcoded public-key-like value. I would just perform basic addition with a counter to this "key". So this leaf/script should be unspendable, right? Or is there a better approach?  
> **username_1**: Yes, I think that is an appropriate approach.  
> **username_2**: @username_0: Using the tweaked public keys in the keypath spends would not be relatable due to the differing tweaks. However, if you ever need to spend multiple UTXOs per the backup key, you would reveal that those UTXOs share the same internal public key and use the same backup key in the scriptpath.  

---

