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,哈希加倍长度。以太坊已有抗量子路线图。