BattleZips
  • Awesome Circom
  • 🔬Theory
    • Prerequisite Knowledge
    • Resources
      • White Papers & PDF's
      • Blogs and Writeups
      • Videos
      • Important Entities
      • Communities
    • Proving Schemes
    • Primitives
      • Hash Functions
      • Public Key Cryptosystems
        • Note on L1 key registry → L2 hot key + callback to circuit-optimized hash functions
        • ECDSA & secp256k1
        • EdDSA
      • Merkle Trees
        • What is a Merkle Tree?
        • What is a merkle proof of inclusion?
        • zk-kit
        • Incremental Merkle Trees
        • Sparse Merkle Trees
        • Tree Arity (Binary, Quinary)
      • Semaphore
      • Arithmetic Circuits
  • 🏗️Development
    • Circom Language
      • Installation
      • IDE
      • Signals and Variables
      • Signal Assignment and Constraint Generation
      • Conditional Statements
      • Components and Templates
      • Circuit Compilation
      • Syntax
    • SnarkJS
      • Proving Schemes
      • Powers of Tau
      • ZK Keys
      • Zero Knowledge Proofs
      • On-Chain ZKP
      • Page 2
    • circomlib
      • Basic Math Constraints
      • Multiplexing
      • Hashing
      • EdDSA
      • circomlibjs
    • circom-tester
    • hardhat-circom
    • SHIELD
    • Circomspect
  • 🌆Ecosystem
    • Circom vs Other Solutions
      • Domain-Specific Languages
      • ZK Virtual Machines
      • ZK Ethereum Virtual Machines
    • Communities to Join
    • Recorded Content
    • Projects
  • 🛳️Examples
    • BattleZips V1
      • On the BattleZips Project
      • Docs holder
        • Join Game UML Sequence Diagram
        • Play Game UML Sequence Diagram
        • End Game UML Sequence Diagram
      • ZK Privacy Stack
      • Deploying Artifacts to Prod
      • Browser Client
    • RollupNC
      • Smart Contracts
      • Account/ State Tree
      • Transaction Tree
      • Layer 1 Deposits to Layer 2
      • Layer 2 Transacting
      • Layer 2 Withdrawals to Layer 1
Powered by GitBook
On this page
  • Background on Elliptic Curves
  • ECDSA
  • Secp256k1
  1. Theory
  2. Primitives
  3. Public Key Cryptosystems

ECDSA & secp256k1

PreviousNote on L1 key registry → L2 hot key + callback to circuit-optimized hash functionsNextEdDSA

Last updated 2 years ago

Background on Elliptic Curves

Elliptic curves are geometric constructions whose equations make them ideal for . They enable a form of public key cryptography where a user is able to create a private key from the curve that can then be used to derive a public key which is represented by two points on the curve. There are many different curves that are used based on different equations

ECDSA

Secp256k1

Elliptic Curve Digital Signature Algorithm (ECDSA) is a widely used across public blockchains. It utilizes elliptic curves (hence the name) to enable the creation of . Digital signatures are cryptographic construct that allows one to digitally verify that they have authorized a transaction on a Blockchain. There are plethora of signature algorithms but ECDSA is one of the most widely used ones

ECDSA is an algorithm that allows the use of many different types of Elliptic curves based on interchangeable variables. One must take care when choosing an elliptic curve however because they are not all created equal. A curve is likely not secure if it has not been created by a team of experienced cryptographers. Due to this there are a number of adopted elliptic curve variants that have been adopted over others. is one of these curves has seen its use proliferate across the Blockchain sphere. It is the curve of choice in the Bitcoin blockchain and also has been widely used in zero knowledge applications

🔬
digital signatures
Secp256k1
asymmetric encryption
Simple equation representing an elliptic curve