Page 290 - 《软件学报》2020年第9期
P. 290

张志威  等:区块链的数据管理技术综述                                                              2911


         3.1   确保原子性的处理技术
             文献[72]研究多链之间事务的处理过程,以保证其原子性.当一个事务需要在不同的链上进行读写操作时,
         一个保证原子性的直接做法是:将多个链合并成一个链,进而使得所有的事务处理只需在一个链上进行.这种方
         式在不需要考虑数据隐私的情况下是可行的,但是实际中,用户或组织之间进行交易时,不希望自身内部的交易
         也被公开.换言之,当事务涉及多个链时,需要考虑每个链上单独的数据隐私问题,同时也要确保跨链操作的可
         信性.因而,文献[72]提出事务应存储在所有与其相关的链上.同时,跨链的事务应该保证原子性,即只能在所有相
         关的链上均执行操作,或者均不执行(即 abort).
             为了保证事务的原子性,文献[72]提出了两类方法.
             •   第 1 类方法需要区块链网络中存在额外的负责排序的节点.首先,所有的事务均广播其签名,从而确保
                发送消息的真实性;之后,所有的区块链针对其自身所需要处理的事务,形成自身的事务处理顺序;在形
                成顺序之后,区块链的节点将需要参与跨链操作的事务以及该事务在本地区块链事务顺序中的前一
                个事务的哈希值,合并为一个消息进行广播;对于负责排序的节点,其获得的消息包括跨链事务以及跨
                链事务在各个区块链中前一个执行事务的哈希;排序节点根据获得的消息,确定跨链事务是否执行以
                及执行顺序;
             •   第 2 类方法没有相应的排序节点,但是各个区块链有部分节点参与跨链事务的排序.具体而言,与第 1
                种方法类似,首先,各个区块链生成独自的事务执行顺序;在形成顺序之后,区块链的节点同样将需要参
                与跨链操作的事务以及该事务在本地区块链事务顺序中的前一个事务的哈希值,合并为一个消息进
                行广播.与第 1 种方法不同,该广播发送到所有区块链的各个参与排序的节点中.参与排序的节点利用
                PBFT 或 Paxo 等基于投票的共识协议,确定跨链事务产生的顺序,并将其广播到所有链的节点.各个区
                块链依据产生的顺序执行事务.
             文献[72]利用额外的节点或已有区块链网络中的部分节点,负责事务中所有操作的执行顺序问题,以保证
         事务的原子性.与之不同,文献[73]考虑利用锁机制实现跨链事务的原子性.当需要跨链事务时,首先,区块链 A 的
         用户利用智能合约对其资产进行加锁操作,使其不能被其他事务使用.同时,利用哈希函数 h=H(s)产生签名并将
         签名与资产写入到智能合约中.该智能合约中需添加条件为:如果另一方可以提供 s′,使得 h=H(s′),则向另一方
         转账 A 中被锁定的资产.另一方可通过查看智能合约,确认合约的条件以及相应的 h 值.之后,在自身的区块链部
         署智能合约.合约的框架为:如果 A 提供 S,使得 h=H(S),则向 A 转账.文献[73]利用以上的基于哈希函数锁机制,
         实现了跨链交易的原子性.
             文献[73]的方法可以保证跨链事务的原子性,但是其要求所有的参与者需先选举一个领导者,并由领导者
         串行地部署相应的智能合约,而串行的方式导致部署智能合约的开销很大.文献[74]针对文献[73]的问题,研究
         如何在多条区块链并发地部署智能合约,同时保证跨链事务的原子性.其核心思想在于:通过智能合约,确保当
         事务的原子性没有被满足时,相应的事务被终止并且回滚所有已经执行的操作.例如 A 持有比特币与 B 持有的
         以太币进行兑换,只有当 A,B 均获得对方的货币时候,整个事务才可以结束.当 A 转账给 B,但是 B 没有转回相应
         的金额时,则该事务在被终止的同时,需确保 A 拿回自己的那一部分金额.在文献[74]中,作者假定每一组交换类
         型的事务中有一个发起者,并且有一组节点负责各个区块链间的共识.该组节点被称为观察网络.事务的发起者
         负责部署智能合约到该组节点中.首先,多组交换的事务可以建模为一个图.图中的节点表示一个账户,边表示
         账户间的交易.一个合法的交换事务需要满足的条件为:该事务所对应的图,在删掉表示发起者的节点之后,余
         下的图不可以存在环.发起者将事务所对应的图结构签名并广播.其余参与交易的账户验证该图结构,并部署相
         应的智能合约在自身的区块链中.同时,发起者部署一个智能合约到观察网络中.该智能合约的触发条件为:当
         所有相应的账户均执行对应的智能合约后,确认交易;否则,则将所有智能合约锁住的资产回退到相应的账户
         中.在文献[74]中,观察者网络既可以是可信的节点,也可以是非可信的环境.
   285   286   287   288   289   290   291   292   293   294   295