
先明确服务能证明什么
区块链溯源服务需要注意哪些问题,首先取决于业务要核验什么:记录来自谁、经历了哪些处理,还是对应的现实事件是否真实发生。链上记录可以支持后续核验,但外部信息进入区块链之前,仍需可靠的采集与验证机制。适用范围应明确到具体数据和环节,避免将局部记录解释为全流程可信。
关注外部数据的入口
以太坊开发文档将预言机解释为向智能合约提供链外信息的应用,并强调正确性、可用性以及提供者的可归责性。应用到溯源服务时,需要关注信息是否取自指定来源、传输是否完整、更新是否持续,以及能否找到提交者。
例如,业务系统上传了一条交接记录,服务应能说明提交主体和校验方式。来源身份得到确认,只能回答谁提供了信息;内容是否符合现实,还需要相应的业务证据。多个节点读取同一个外部接口,也不能据此认定存在多个独立事实来源。
让溯源关系表达完整
W3C的PROV-O提供了表达和交换溯源信息的通用模型,以实体、活动和责任主体等概念描述来源关系,支持不同系统间的信息整合。它提供的是描述框架,不能单独保证记录真实。
设计服务时,可据此检查一份记录关联了什么对象、由什么活动产生、使用了哪些前序信息,以及由谁负责。例如,检测报告应关联检测活动和相应主体。仅展示一组时间和文件名称,可能不足以解释报告与被追溯对象之间的关系。
明确更新与异常处理规则
需要持续接入外部信息的服务,应明确更新频率、数据过期条件和接口中断时的处理方式。查询结果宜区分记录中的事件时间与数据更新时间,避免把最近上传的信息误解为最近发生的事件。
当不同提交者提供的记录冲突时,应保留分歧及其来源,明确由谁核查、如何形成修订记录。错误数据被保存后,仍然需要纠错流程;保存历史与确认事实是两个需要分别处理的问题。
常见问题与适用条件
是否必须使用预言机?当智能合约需要依据链外信息执行时,需要相应的数据接入机制;具体架构应由业务需求决定。是否采用统一模型就能自动互通?仍需各方约定标识、字段含义和关系表达,否则相同名称也可能指向不同对象。
这些原则适用于依赖外部数据、涉及多方记录交接的溯源服务。评估时可选取一条记录,检查能否解释其来源、处理过程、责任主体及异常状态,从而判断服务实际覆盖了哪些核验环节。