吴宏杰
(甘肃宏天亚达电子技术有限公司,甘肃兰州)
将区块链技术应用到数据共享中,可以使数据在采集、存储、传递、使用等环节中得到安全保障。进入5G 时代,构建基于区块链的5G 物联网并实现数据的实时共享,成为整合数据资源、挖掘数据价值的必要前提。但是受到区块链交易机制、验证速度等方面的限制,存在交易处理速度慢、可扩展性差等问题,难以满足5G 物联网下大数据的传递和处理需求。基于此,许多学者提出了改进方案,例如侧链技术、分片技术等,从实际应用效果来看确实能够提升交易效率,但是安全性差。相比之下,闪电网络方案通过建立链外交易通道,兼顾了安全与效率,成为更适合5G 物联网数据共享的优化方案。
将若干个区块按照时间的先后顺序串联起来,得到的链式结构即为区块链。在区块链中,每一个独立的区块都是由区块头、区块体2 部分组成,前者又包含了版本号、哈希值、时间戳等元素,后者则包含了详细的交易信息。为提高数据信息的安全性与完整性,采用Merkle 证明机制[1]。区块链的结构如图1 所示。
图1 区块链的数据结构
现阶段常用的区块链有公有链、私有链、联盟链3种基本类型。其中,联盟链采用分布式一致性算法(如PBFE、Paxo 等),数据运算能力可以达到10 000 次/s,广泛应用于物流、金融等领域。本文提出的数据共享技术以联盟链作为底层区块链。
基于区块链的5G 物联网数据共享框架由2 个服务器和2 个数据节点组成,整体架构如图2 所示。
图2 数据共享框架
(1) 数据提供节点包含了多种可以采集数据的物联网设备,包括智能手机、智能手环以及支持智能驾驶的汽车等。该节点可以实时获取智能设备上的数据,并通过数据共享的方式将数据信息上传至区块链服务器。
(2) 任何有数据使用需求的对象,都可以部署数据需求节点,例如智能驾驶汽车、智慧建筑等。该节点获取数据包含两个必要的步骤,其一是发起请求,其二是支出共享币,然后获得相应的数据。
(3) 区块链服务器由3 个服务器组成,账户服务器主要用于发行共享币,同时实时更新物联网各个节点的账户余额信息;交易服务器主要用于接收和相应来自各个物联网节点的数据共享申请,并为数据需求节点提供数据;共识服务器负责维护区块链账本的一致性。
(4) 云服务器用于存储数据,为了保证数据的安全性和隐私性,采用对称密钥对数据进行加密处理,将数据以密文形式保存在云端。在数据需求节点请求访问数据时,需要验证授权令牌,验证不通过则禁止访问,从而保证数据安全;验证通过后,使用对称密钥进行解密,将密文变成明文,并发送给相应的数据需求节点[2]。
基于区块链的5G 物联网需要经过系统初始化、更新节点状态、数据交易等步骤实现数据共享,具体流程如图3 所示。
图3 数据共享流程
所有参与数据共享的物联网节点,必须提前完成注册成为合法节点,从源头上保证数据的来源可靠、内容真实。注册后可以取得证书、公私钥对和钱包地址,并生成包含由节点身份、证书、公私钥对、钱包地址4 个核心因素构成的映射列表,将该列表存储到账户服务器中。
为提高响应速度,在每次进行数据交易前区块链服务者会获取节点当前的状态信息,同时根据数据使用要求判断当前节点的属性,即属于数据提供节点还是数据需求节点,并更新节点状态。
当物联网中的某个节点有数据需求时,首先向交易服务器发出一个申请,该申请信息中至少要包含5个要素,分别是证书、公钥、钱包地址、数据需求、地理位置。请求得到响应后,检索满足要求的数据,寻找匹配的节点。匹配成功后,准备进行数据交易。
在交易前数据已经准备完毕,只需要数据需求节点支付相应数量的共享币,即可将准备好的数据发送出去。
已经完成的数据交易并不能直接上链,而是暂存在交易池中。此时系统会验证钱包内是否存入共享币,如果未存入或者存入数额不够,则数据交易中止;验证通过后,数据允许打包上链。区块的构建过程如图4 所示。
图4 区块的构建过程
数据需求节点将授权令牌发送给云服务器,云服务器会验证令牌签名,如果验证不通过则拒绝数据访问请求;如果验证通过则按照数据需求节点地址,掀起发送储存在云服务器的加密数据。这样就能避免在数据传输过程中被第三方窃取,从而维护了数据的隐私和安全。数据需求节点在成功接收数据后,使用与数据提供节点配对的私钥进行解密,得到相应的明文数据。数据需求写点利用明文数据的哈希值与原来加密数据的哈希值做对比,两者一致则说明该数据完整[3]。
闪电网络(Lightning Network)最早是应用于比特币系统的一种支付通道,其特点是在现有的区块链以外建立起独立的交易通道,从而达到降低交易延时的效果[4]。为了进一步增强闪电网络的交易效率,可采取多通道拓展方法,其原理如图5 所示。
图5 闪电网络多通道扩展示意
如图5 所示,假设在用户Bob 和Carol 之间、Alice和Bob 之间均建立了支付通道。要想在Alice 和Carol之间完成交易,可以让Bob 作为本次交易的中间人,先由Alice 转账给Bob,然后再由Bob 转账给Carol。在基于区块链的5G 物联网中,Bob 相当于一个路由节点。为了确保Bob 能够在规定时间内转账给Carol,引入了一个哈希时间锁定合约机制。作为交易的对象,Carol 会挑选随机密文并通过运算得到其哈希值(Hash),然后将该值交给交易的另一方Alice。此时,Alice 会构建一笔加锁的转账与Bob 建立交易,Bob 需要从Carol 那里拿到密文才能解锁,如果在规定时间内未能解锁,这笔钱将会退回到Alice 的账户。通过上述方式保障了Alice 与Carol 之间的交易能够安全完成。
从实际情况来看,基于区块链的5G 物联网数据共享场景下,用户之间采用“点对点”的数据共享模式;同时,绝大多数用户之间的交易属于小额交易,并且对实时提现的需求度并不高。基于以上特点,本文提出了一种基于闪电网络的链下交易方案。其核心思想是利用序列到期可撤销合约(RSMC)和哈希时间锁定合约(HTLC)完成链下交易[5]。
RSMC 可以看作是在任意两个或多个数据共享节点之间构建微支付通道。交易双方提前在该通道内存入一部分资金,正式交易后共同核验资金分配方案,在确认信息无误后确认电子签名,然后完成交易;在提取资金时,将盖有电子签名的资金分配方案写入区块链中并进行确认,如果确认不通过则无法提取资金,从而保障用户资金的安全;在确认通过后,用户可以顺利提现。基于RSMC 的交易过程中,除了提现需要使用到区块链外,其他的环节均不需要上链,这样就能大幅度地减少区块链的请求次数。
交易双方签署的资金分配方案本质上属于一种具有时效性的智能合约,即HTLC。一方完成转账操作后,转账资金并不是直接进入另一方的账户,而是被暂时冻结,同时生成唯一的哈希值;在约定期限内,接收方提供另一个哈希值,两者配对完毕后可以将资金解冻,然后转入到接收方的账户中。
基于闪电网络的链下交易模型如图6 所示。
图6 基于闪电网络的链下交易模型
基于闪电网络的链下交易流程如下:
(1) 获取节点信息。闪电网络需要从两种节点获取IP 地址、端口号等基本信息。
(2) 创建支付通道。利用步骤(1)中获取的信息建立支付通道,由于交易在区块链下完成,从而简化了交易流程。在创建支付通道时,数据需求节点根据提供的钱包地址,存入一定数额的资金,并将资金存储到资金池中,利用资金池中的一部分资金创建微支付通道。
(3) 完成支付。在闪电网络的接受测发起支付申请,数据提供节点根据该申请产生一个接收单据并发送给数据需求节点。在两个节点之间提供一个支付路由,并限定支付时间,在规定时间内完成支付。
(4) 资金提现。数据提供节点将更新后的资金分配方案写入区块链中,在区块生效后可以通过数据提供节点提取资金。
基于区块链的5G 物联网数据共享技术,利用了区块链支持不可信环境下多方信任交互的特点,让陌生节点之间可以安全、高效地减小“点对点”的信息传递,为数据共享奠定了扎实的基础。同时,将闪电网络机制应用到5G 物联网数据共享中,弥补了区块链交易处理速度慢、可扩展性差等短板,进一步提高了5G物联网数据共享技术的实用性。