5月29日 22:40

区块链用了哪些密码学技术?哈希、签名和 Merkle Tree 各起什么作用?

三大核心:哈希函数(SHA-256/Keccak256)保证数据完整性,区块头哈希链接形成链;数字签名(ECDSA/EdDSA)私钥签名公钥验证,证明交易身份;Merkle Tree 只需 log(n) 个哈希即可证明某笔交易在区块中(SPV 验证)。三者协作:签名保证身份,哈希保证不可篡改,Merkle 保证高效验证。

追问

SHA-256 和 Keccak256 有什么区别?

SHA-256 是 NIST 标准(比特币),Keccak256 是 SHA-3 竞赛获胜者(以太坊)。算法完全不同:SHA-2 是 Merkle-Damgard 构造,Keccak 是海绵构造。

为什么不直接用公钥当地址?

公钥 64 字节太长。以太坊地址=keccak256(pubKey) 后 20 字节,比特币地址=Base58Check(SHA-256+RIPEMD-160(pubKey))。缩短地址减少链上存储。

Merkle 证明怎么验证?

提供目标哈希+每层兄弟哈希,逐层向上组合计算根哈希,对比是否等于已知根。只需 log2(n) 个哈希值。

零知识证明怎么用?

zk-SNARK/zk-STARK:证明我知道 X 而不透露 X。应用:Zcash 隐私交易、zkRollup 批量证明、身份验证(证明年满 18 岁不暴露生日)。

量子计算会破解这些密码吗?

ECDSA 会被 Shor 算法破解。SHA-256 只被 Grover 算法削弱(等价密钥长度减半)。抗量子方案:签名用 lattice-based,哈希加倍长度。以太坊已有抗量子路线图。

标签:Blockchain