
先把研究结论拆成可检验的问题
区块链与智能合约的研究证据怎么核验,首先取决于结论声称证明什么。交易是否被某区块收录、公开源码是否对应链上代码、合约是否满足预期规则,是不同问题,需要不同证据。研究报告应让每项结论对应明确对象、核验方法与适用条件,避免仅凭一个“已验证”标签推导整体可信。
链上记录:区分交易收录与规则有效性
Bitcoin Developer Guides 的区块链章节说明,全节点独立验证区块;区块头通过前一区块哈希连接,默克尔树用于核验交易收录。同一高度可能出现不同区块,因此区块高度不能充当全局唯一标识。

据此,研究记录应同时注明网络、交易标识和区块哈希。引用交易收录证明时,还应交代对应区块在所研究链中的位置与状态。证明一笔交易包含在某个区块中,并不等于完成全部共识规则验证,更不能单凭链上记录证明链外业务描述真实。

智能合约:核对编译结果与验证范围
Ethereum.org 的合约验证文档区分源码验证和形式化验证:前者检查源码编译结果与合约字节码的对应关系,后者关注是否满足预期性质。完整验证还利用元数据哈希核对源码及编译信息;忽略这些信息的匹配,证据范围更窄。
核验报告应保留合约所在网络、地址、源码文件、编译器版本及相关设置,并说明比较的字节码和匹配类型。涉及构造参数、库链接或不可变变量时,必须说明处理方法,不能把简化的字节比较当作所有合约都适用的完整流程。
常见问题:已验证是否等于安全
源码验证成功,支持的是代码对应关系,不能直接推出没有漏洞。注释和变量名有助于阅读,但其含义仍需对照实际执行逻辑;完整匹配也不会自动证明业务设计正确。
形式化验证的结论同样需要限定范围:究竟验证了哪些性质、采用哪些假设、覆盖哪个代码版本。若研究只提供源码匹配结果,就应把结论限定在匹配层面,不扩大为全面安全保证。
让证据能够被独立复核
一份可复核的研究应保留原始对象标识、输入材料、验证条件、结果及未覆盖事项。两个来源的作用也应分清:比特币开发文档解释该网络的区块与交易机制,以太坊文档解释相关智能合约验证机制;二者不能互相替代,更不能据此认定某个具体项目已经通过核验。