ColliderScript: Covenants in Bitcoin via 160-bit hash collisions

Posted by Ethan Heilman

Nov 27, 2024/22:37 UTC

The discussion centers on the cryptographic principle of proving the equivalence of two variables, y1 and y2, in a scripting context without making any assumptions outside of cryptographic soundness. Specifically, it illustrates the use of the OP_DUP operation to demonstrate that both Small Script and Big Script perceive the same (w,t) values with absolute certainty. Here, "w" is identified as a 33-bit stack element, exemplified by the number 23412, whereas "t" refers to a bit vector composed of multiple stack elements, illustrated by a bit string sequence. These elements are introduced as witness stack components by the spending transaction, with Figure 1 highlighting elements pushed onto the stack from the spending transaction in purple.

Furthermore, the conversation shifts to exploring transactional integrity through an example involving two transactions, Txn1 and Txn2, which differ only in their locking scripts. Despite this singular variation—Txn1 uses a specific PUSH command followed by DROP, as does Txn2 albeit with a different value—the hashes of these transactions will be unique, yet they remain semantically equivalent. This aspect raises questions about the goal of a hypothetical attack scenario where one party, Alice, locks coins under a covenant executing a certain action (X), and another party, Eve, aims to accomplish a different objective (Y). Such a scenario underscores the complexity and nuances involved in Bitcoin development and cryptographic security discussions, emphasizing the importance of understanding script operations and transaction semantics within the ecosystem.

Link to Raw Post
Bitcoin Logo

TLDR

Join Our Newsletter

We’ll email you summaries of the latest discussions from authoritative bitcoin sources, like bitcoin-dev, lightning-dev, and Delving Bitcoin.

Explore all Products

ChatBTC imageBitcoin searchBitcoin TranscriptsSaving SatoshiBitcoin Transcripts Review
Built with 🧡 by the Bitcoin Dev Project
View our public visitor count

We'd love to hear your feedback on this project?

Give Feedback