How does Kaspa prove a transaction was validated when conflicting transactions exist in the blockDAG?

Kaspa proves a transaction was validated by combining two proofs: a Merkle proof showing the transaction appears inside a specific block, and a Proof of Chain Membership (PoChM) showing that block is part of the selected chain. Because Kaspa is a blockDAG, conflicting transactions — for example, two attempts to spend the same coins — can appear in different blocks at the same time without either being immediately discarded. The GHOSTDAG validation rules resolve this: if your transaction's block is on the selected chain, any conflicting transaction must have appeared in the "anticone" of that block and was ordered after your transaction in the GHOSTDAG ordering, making it invalid. For a beginner, this matters because it means Kaspa's high-speed block production does not come at the cost of double-spend protection — the ordering rules ensure your confirmed transaction stays confirmed.

Learn more ›