
适用范围与核验对象
“长安”所指的具体项目、网络和合约地址尚不明确,因此不能对其真实性、安全性或权限状态作出判断。本文解释适用于以太坊及兼容 EVM 合约的通用核验方法;其他类型区块链需要另行确认验证机制。
研究证据首先应绑定明确对象:网络、合约地址、观察区块及源码版本。缺少这些信息,即使附有源码截图或验证标记,也难以判断证据是否对应研究中的合约。
源码证据能证明什么
ethereum.org 的合约验证说明将源码验证与形式化验证区分开:前者检查源码编译结果与链上代码是否一致,后者研究行为是否符合预期。其介绍的完整验证还比较编译元数据哈希,以加强对源码和编译信息一致性的确认。
核验记录应保留源文件、编译器版本、优化设置、依赖库信息及匹配结果。涉及构造参数或不可变变量时,还需解释验证工具如何处理相应差异,不能仅凭一张“已验证”截图认定复现成功。
权限证据需要对应实际状态
OpenZeppelin 的访问控制文档说明,Ownable 以所有者限制特定函数,AccessControl 则通过角色及其管理员关系管理权限。角色可以授予和撤销,默认管理员角色也具有管理自身的能力。
据此审查具体合约时,应把敏感函数、访问限制、管理关系与指定区块的权限状态对应起来。使用某个标准组件,只能说明可能采用了相应机制;实际限制仍取决于合约实现及配置。权限变更事件可用于追溯过程,但需要结合状态核对。
让研究结论可以复查
每条结论宜同时写明证据位置、核验方法与适用范围。例如,“源码匹配”应对应编译记录和字节码比较结果;“某账户具有管理权限”应对应角色查询、管理员关系及观察区块。二者不能相互替代。
若证据只覆盖源码一致性,结论就应停留在一致性层面。若讨论权限是否受到约束,还需检查相关函数及权限配置,不能从组件名称直接推出安全结论。
常见问题与结论边界
已验证是否代表没有漏洞?不代表。源码验证使代码更容易被独立检查,并不证明所有逻辑都正确。完整匹配是否等于业务可信?也不等于,它主要加强源码及编译信息的一致性证据。
不同验证服务的结果能否直接比较?应先确认匹配类型、元数据处理方式和验证范围。通用文档能够解释方法,却不能替代“长安”具体合约的链上记录;缺少可定位对象时,只能形成方法说明,不能形成项目已获验证的结论。