# BattleZips

## BattleZips

- [Awesome Circom](https://battlezips.gitbook.io/battlezips/awesome-circom.md): A Circom starter guide by BattleZips
- [Prerequisite Knowledge](https://battlezips.gitbook.io/battlezips/theory/prerequisite-knowledge.md): What do I need to know before I can work with Zero Knowledge?
- [Resources](https://battlezips.gitbook.io/battlezips/theory/resources.md): Aggregation of useful resources related to wider ZKP industry
- [White Papers & PDF's](https://battlezips.gitbook.io/battlezips/theory/resources/white-papers-and-pdfs.md): Official academic productions debuting, formalizing, or otherwise analyzing aspects of the ZK Space
- [Blogs and Writeups](https://battlezips.gitbook.io/battlezips/theory/resources/blogs-and-writeups.md): Content that is easier to digest than original, academic pieces
- [Videos](https://battlezips.gitbook.io/battlezips/theory/resources/videos.md): Recorded content on Zero Knowledge Proofs
- [Important Entities](https://battlezips.gitbook.io/battlezips/theory/resources/important-entities.md): List of notable individuals and institutions that power the ZKP industry
- [Communities](https://battlezips.gitbook.io/battlezips/theory/resources/communities.md): Communities that facilitate exploration of the wider ZKP industry
- [Proving Schemes](https://battlezips.gitbook.io/battlezips/theory/proving-schemes.md)
- [Primitives](https://battlezips.gitbook.io/battlezips/theory/primitives.md)
- [Hash Functions](https://battlezips.gitbook.io/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](https://battlezips.gitbook.io/battlezips/theory/primitives/public-key-cryptosystems.md)
- [Note on L1 key registry → L2 hot key + callback to circuit-optimized hash functions](https://battlezips.gitbook.io/battlezips/theory/primitives/public-key-cryptosystems/note-on-l1-key-registry-l2-hot-key-+-callback-to-circuit-optimized-hash-functions.md)
- [ECDSA & secp256k1](https://battlezips.gitbook.io/battlezips/theory/primitives/public-key-cryptosystems/ecdsa-and-secp256k1.md)
- [EdDSA](https://battlezips.gitbook.io/battlezips/theory/primitives/public-key-cryptosystems/eddsa.md): Overview of Edwards Curve Digital Signature Algorithm and related curves
- [Merkle Trees](https://battlezips.gitbook.io/battlezips/theory/primitives/merkle-trees.md)
- [What is a Merkle Tree?](https://battlezips.gitbook.io/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?](https://battlezips.gitbook.io/battlezips/theory/primitives/merkle-trees/what-is-a-merkle-proof-of-inclusion.md)
- [zk-kit](https://battlezips.gitbook.io/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](https://battlezips.gitbook.io/battlezips/theory/primitives/merkle-trees/incremental-merkle-trees.md)
- [Sparse Merkle Trees](https://battlezips.gitbook.io/battlezips/theory/primitives/merkle-trees/sparse-merkle-trees.md)
- [Tree Arity (Binary, Quinary)](https://battlezips.gitbook.io/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](https://battlezips.gitbook.io/battlezips/theory/primitives/semaphore.md)
- [Arithmetic Circuits](https://battlezips.gitbook.io/battlezips/theory/primitives/arithmetic-circuits.md): Brief description of arithmetic circuits and their role in SNARK creation
- [Circom Language](https://battlezips.gitbook.io/battlezips/development/circom-language.md)
- [Installation](https://battlezips.gitbook.io/battlezips/development/circom-language/installation.md): How do I put Circom on my computer?
- [IDE](https://battlezips.gitbook.io/battlezips/development/circom-language/ide.md): How do I augment my development experience?
- [Signals and Variables](https://battlezips.gitbook.io/battlezips/development/circom-language/signals-and-variables.md): Data vessels in Circom
- [Signal Assignment and Constraint Generation](https://battlezips.gitbook.io/battlezips/development/circom-language/signal-assignment-and-constraint-generation.md): Restricting circuits to achieve verifiable private computation
- [Conditional Statements](https://battlezips.gitbook.io/battlezips/development/circom-language/conditional-statements.md): The misleading inclusion of the "if" statement in Circom, and the use of multiplexers to actually compute branching logi
- [Components and Templates](https://battlezips.gitbook.io/battlezips/development/circom-language/components-and-templates.md): C++ has Classes. Solidity has Contracts. Circom has Components.
- [Circuit Compilation](https://battlezips.gitbook.io/battlezips/development/circom-language/circuit-compilation.md)
- [Syntax](https://battlezips.gitbook.io/battlezips/development/circom-language/syntax.md): Relevant syntactical rules and conventions
- [SnarkJS](https://battlezips.gitbook.io/battlezips/development/snarkjs.md): Library that drives all things Circom
- [Proving Schemes](https://battlezips.gitbook.io/battlezips/development/snarkjs/proving-schemes.md): That's a lovely choice of car. Would you like to drive it "manual", or "automatic"?
- [Powers of Tau](https://battlezips.gitbook.io/battlezips/development/snarkjs/powers-of-tau.md): How do I perform the Powers of Tau ceremony?
- [ZK Keys](https://battlezips.gitbook.io/battlezips/development/snarkjs/zk-keys.md): ZK Keys - shorthand for the Proving and Verifying keys - found in xxx.zkey files
- [Zero Knowledge Proofs](https://battlezips.gitbook.io/battlezips/development/snarkjs/zero-knowledge-proofs.md)
- [On-Chain ZKP](https://battlezips.gitbook.io/battlezips/development/snarkjs/on-chain-zkp.md)
- [Page 2](https://battlezips.gitbook.io/battlezips/development/snarkjs/page-2.md)
- [circomlib](https://battlezips.gitbook.io/battlezips/development/circomlib.md): Prefab library of commonly needed circuits - circomlib is for Circom what @openzeppelin/contracts is for solidity
- [Basic Math Constraints](https://battlezips.gitbook.io/battlezips/development/circomlib/basic-math-constraints.md): Constraining validity of basic logical and arithmetic computations made in zero knowledge
- [Multiplexing](https://battlezips.gitbook.io/battlezips/development/circomlib/multiplexing.md): MANDATORY use of the first party conditional signal selector. Do not skip!
- [Hashing](https://battlezips.gitbook.io/battlezips/development/circomlib/hashing.md): Using 1st party implementations of circuit friendly (and unfriendly) hash functions in Circom circuits
- [EdDSA](https://battlezips.gitbook.io/battlezips/development/circomlib/eddsa.md)
- [circomlibjs](https://battlezips.gitbook.io/battlezips/development/circomlib/circomlibjs.md)
- [circom-tester](https://battlezips.gitbook.io/battlezips/development/circom-tester.md): Unit test the execution of circuit logic without running the overhead of a zkSNARK
- [hardhat-circom](https://battlezips.gitbook.io/battlezips/development/hardhat-circom.md): Overview of the hardhat-circom npm package
- [SHIELD](https://battlezips.gitbook.io/battlezips/development/shield.md): SHIELD; A Swiss Army Knife for ZKPs Development
- [Circomspect](https://battlezips.gitbook.io/battlezips/development/circomspect.md): Static analyzer for Circom syntax and safety
- [Circom vs Other Solutions](https://battlezips.gitbook.io/battlezips/ecosystem/circom-vs-other-solutions.md): Why is Circom a dependable solution?
- [Domain-Specific Languages](https://battlezips.gitbook.io/battlezips/ecosystem/circom-vs-other-solutions/domain-specific-languages.md)
- [ZK Virtual Machines](https://battlezips.gitbook.io/battlezips/ecosystem/circom-vs-other-solutions/zk-virtual-machines.md)
- [ZK Ethereum Virtual Machines](https://battlezips.gitbook.io/battlezips/ecosystem/circom-vs-other-solutions/zk-ethereum-virtual-machines.md)
- [Communities to Join](https://battlezips.gitbook.io/battlezips/ecosystem/communities-to-join.md): Specific to Circom - What communities will advance my capabilities & understanding of the Circom DSL?
- [Recorded Content](https://battlezips.gitbook.io/battlezips/ecosystem/recorded-content.md): Library of recorded Circom-specific content
- [Projects](https://battlezips.gitbook.io/battlezips/ecosystem/projects.md): Links to Circom projects you can begin working from in your quest to apply ZK (click the Project's title for source code)
- [Examples](https://battlezips.gitbook.io/battlezips/examples.md)
- [BattleZips V1](https://battlezips.gitbook.io/battlezips/examples/battlezips-v1.md)
- [On the BattleZips Project](https://battlezips.gitbook.io/battlezips/examples/battlezips-v1/on-the-battlezips-project.md): I'm sorry do you know a brother at the house? Otherwise I can't let you in...
- [Docs holder](https://battlezips.gitbook.io/battlezips/examples/battlezips-v1/docs-holder.md): gonna weave these in later
- [Join Game UML Sequence Diagram](https://battlezips.gitbook.io/battlezips/examples/battlezips-v1/docs-holder/join-game-uml-sequence-diagram.md)
- [Play Game UML Sequence Diagram](https://battlezips.gitbook.io/battlezips/examples/battlezips-v1/docs-holder/play-game-uml-sequence-diagram.md)
- [End Game UML Sequence Diagram](https://battlezips.gitbook.io/battlezips/examples/battlezips-v1/docs-holder/end-game-uml-sequence-diagram.md)
- [ZK Privacy Stack](https://battlezips.gitbook.io/battlezips/examples/battlezips-v1/zk-privacy-stack.md)
- [Deploying Artifacts to Prod](https://battlezips.gitbook.io/battlezips/examples/battlezips-v1/deploying-artifacts-to-prod.md)
- [Browser Client](https://battlezips.gitbook.io/battlezips/examples/battlezips-v1/browser-client.md)
- [RollupNC](https://battlezips.gitbook.io/battlezips/examples/rollupnc.md): The Zero Knowledge Rollup (P.S. its not even zero knowledge you're just using some ZK proofs inside of a proof carrying rollup or validium)
- [Smart Contracts](https://battlezips.gitbook.io/battlezips/examples/rollupnc/smart-contracts.md)
- [Account/ State Tree](https://battlezips.gitbook.io/battlezips/examples/rollupnc/account-state-tree.md): The main data silo of RollupNC. Roughly analogous to the blockchain network in L1
- [Transaction Tree](https://battlezips.gitbook.io/battlezips/examples/rollupnc/transaction-tree.md): Atomic batched state updates. Roughly analogous to the blocks committed to a blockchain
- [Layer 1 Deposits to Layer 2](https://battlezips.gitbook.io/battlezips/examples/rollupnc/layer-1-deposits-to-layer-2.md)
- [Layer 2 Transacting](https://battlezips.gitbook.io/battlezips/examples/rollupnc/layer-2-transacting.md)
- [Layer 2 Withdrawals to Layer 1](https://battlezips.gitbook.io/battlezips/examples/rollupnc/layer-2-withdrawals-to-layer-1.md)
