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.2 ECDSA Signature Algorithm

In cryptography, the Elliptic Curve Digital Signature Algorithm (ECDSA) is a digital signature algorithm that uses the secp256k1 curve to create and verify digital signatures.

ECDSA Signature Algorithm

Elliptic Curve Digital Signature Algorithm (ECDSA) is a cryptographic algorithm for creating digital signatures. More concretely, Setup

●	Public Parameters: Let 𝐹 be a finite field, two parameters 𝑎 and 𝑏 define an elliptic
𝑞 
curve 𝐶 over 𝐹 , a seed which validates 𝐶, a prime integer
𝑞
𝐺∈ 𝐶 of order 𝑛 where 𝑞 is either prime or a power of 2.
●	Private Key: An integer 𝑑 in [1, 𝑛 − 1].
●	Public Key: 𝑄 = 𝑑𝐺.

Signature generation for a given message 𝑀:

●	Generate 𝑘∈ [1, 𝑛 − 1]
●	Compute
(𝑥1, 𝑦1) = 𝑘𝐺
𝑟 = 𝑥1 𝑚𝑜𝑑 𝑛
𝑠 =	 𝐻(𝑀) + 𝑑𝑟  𝑚𝑜𝑑 𝑛
●	If 𝑟 = 0 or 𝑠 = 0, try again. The signature is (𝑟, 𝑠).
●	Signature: (𝑀, 𝑟 , 𝑠 ). 

Verification:

●	Given (𝑀, 𝑟 ', 𝑠' ).
●	Verify if 𝑟' and 𝑠' are in [1, 𝑛 − 1] and that 𝑟' = 𝑥 𝑚𝑜𝑑 𝑛 for
(𝑥 , 𝑦 ) = 𝑢 𝐺 + 𝑢 𝑄  =   𝐻(𝑀)  𝑚𝑜𝑑 𝑛, and 𝑢 =  𝑟'  𝑚𝑜𝑑 𝑛.s')
𝑢

1    1    1        2    1    𝑠'        2    𝑠'
Previous3.2.1 Secp256k1 CurveNext3.3 Ethereum Virtual Machine (EVM)

Last updated 2 years ago