粮食供应链中企业内部与外部流转信息分别记录在私有链与联盟链上,因此若想实现信息的全链条精准追溯,联盟链与私有链的跨链交互是必不可少的。公证人机制通常是由多个独立的公证节点组成的,这些节点可以属于不同的区块链网络,它们之间通过某种跨链协议进行通信。在跨链交易过程中,公证人会对交易进行验证,并且确认其是否合法。当跨链交易被确认后,公证人会向目标链上的节点发送交易信息,并在目标链上执行相应的操作。通过公证人机制,用户可以在不同的区块链网络之间进行资产的转移和交换,实现不同链之间的互联互通。公证人机制相较于其它跨链技术机制的优势在于其高度去中心化的特性,公证人节点由多个实体节点组成,互相监督,确保跨链交易的安全性和可靠性。
在粮食供应链溯源场景中,涉及到的跨链交互场景主要包括:全链条的溯源信息查询、全链条的数据分析以及监管方发起的供应链信息审计等。系统中的跨链交互场景特点如上图y所示,这些场景普遍不存在跨链的“资产转移”,即跨链交互过程中只存在A链发起读取B链信息写入A链的操作,不存在A链发起在B链写入信息的操作。这样以来跨链交互协议仅需实现不同区块链网络间的安全通信与访问控制即可,大大降低了系统设计难度,实现的跨链组件也更为轻量化,可靠性也大幅提高。
私有链一般部署于较为隔离的网络环境中,因此需要网关作为与外界通信的桥梁;同样,智能合约与链码的隔离沙盒运行机制,原则上不允许在其中发起网络调用,因此也需要网关作为与外部世界通信的代理。本文设计的基于公证人机制的轻量化跨链访问控制协议逻辑结构如图所示,由跨链网关和认证组件构成。跨链网关分为私有链网关和联盟链网关,分别连接企业内部私有链与联盟链网络,代理私有链与联盟链跨链通信。私有链网关通过以太坊节点的HTTP-RPC接口的连接到私有链;联盟链网关通过Fabric peer节点的gRPC接口连接到联盟链网络。除此以外,网关中还记录了不同网络的通信地址与身份认证所需的相关材料。跨链协议中存在两种交互身份,联盟链网关中发起跨链信息读取的的身份被称为“公证人”,私有链网关中接收“公证人”查询请求并在私有链上发起信息查询操作的身份称为“联络人”。“公证人”拥有查询联盟链业务通道交易数据的权限和溯源通道的读写权限;“联络人”拥有企业私有链的信息读取权限。