type
status
date
slug
summary
tags
category
icon
password
区块链技术与应用
1. 密码学基础
1.1 密码学哈希函数的三大特性 (Properties of Cryptographic Hash Functions)
密码学哈希函数是区块链技术的基石,具有以下三个关键特性:
抗碰撞性 (Collision Resistance)
- 定义:对于任意输入值 x,在计算上难以找到另一个不同的值 y,使得 Hash(x) = Hash(y)
- 应用:用于生成消息摘要(message digest),确保数据完整性
隐藏性 (Hiding)
- 定义:从哈希值无法反推出原始输入,即哈希过程是单向的
- 应用:
- 实现数字承诺(Digital Commitment)
- 创建数字信封(Digital Envelope)的等效机制
- 前提条件:输入空间(input space)必须足够大,否则容易被暴力破解
谜题友好性 (Puzzle Friendly)
- 定义:寻找特定哈希值的过程没有捷径,只能通过穷举 nonce 值
- 应用:
- 构建工作量证明(Proof of Work, PoW)机制
- 确保挖矿(Mining)过程的公平性
1.2 数字签名系统 (Digital Signature System)
去中心化账户管理 (Decentralized Account Management)
比特币创新性地采用去中心化账户管理机制,无需中央机构审批
账户创建流程:
- 用户自主生成公私钥对(Public-Private Key Pair)
- 公钥(Public Key)作为账户地址
- 私钥(Private Key)用于交易签名
非对称加密体系 (Asymmetric Cryptography)
安全性分析 (Security Analysis)
- 理论风险:通过大量生成公私钥对进行碰撞攻击(Birthday Attack)
- 实际安全性:
- 使用 SHA-256 算法
- 需要 2¹³⁰ 次随机尝试才有 99.8% 的碰撞概率
- 以当前计算能力,短期内无法破解
2. 区块链数据结构 (Blockchain Data Structure)
2.1 哈希指针 (Hash Pointer)
区块链使用哈希指针替代传统指针,实现了数据防篡改特性
特点与优势:
- 任何数据修改都会破坏哈希链接(Hash Chain)
- 仅需验证最新区块哈希即可确保整条链完整性
- 支持轻节点验证(Light Node Verification)机制
2.2 默克尔树 (Merkle Tree)
默克尔树是一种二叉哈希树(Binary Hash Tree),用于高效验证大型数据结构的完整性
结构特点
核心功能
- 存储效率:
- 区块头(Block Header)存储根哈希
- 区块体(Block Body)存储完整交易列表
- 轻节点验证:
- 仅需 O(log n) 个哈希值
- 支持单个交易的存在性证明(Proof of Membership)
轻节点验证过程 (Light Node Verification Process)
- 验证请求:
- 轻节点向全节点请求特定交易的验证
- 提供交易ID和所在区块信息
- 证明构造:
- 全节点提供 Merkle Proof,包含:
- 目标交易的哈希值
- 验证路径上的所有兄弟节点哈希值(Sibling Hashes)
- 区块头中的 Merkle Root
- 验证步骤:
- 从目标交易开始,结合兄弟节点计算哈希
- 逐层向上计算直至根节点
- 比对计算得到的根哈希与区块头中的值
- 验证结果:
- 如果计算得到的根哈希与区块头中的值相同,则证明交易存在
- 整个过程仅需 O(log n) 的计算量和存储空间
高级特性
- 排序默克尔树(Sorted Merkle Tree):
- 叶节点按哈希值排序
- 支持 O(log n) 的不存在性证明(Proof of Non-membership)
- 比特币未采用此特性
💡 小贴士:比特币网络中的轻节点(Light Node)仅需存储区块头(约 80 字节/区块),极大降低了存储需求
- Author:ひかり
- URL:https://www.firstlove.today//article/1813e833-af2d-8083-8d1f-dfc73b818658
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!