Skip to content

Commit 176bcf1

Browse files
committed
Quartz sync: Sep 2, 2024, 9:20 PM
1 parent 3d2b66c commit 176bcf1

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

content/PurrSettle.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,5 @@ By now, you may have realised that you simply cannot use the same UTXO twice wit
5353

5454
One idea is to use [BIP32 HD paths](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) to create nonces instead of private key. For reference, the old key derivation path was as follows: `m'/xx'/coin_type'/account'/key_chain/index`. The new paths would look like: `m'/xx'/coin_type'/account'/key_or_nonce/key_chain/index` where another node is inserted after the account to indicate whether you're deriving a private key or a nonce. While it is not backwards-compatible with the previous key generation scheme, it allows us to easily keep track of nonces while also inflicting possibly greater penalty on double spending. If the private key (xpriv) is ever revealed during this scheme, and if the xpub of `m/xx'/coin'/account'` is known, then all nonces and all private keys that have been used so far can be [derived and sweeped](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#implications).
5555

56-
## Conclusion
56+
## Closing thoughts
5757
PurrSettle is not without its challenges. The requirement to manage nonces carefully and the risks associated with incorrect usage—such as inadvertently revealing private keys—mean that users must exercise caution when implementing PurrSettle. Additionally, the reliance on a disabled opcode like OP_CAT means that this technique is currently limited to experimental environments like [StarkWare's public signet](https://catnet-mempool.btcwild.life/). While PurrSettle may not yet be ready for mainstream adoption, it opens the door to new possibilities in Bitcoin's scripting capabilities.

0 commit comments

Comments
 (0)