区块链底层原理 (Blockchain Fundamentals)
1. 分布式账本技术 (DLT)
1.1 什么是区块链?
区块链是一种去中心化的、不可篡改的分布式数据库。数据以“区块”为单位存储,并按时间顺序通过密码学哈希链接成链条。
1.2 核心特性
- 去中心化 (Decentralization): 无需可信第三方,全网节点共同维护。
- 不可篡改 (Immutability): 历史记录难以修改(需掌握51%算力)。
- 透明性 (Transparency): 所有交易记录对公网可见(公有链)。
- 无需许可 (Permissionless): 任何人均可参与。
2. 密码学基础
2.1 哈希函数 (Hash Function)
- 性质:
- 单向性: 易于计算,难以逆推。
- 抗碰撞: 难以找到两个不同输入产生相同输出。
- 雪崩效应: 输入微小变化导致输出巨大变化。
- 应用: SHA-256 (Bitcoin), Keccak-256 (Ethereum)。
- 用于生成区块头哈希、Merkle Root、地址生成。
2.2 公钥密码学 (PKI)
- 非对称加密:
- 私钥 (Private Key): 随机生成,必须保密。用于数字签名,证明所有权。
- 公钥 (Public Key): 由私钥推导而来,公开。用于验证签名。
- 地址 (Address): 由公钥哈希生成。
- 椭圆曲线加密 (ECC): 比特币使用 secp256k1 曲线。
2.3 数字签名流程
- 发送方用私钥对交易信息签名。
- 广播交易与签名。
- 矿工/验证者用发送方的公钥验证签名。
- 验证通过则交易合法。
3. 区块结构 (Block Structure)
3.1 区块头 (Block Header)
- 父区块哈希 (Previous Block Hash): 链接前一个区块,形成链条。
- Merkle Root: 包含该区块所有交易的指纹。
- 时间戳 (Timestamp): 区块生成时间。
- 难度目标 (Difficulty Target): 挖矿难度。
- Nonce: 随机数,用于挖矿。
3.2 区块体 (Block Body)
- 包含该区块打包的所有交易列表。
- Merkle Tree: 一种二叉树结构,用于高效验证交易是否存在于区块中。