Page 298 - 《软件学报》2020年第9期
P. 298
张志威 等:区块链的数据管理技术综述 2919
链下网络的另一个问题是再平衡问题.在链下支付网络中,用户需先存于一定的金额于支付通道中,并且该
金额只能用于该支付通道中的两个用户之间的支付.假定用户 A,B,C 这 3 个用户两两之间均有支付通道.在某一
时刻,假定三者的金额状态为 AB 通道之间 A 有 200 元,AC 通道之间 C 有 200 元.则当 A 想转账 50 元于 C 时,
由于 AC 之间的支付通道中 A 的所剩金额为 0,因而,A 不能通过 AC 之间的支付通道转账于 C.一个可行的通路
是 A 通过 AB 以及 BC 之间的通道转账于 C.但是实际上,用户 A 的账户金额含有 AB 之间的 200 元.金额上 A 足
够支付 AC 间的转账金额.因此,支付网络中支付通道的不平衡导致支付需要访问更多的节点,才能完成支付.
为了解决再平衡的问题,文献[117]提出了 Revive系统.该文献作者构建了支付网络图.该图中的一个节点为
一个用户,节点与节点的边为建立的支付通道.利用该图结构,一个支付网络的支付能力为图中所有支付通道可
支付的金额总和.在这种情况下,最大化支付网络的支付能力可以建模为线性规划问题.但是,直接求解线性规
划问题是 NP 难的问题.因此在 Revive 中,一个支付网络的再平衡过程可以首先找到图中一个环形的结构,并在
环形结构中的所有节点转移相同的金额.由于是环形结构,该过程不会减少任何用户的账户金额.基于此,作者
设计了基于环形结构的再平衡算法,并提出了相应的启发式优化算法.
6 区块链数据管理的未来研究趋势
区块链作为近几年被广泛讨论的技术,在数据管理方面尚有许多值得深入探索的问题.在本文的最后,我们
提出一些值得进一步挖掘的针对数据管理的研究问题,希望对本领域其他研究者有所启发.
• 区块链内数据的隐私保护技术
在一个典型的区块链中,所有的数据以及事务需要获得所有节点的共识,因此所有的数据均可被网络中的
节点访问.在这种情况下,需要研究数据隐私保护问题.文献[88]初步尝试了将部分数据存储于链上,而将敏感数
据存储于链下的方式.在这种情况下,需要人为地将数据分割为敏感数据与非敏感数据.对需要保护的敏感数
据,无法在区块链的环境下对其进行管理.因此,解决该类隐私保护问题,从数据管理的角度,其难点在于如何对
区块链中的数据进行访问控制.已有的针对数据库的访问控制方式对数据或者表设定访问权限.直接将其应用
于区块链中会导致每个区块的哈希值无法与所获得的数据对应,因而用户无法验证该链中的数据是否被篡改.
• 链间事务处理优化技术
现有的多数工作考虑单一区块链,并对单一区块链下的事务处理等问题提出了高效的算法.但是当一个事
务需要访问多个区块链时,会产生诸多问题,包括如何保证数据的一致性、高效的并发控制算法等.文献[72]考虑
了多链情况下的视图以及验证问题.现有的工作多考虑如何保证跨链事务一致性的问题.与单链相比,较少工作
考虑跨链事务处理的效率.在跨链事务的执行过程中,可能会对一条链的数据进行加锁等操作,这种操作将会影
响与该链相关的事务执行.因此,仅仅考虑单链的事务或者仅考虑跨链的事务都可能降低整个系统的吞吐量.对
链间事务处理效率问题的研究将着眼于:如何设计针对多链环境下的事务处理优化,以达到在保证一致性的同
时,提高吞吐量的目标.
• 面向智能合约的事务处理优化技术
区块链所部署的智能合约可以对数据进行添加、修改等操作.现有的工作往往将智能合约视为一个事务处
理.但是由于智能合约执行的复杂度并不一致,且一个智能合约可以调用其他智能合约,仅将一个智能合约视为
一个事务并不能完全衡量系统的性能优劣.因此,需要一个更适用于区块链的衡量标准,以比较不同区块链系统
的性能.该标准的难点在于,如何设计基本的语义以及如何将智能合约与智能合约的嵌套关系同时考虑在性能
衡量的指标中.
7 总 结
我们从区块链数据存储、区块链事务处理、区块链查询处理、区块链可扩展性等几个方面,对区块链环境
下的数据管理相关研究工作进行了较为系统的综述,分析了各种区块链数据管理方法的优点与不足,最后介绍
了区块链的未来研究趋势.从数据管理的角度,区块链的现有系统与方法仍然有非常多的工作需要进行.并且在