salvatoshi's avatar
salvatoshi
npub157y6...60gr
#bitcoin
salvatoshi's avatar
salvatoshi 1 year ago
OP_CHECKCONTRACTVERIFY is BIP-443. When I presented MATT at the first @btcazores in September 2022, it was just a concept: a minimal covenant with maximal power. While the covenant was straightforward, what a good implementation would look like was far from clear. Then came James O'Beirne's OP_VAULT proposal - a narrower, practical use case for a covenant. And yet, it resonated: the underlying need was the same as in MATT. Both required a way for coins to carry state (data) from input to output. If two very different problems point to the same technical tool, maybe that tool is a solid foundation. CCV implements that foundation. CCV is not made for vaults, but it enables them (alone, or supercharged with CHECKTEMPLATEVERIFY). CCV is not "MATT's opcode", but it's the main building block. CCV is also what bridges like BitVMs are simulating with workarounds like Lamport Signatures: updating the state. It makes large part of their on-chain footprint redundant, and greatly simplifies their design. There's no more for cabooses, CatVMs, ColliderVMs. Script will finally have an expressive primitive for carrying state in UTXOs. --- There is still a lot of work to do. The implementation needs to be reviewed and improved, ideally to be made ready for signet. More tooling needs to be developed. More work is necessary to assess what combinations of opcodes work best for a soft-fork. CCV has no sponsors and no funding. Can you help? Find me at @The Bitcoin Conference in Vegas and let's keep the ball rolling.
salvatoshi's avatar
salvatoshi 1 year ago
Security/privacy ⇒ Entropy Entropy ⇒ Information content
salvatoshi's avatar
salvatoshi 1 year ago
If you use any wallet that is not single-signature (multisig, miniscript, etc.), it is important to have a backup of the descriptor/wallet policy. But we have no standard on how to do it. How should we do it? Here's my attempt at an ideal approach: The approach I propose tries to achieve a number of desirable properties: - Encrypted: so you can outsource its storage; - Easy to implement: really, it's very simple; - Vendor-independent: it should work with any signing device; - Deterministic: the backup should be repeatable. In the post, I try to give motivation on the approach, and come with a scheme that tries to be pragmatic, and easy to adopt. Of course, variations, more features, etc. are possible, but I believe this scheme is good for the use cases of the typical user. And certainly, good enough is better than the status quo where most wallets just tell the user "you should have a backup" 🙃 What do you think?
salvatoshi's avatar
salvatoshi 1 year ago
Not sure why people think Merkle trees are hard. image
salvatoshi's avatar
salvatoshi 1 year ago
"Don't be evil", as Google taught us, is not a viable long-term strategy for businesses working with content. "Can't be evil" is the way.
salvatoshi's avatar
salvatoshi 1 year ago
Thanks to bitcoin-core developers for merging the next soft-fork! image Merkle trees can't be stopped.
salvatoshi's avatar
salvatoshi 1 year ago
Writing apps for hardware signing devices is about to get this easy ``` #![cfg_attr(target_arch = "riscv32", no_std, no_main)] extern crate alloc; use alloc::vec::Vec; sdk::bootstrap!(); fn process_message(_app: &mut sdk::App, msg: &[u8]) -> Vec<u8> { msg.to_vec() } pub fn main() { sdk::App::new(process_message).run(); } ```
salvatoshi's avatar
salvatoshi 1 year ago
Release 2.4.0 of the Ledger Bitcoin app is out. Codename: "Let the Musig play" It comes with full MuSig2 support for taproot spending policies (both in the keypath and in scripts). Note: at this time, only the python client library is updated with MuSig2 support.
salvatoshi's avatar
salvatoshi 1 year ago
Some updates on OP_CHECKCONTRACTVERIFY: - BIP draft: - bitcoin-core concept implementation: - Delving post: In the new post on delving, I delve into the amount logic of CCV, something that has somewhat evolved since the initial posts. I argue that while scriptPubKey checks are just equality checks this transaction-wide logic is preferable, and it's difficult to replicate it otherwise. However, while the amount logic is not difficult, transaction-wide checks present some implementation challenges, because of multi-threaded Script validation in core. Solving this seems to be necessary for several possible soft forks (CCV, VAULT, TXHASH, CISA), but even just to implement batch validation for Schnorr signatures, which is an optimization available today. More details in the PR. As usual, you'll find all the links at I look forward to your comment and ideas.