
先明确“新的风险”的范围
讨论区块链新的风险有哪些常见误区,首先要区分新近发生的事件与长期存在的技术风险。这里解释账本、合约和权限层面的常见问题,不将基础机制描述为最新发现的漏洞。比特币的工作量证明机制与以太坊的合约开发原则各有适用范围,不能直接推及所有区块链。
误区一:难以篡改意味着所有操作都安全
比特币开发指南说明,区块通过哈希关联,节点验证区块,并在有效分支中选择累计工作量最大的链。修改历史需要重做相关工作;短暂分叉也可能改变近期区块的归属。

账本记录可靠与操作本身正确,是两个不同问题。一个操作即使符合网络规则,也可能违背应用设计者的意图。因此,判断安全性既要看记录如何确认,也要看应用允许什么操作。

误区二:去中心化应用没有集中权限
以太坊智能合约安全文档讨论了访问控制、角色分工和多签管理。敏感功能需要限制调用权限,单一管理密钥失陷可能影响合约安全。
理解权限风险,可以追问:谁能修改关键参数,谁能暂停功能,谁能批准升级?多签的保护作用取决于签署方是否独立及门槛如何设置;多个地址并不自动代表多个独立控制者。
误区三:通过审计就不会再有漏洞
该合约安全文档将测试、独立审查与漏洞奖励作为互补措施,并明确审计不能发现所有缺陷。形式化验证则需要围绕明确的安全性质建立规格和模型。
审计结论应结合检查的代码版本与覆盖范围理解。测试通过说明已检查的情形符合预期,不能覆盖未设计的情形;形式化证明的结论也受规格与模型假设限制,不能无限扩大到整个应用。
误区四:不可变就不用考虑修复
不可变性使部署前的检查更重要,也使修复方案成为设计问题。理解一个应用时,需要分别考察现有逻辑能否修改、是否保留升级权限,以及出现异常后有哪些处理能力。可升级机制涉及权限约束,不可升级机制则面临修复限制,两者都需要说明适用条件。
常见问题:底层可靠能保证应用安全吗
不能仅凭底层共识机制得出应用安全的结论。网络规则、合约逻辑和管理权限分别承担不同职责。判断某个具体应用,需要对应层面的证据;通用技术原理不能证明某个项目已经安全,也不能证明它已经发生漏洞。