
安全要看保护的对象
回答区块链安不安全,先要区分历史记录、交易有效性和应用逻辑。记录能否被改写、同一笔资产能否重复使用、合约是否允许越权操作,是不同的问题。某一层的保护有效,并不意味着其他层也没有漏洞。
哈希与默克尔树:核验数据是否一致
比特币开发者指南介绍了区块之间的哈希关联,以及将交易摘要逐层汇总为默克尔根的结构。修改交易会影响相关摘要;默克尔证明可以帮助核验交易是否被收录。

这些机制解决的是数据关联与一致性问题。交易被收录,并不能单独证明其业务目的合理;哈希也不能代替交易规则检查。理解安全性时,应把“数据与记录相符”和“操作本身符合预期”分开。

共识与工作量证明:约束历史改写
在比特币中,全节点独立验证区块,未花费交易输出用于检查资产是否已经花费。工作量证明提高重建历史的成本;出现竞争分支时,节点在有效链中依据累计工作量选择。
这类保护具有条件:攻击者的算力会影响历史改写风险,确认也不是绝对不可逆的承诺。常说的“最长链”容易产生误解,关键是累计工作量,而非只比较区块数量。这些说明针对比特币的机制,不能直接套用于所有区块链。
智能合约:权限与逻辑同样重要
以太坊智能合约安全文档强调访问控制、多签、状态检查、测试与独立审查。公开可调用的函数需要明确权限边界,多签则让敏感操作依赖多方授权。
底层网络可以按规则执行合约,却不会自动修正合约设计错误。例如,某项操作若本应受限却遗漏权限检查,系统仍可能忠实执行有缺陷的逻辑。多签能够分散授权责任,其效果也取决于签名方和权限配置。
常见问题:审计是否意味着没有漏洞
审计增加发现问题的机会,但不能保证覆盖所有缺陷。测试考察选定输入和场景,模糊测试扩展输入探索,形式化验证则围绕明确规格证明特定性质。
形式化验证的结论受模型、规格和假设限制,不能直接扩大为整个系统绝对安全。判断安全说明是否充分,需要看它保护什么、依赖什么条件,以及哪些风险仍在结论之外。