
溯源首先需要明确记录对象和关系
理解区块链溯源,可以从三个问题入手:追踪什么对象,对象经历了什么活动,由谁参与或负责。溯源数据需要把这些关系连接起来,才能解释一份记录或一个结果的来历。
W3C的PROV-O提供实体、活动、主体等基本概念,并能表达生成、使用、派生和责任归属关系。它基于OWL2表达来源信息,支持不同系统之间的表示与交换。这类模型可用于梳理溯源语义,本身不要求使用区块链。
账户、交易与智能合约如何配合
以以太坊为例,智能合约是位于链上特定地址的程序,包含代码和状态。用户账户可以提交交易调用合约函数,由代码检查条件并执行相应操作。合约部署和执行涉及网络计算资源及相应费用。
映射到溯源场景,合约可以承载预先定义的记录规则。例如,设计时可规定哪些账户有权提交某类事件,以及事件需要满足哪些条件。这是技术能力的应用示例,具体规则仍需按业务定义、开发和验证。
链外输入决定信息从哪里来
智能合约无法自行读取现实世界事件。以太坊开发文档介绍的预言机用于把链外数据提供给合约,因此外部信息进入链上流程时,需要明确数据接入方式。
在溯源设计中,还要回答信息由谁采集、提交者如何确认、发生错误后如何处理。合约可以检查输入是否符合编码规则;输入是否准确反映现实,则需要采集、核验和责任机制支持。
权限与多方确认承担什么作用
账户地址是链上交互的技术标识;要表达实际责任,还需建立地址与业务主体之间的对应关系。否则,即使能够查到提交地址,也难以解释它代表哪家机构或哪种角色。
多重签名要求达到约定数量的有效签名才执行操作,可用于需要多方共同确认的环节。它能分配操作权限,但签名数量本身不能证明被确认内容真实。
适用条件与系统之间的衔接
当多个参与方需要按照共同规则提交、核验来源记录时,可以评估链上合约是否适合承担其中的规则执行部分。判断时应明确参与角色、事件定义、外部数据来源及执行成本。
跨系统衔接还依赖一致的数据含义。例如,不同系统对同一对象、加工活动或责任主体的描述需要能够对应。PROV-O提供通用表达基础,具体业务仍需统一标识、字段含义和关系解释。
常见问题:采用标准和上链是否足够
使用PROV-O是否意味着必须部署智能合约?不意味着。来源模型解决信息如何表达的问题,智能合约解决链上程序如何按规则执行的问题,两者可以配合,也可以分别使用。
记录上链后是否就能证明商品或原始数据真实?不能仅凭上链得出这一结论。完整的溯源解释应同时交代记录内容、提交主体、来源关系和外部核验依据,避免把程序执行结果直接等同于现实事实。