
先明确“链加密”保护什么
讨论区块链的链加密算法需要注意哪些问题,首先要区分哈希、数字签名与加密。哈希用于生成数据摘要,签名用于验证授权,加密主要解决内容保密问题。这些机制的目标不同,不能因为系统采用密码学,就推断链上数据只有持有私钥的人才能读取。
哈希链接需要配合共识验证
比特币开发者指南介绍,区块头保存前一区块头的哈希,交易通过默克尔树汇总为根哈希;全节点按共识规则验证区块,并在有效分支之间依据累计工作量选择链。

这意味着,修改历史数据会影响相关哈希及后续链接,但哈希关联本身并不阻止他人重新计算摘要。历史记录的保护还依赖共识机制与节点验证。评估安全性时,应同时关注数据如何被承诺、区块如何被接受,以及竞争分支如何处理。上述工作量规则适用于比特币,不能直接套用于所有区块链。

签名安全离不开私钥管理
以太坊账户文档说明,外部账户由私钥控制,私钥用于签署交易;账户的交易计数器 nonce 用于约束重复执行。合约账户则由代码逻辑控制,没有对应的账户私钥。
因此,签名验证通过只说明满足相应授权条件,并不能证明操作符合持有者的真实意愿。私钥泄露后,攻击者也可能生成有效签名。密码学方案的评估需要覆盖密钥生成、保存和使用环节,不能只比较算法名称。合约账户还需要关注代码所定义的权限。
完整性证明有适用边界
默克尔证明解决的是某项数据是否被纳入特定根哈希所代表的数据集合。它的结论依赖所使用的区块头及其所属链是否可信,也不等同于对交易全部有效性条件的检查。
同样,防止重复执行需要协议状态参与判断。签名负责授权,计数器或未花费输出等规则负责约束状态变化;单独使用签名不能替代这些验证。
常见问题如何判断
有哈希是否就绝对不可篡改?需要结合共识规则和攻击条件判断,不能作绝对承诺。地址是否等于钱包?地址用于标识账户,钱包是交互工具,两者并不相同。
区块高度是否能唯一标识区块?分叉时同一高度可能出现不同区块,识别具体区块应结合区块哈希。理解这些边界,才能准确判断一种机制究竟提供了什么保证,以及哪些问题仍需其他机制解决。