乐闻世界logo
搜索文章和话题

What Cryptographic Technologies Are Used in Blockchain? Detailed Explanation of Hash Functions, Digital Signatures, and Merkle Trees

3月7日 12:04

Cryptography is the cornerstone of blockchain security, ensuring data confidentiality, integrity, authenticity, and non-repudiability through mathematical algorithms.

1. Hash Functions

Definition and Characteristics

Hash functions are one-way functions that convert variable-length input into fixed-length output.

Key Characteristics:

CharacteristicDescriptionBlockchain Application
DeterministicSame input always produces same outputData verification
One-wayCannot reverse-engineer original data from hashPrivacy protection
Collision ResistanceDifficult to find two different inputs producing same outputTamper-proofing
Avalanche EffectSmall input changes cause huge output differencesTamper detection

Common Hash Algorithms

SHA-256 (used by Bitcoin):

shell
Input: "Hello Blockchain" Output: a8f5f167f44f4964e6c998dee827110c9a0c5e1e7a5b6e5f8d9c2b1a4e7f3d6 (Fixed 256 bits / 64 hexadecimal characters)

Keccak-256 (used by Ethereum):

  • Variant of SHA-3 standard
  • Resistant to length extension attacks
  • Used for generating Ethereum addresses

Applications in Blockchain

shell
Hash applications in block structure: ┌─────────────────────────────────────┐ │ Block Header │ ├─────────────────────────────────────┤ │ Previous Hash │ ← Links blocks, forms chain │ Merkle Root │ ← Transaction data integrity verification │ Timestamp │ │ Nonce │ └─────────────────────────────────────┘ Block Hash = SHA256(SHA256(Block Header))

2. Digital Signatures

Asymmetric Encryption Basics

shell
Key Pair Generation: ┌──────────────┐ ┌──────────────┐ │ Private Key │ ←─────→ │ Public Key │ (Secret) │ Math │ (Public)└──────────────┘ Link └──────────────┘ ↓ ↓ Used for signing Used for verification

Common Algorithms:

  • ECDSA (Elliptic Curve Digital Signature Algorithm): Used by Bitcoin, Ethereum
  • EdDSA (Edwards-curve Digital Signature Algorithm): Faster and more secure

Signing and Verification Process

shell
Transaction Signing Process: 1. Prepare transaction data {"from": "0xabc...", "to": "0xdef...", "value": 100} 2. Calculate transaction hash txHash = Keccak256(transaction data) 3. Sign with private key signature = ECDSA_Sign(privateKey, txHash) 4. Broadcast transaction Transaction data + Signature + Public key Verification Process: ECDSA_Verify(publicKey, txHash, signature) → true/false

Ethereum Address Generation

shell
1. Generate private key (256-bit random number) Private Key = Random number 2. Calculate public key through elliptic curve Public Key = Private Key × G (curve base point) 3. Calculate public key hash hash = Keccak256(Public Key) 4. Take last 20 bytes as address Address = "0x" + hash[12:32]

3. Merkle Tree

Structure and Principle

shell
Merkle Tree Structure: Root Hash / \ Hash 1-2 Hash 3-4 / \ / \ Hash 1 Hash 2 Hash 3 Hash 4 | | | | Tx 1 Tx 2 Tx 3 Tx 4 (Each Hash = SHA256(child node hashes concatenated))"

Merkle Proof

Light Node Transaction Verification:

shell
Verify if Tx 3 exists in block: Required data: - Hash of Tx 3 - Hash 4 (sibling node) - Hash 1-2 (uncle node) - Root Hash (in block header) Verification steps: 1. Hash 3 = SHA256(Tx 3) 2. Hash 3-4 = SHA256(Hash 3 + Hash 4) 3. Calculate Root = SHA256(Hash 1-2 + Hash 3-4) 4. Compare calculated Root with Root in block header

Applications in Blockchain

  1. Transaction Integrity Verification: Quickly verify large numbers of transactions
  2. Light Node Synchronization: SPV (Simple Payment Verification) only needs to download block headers
  3. State Proofs: Ethereum's state tree uses Merkle Patricia Tree

4. Zero-Knowledge Proof

Basic Concept

Definition: Prover proves to verifier that a statement is true without revealing any useful information.

zk-SNARKs (used by Ethereum ZK Rollup):

  • Succinct: Small proof size
  • Non-interactive: No interaction required
  • ARgument of Knowledge: Proof of knowledge

Application Scenarios

shell
Privacy Transaction Example: ┌─────────────────────────────────────┐ │ Proof: I know a secret x such that │ │ hash(x) = 0xabc... │ │ │ │ Without revealing: The actual value │ │ of x │ └─────────────────────────────────────┘

Interview Key Points

  • Understand one-way and collision-resistant properties of hash functions
  • Master the relationship between public and private keys and digital signature principles
  • Be able to explain how Merkle Trees efficiently verify data
  • Understand basic concepts and applications of zero-knowledge proofs
  • Know specific algorithms used by different blockchains (SHA-256 vs Keccak-256)
标签:Blockchain