# Primitives

- [Hash Functions](/battlezips/theory/primitives/hash-functions.md): A background and overview and background on various hash functions related to and imperative to zero knowledge cryptography
- [Public Key Cryptosystems](/battlezips/theory/primitives/public-key-cryptosystems.md)
- [Note on L1 key registry → L2 hot key + callback to circuit-optimized hash functions](/battlezips/theory/primitives/public-key-cryptosystems/note-on-l1-key-registry-l2-hot-key-+-callback-to-circuit-optimized-hash-functions.md)
- [ECDSA & secp256k1](/battlezips/theory/primitives/public-key-cryptosystems/ecdsa-and-secp256k1.md)
- [EdDSA](/battlezips/theory/primitives/public-key-cryptosystems/eddsa.md): Overview of Edwards Curve Digital Signature Algorithm and related curves
- [Merkle Trees](/battlezips/theory/primitives/merkle-trees.md)
- [What is a Merkle Tree?](/battlezips/theory/primitives/merkle-trees/what-is-a-merkle-tree.md): Background on Merkle Tree data structures and their importance for proving data integrity
- [What is a merkle proof of inclusion?](/battlezips/theory/primitives/merkle-trees/what-is-a-merkle-proof-of-inclusion.md)
- [zk-kit](/battlezips/theory/primitives/merkle-trees/zk-kit.md): ZK Kit is monorepo on github that provides resources helpful for writing zero knowledge proofs
- [Incremental Merkle Trees](/battlezips/theory/primitives/merkle-trees/incremental-merkle-trees.md)
- [Sparse Merkle Trees](/battlezips/theory/primitives/merkle-trees/sparse-merkle-trees.md)
- [Tree Arity (Binary, Quinary)](/battlezips/theory/primitives/merkle-trees/tree-arity-binary-quinary.md): Overview of tree arity and why it matters in the context of a Merkle Tree
- [Semaphore](/battlezips/theory/primitives/semaphore.md)
- [Arithmetic Circuits](/battlezips/theory/primitives/arithmetic-circuits.md): Brief description of arithmetic circuits and their role in SNARK creation
