How does Kaspa's covenant proposal prevent forged covenant coins?

Kaspa's covenant proposal makes forged covenant-labeled coins uncreatable, not merely unspendable. The covenant script itself is required to check that both the destination address and the covenant binding on any output match the covenant's expected rules. This creates an inductive guarantee: to forge a covenant UTXO, an attacker would need a forged covenant UTXO already in an input — which pushes the problem back infinitely. In the genesis (creation) case, the covenant_id is a cryptographic hash that locks in a specific input outpoint, and since outpoints never repeat across the blockchain, the id cannot be freely chosen. This matters for beginners because it is a stronger security property than earlier designs, which could only block spending of fake covenant coins rather than blocking their creation entirely.

Learn more ›