Transaction Model
UTXO Model
Kaspa uses a UTXO (Unspent Transaction Output) model, the same fundamental approach used by Bitcoin. Each transaction consumes existing unspent outputs and creates new ones. This model provides strong privacy properties, natural parallelism, and straightforward verification.
Cryptographic Primitives
Schnorr Signatures
Kaspa uses Schnorr signatures for transaction authorization. Schnorr signatures offer several advantages over the ECDSA signatures used in legacy Bitcoin:
- Linearity — enables efficient multi-signature schemes and signature aggregation
- Provable security — Schnorr has a formal security proof, unlike ECDSA
- Smaller signatures — more compact than ECDSA for equivalent security
Blake2B Hashing
Instead of SHA-256, Kaspa uses Blake2B as its hash function for transaction and block hashing. Blake2B is faster than SHA-256 while providing equivalent security, making it well-suited for a high-throughput network.
Script Versioning
Kaspa’s transaction scripts include version fields, which allow the protocol to introduce new scripting capabilities through soft forks without breaking existing scripts. This forward-looking design makes it straightforward to add new opcodes and functionality over time — as demonstrated by the new opcodes introduced in the Crescendo hardfork (KIP-10).
Pruning and SPV
Because Kaspa produces blocks at a very high rate, storage management is important. The network handles this through pruning:
- Block bodies older than ~30 hours are pruned from full nodes
- The full UTXO set and block headers are always retained
- Light clients can verify the chain using FlyClient SPV (Simplified Payment Verification) proofs
This means nodes do not need to store the entire transaction history to participate in the network, keeping storage requirements manageable even at 10 blocks per second.