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.