SatoshiChain
  • What is SatoshiChain?
    • 1.1 Phases
    • 1.2 Connect To SatoshiChain
    • 1.3 Solutions
    • 1.4 Characteristics
  • Main Features
    • 2.1 'Clique' Proof-of-Authority (PoA) Consensus
    • 2.2 EVM-compatible
    • 2.3 Decentralized Governance
    • 2.4 Cross-chain Compatibility
  • Background
    • 3.1 Cryptographic Hash Functions
    • 3.2 Digital Signatures
      • 3.2.1 Secp256k1 Curve
      • 3.2.2 ECDSA Signature Algorithm
    • 3.3 Ethereum Virtual Machine (EVM)
    • 3.4 Consensus Protocols
      • 3.4.1 Proof-of-Work (PoW) - Nakamoto Consensus
      • 3.4.2 Istanbul Byzantine Fault Tolerant (IBFT)
      • 3.4.3 IBFT Proof of Authority (PoA)
      • 3.4.4 IBFT Proof-of-Stake (PoS)
      • 3.4.5 RAFT
      • 3.4.6 'Clique' Proof-of-Authority (PoA)
      • 3.4.7 Comparison and Selection
  • Developers
    • 4.1 SatoshiChain Layering Architecture
    • 4.2 SatoshiChain Cross-Chain Protocol
    • 4.3 SatoshiChain Design
    • 4.4 Native Currency of SatoshiChain: The $SC Token
    • 4.5 SatoshiChain Configurations
  • VE Model for SatoshiChain
    • 5.1 Voting Power
    • 5.2 How to Use $veSC
  • Smart Contracts of SatoshiChain
    • 6.1 Validator Set Contract
    • 6.2 Slashing Contract
    • 6.3 Staking Contract
    • 6.4 Governance Contract
    • 6.5 Vault Contract
    • 6.6 Bridge Contract
  • SatoshiChain Staking
  • SatoshiX Decentralized Exchange (DEX)
  • Potential Applications
    • 9.1 NFT
    • 9.2 DeFi
    • 9.3 GameFi
  • Become a Validator Node Operator
Powered by GitBook
On this page
  1. Background
  2. 3.2 Digital Signatures

3.2.1 Secp256k1 Curve

In cryptography, secp256k1 is an elliptic curve used for digital signatures and key generation, including in the Bitcoin blockchain.

Note that all elliptic curves are equations defined as y2 = x3 + ax + b. The code Secp256k1 is an elliptic curve used by several blockchains to implement public and private key pairs. For instance, we can define Secp256k1 as a = 0 and b = 7 (i.e., secp256k1 lives on the equation y2 = x3 + 7). Before a user generates a public and private key pair (pk, sk), he/she must first generate a sufficiently large random number (which is going to be sk) and use it to multiply with the private key by the generator point G as sk.G (which is going to be the pk). We use this number to define a point on the secp256k1 curve. Due to the underlying discrete log problem (DLP), no one can derive the private key from the given public key and the generator point (as long as the key size is sufficiently large). Note that for each value of x, the y component is squared in this equation leading to having two symmetric points across the x-axis. Hence, there are two values of y called odd and even numbers. Therefore, public keys can be identified by the x-coordinate and the parity of the y-coordinate. In the blockchain space, this feature is crucial, as it saves significant data storage.

Previous3.2 Digital SignaturesNext3.2.2 ECDSA Signature Algorithm

Last updated 2 years ago