我院师生参加中国数据库学术会议(NDBC 2019)之区块链方向报道

发布时间:2019-10-15浏览量:156

2019年10月11日-10月13日,第36届CCF中国数据库学术会议(NDBC)2019在济南市山东大学中心校区召开,我院多名师生参加了这次会议。本届大会主要关注数据库技术所面临的新的挑战问题和研究方向,着力反映我国数据库技术研究的最新进展,为数据库研究人员和数据库开发和应用相关企业搭建交流平台。

1571149801270036680.png

图1 NDBC2019开幕式

此次会议中来自区块链实验室的蔡磊同学在软件学报分论坛报告了《面向区块链的高效物化视图维护与可信查询》(作者:蔡磊,朱燕超,郭庆兴,张召,金澈清),该论文获得NDBC2019萨师煊优秀学生论文奖。

1571149802400002568.png

图2 蔡磊同学(左三)获得萨师煊优秀学生论文奖

1571149801272034824.png

图3 蔡磊同学在做报告

面对当前区块链系统存在的查询响应慢的问题,蔡磊等人的工作中提出在区块链系统中建立物化视图以提升查询的性能。与关系数据库有所不同,在区块链上建立、维护物化视图将面临以下三个挑战: 首先,如何选择物化视图的写入时机。区块链的写入性能受到分布式共识、智能合约执行限制,而物化视图的维护开销对系统的性能带来额外影响。其次,如何以区块为单位维护视图。区块是区块链的基本数据追加单位,各区块包含多种类型的交易,对于一个区块可能需要同时维护多个视图。最后,如何确保查询结果的可信性。将物化视图保存在本地会面临数据被篡改的风险,需要实施相应措施来确保查询结果可信。

针对以上挑战,蔡磊等人的工作中提出将视图维护和共识过程并行执行以降低物化视图对系统的影响。然后,提出以区块为单位的批量视图维护方法,该方法支持闲时维护和按需维护相结合的维护策略以快速响应查询。最后,提出一种基于默克尔树的查询结果验证方法。该方法在视图维护过程中构造默克尔树,当查询使用物化视图时,系统建立新的默克尔树并与预先保存的默克尔树根进行比较。

1571149801291073347.png

图4 视图维护过程


1571149801459098806.png

图5 张召副教授做特邀报告

大会第二日,数据学院金澈清教授主持分论坛——区块链数据管理,其中来自区块链实验室的张召老师报告了她们的最新研究。现有的区块链系统存在存储容量受单节点限制和交易吞吐率低等局限性。在多方参与、互不可信的分布式环境下,为了满足现代企业对区块链系统高吞吐的需求,张召老师从以下三个方面报告了她们的研究成果:

1、智能合约并发执行以提升合约执行效率。区块链中智能合约并发执行具有诸多难点:首先,区块链网络中存在拜占庭错误,智能合约如果并行执行则所有节点可能会重复执行多次。其次,智能合约并发执行的结果是不确定的,数据库中可串行化的协议不能满足要求。此外,对于图灵完备的智能合约语言,不能预知所访问数据项的冲突。

针对上述难点,提出一种高效的智能合约并发执行机制。该方法基于OCC的协议,同时提高miner和validator性能;另外,该方法使用中等粒度的调度日志,提出一个事务依赖图划分算法在保持高效回放的同时,大大降低了传输开销;最后,为validator提出确定性的并发协议,结合调度日志,validator可以确定性地无冲突地并发重放所有的事务。

1571149802064012708.png

图6 两阶段智能合约并行执行

2、 数据分片存储以减小存储开销。现有的区块链系统在存储方面存在以下局限性:由于数据全复制分布,区块链系统的存储能力无法像分布式数据库那样随着节点的增加而增加。其次,由于拜占庭节点的存在,分片存储的数据可能被恶意篡改,这使得传统的分布式数据库中水平分片、垂直分片等方案均无法直接使用。另外一方面,相比于每个节点保存完整备份,数据分片后,数据查询必然会造成额外的网络开销,因此需要设计高效的存储方案来降低分片对系统查询性能的影响。

面对区块链系统存储的问题,提出 BFT协议下基于纠删码的分片机制。该方法将每2f+1个区块进行Reed-Solomon(RS)编码,产生f个校验块,则共计3f+1个块随机分布于3f+1个节点,各个节点存储不同的块。根据BFT假设,网络中存在超过2f+1个诚实节点,因此数据可通过2f+1个诚实节点来恢复。这种方法的磁盘利用率为n/(n+m),相对于多副本的方法具有冗余度低、磁盘利用率高的优点。

此方法的分片机制如下:首先,所有节点依公钥进行排列(初始化时完成);然后,各节点独立运行纠删码编码算法,每个节点保存自己公钥对应下标的区块,并保存其他区块的hash值;最后,各节点删除无关的数据块。写区块时,客户端发送交易至各节点,交易被打包入区块,经PBFT共识后写入BFT-Store,BFT-Store经编码,写入到各节点。当客户端发起读请求至某一节点,节点内部通过网络读取数据,经解码后返回给客户端。

1571149802113083071.png

图7 分片引擎

3、高效的分片架构以提升系统吞吐。分片是在架构层面提高区块链吞吐率的手段之一,但在联盟链中进行分片时有以下困难:首先,联盟链中节点较少,公链中基于随机的分片方法并不适用。其次,区块链的可扩展性受单节点存储的限制,因此必须进行存储分片。此外,分片要确保跨片交易的原子性和安全性,因此需要设计跨片智能合约执行和提交协议。

针对以上挑战,报告提出面向联盟链的高效分片技术。具有分片机制的系统架构如下图所示,该分片机制具有以下特点:解耦合多次分片保证了联盟链中的分片安全,具有支持分片裂变的可扩展存储引擎,并且主链协调的2PC保证了跨片交易的活性和安全性。

1571149802331099836.png

图8 分片方案

张召老师与蔡磊同学报告的相关技术皆基于区块链实验室自主研发的区块链数据库平台师大链。师大链具有交易吞吐量高、查询丰富、查询高效的特点,因此它可适用于物流管理、供应链管理、物品溯源等诸多场景。师大链1.0版本目前已稳定并使用,1.0版本主要解决了区块链中查询简单、查询响应慢的问题。目前,师大链已经运用在数据学院的台账系统中。本系统主要分为资产管理、组织管理和权限管理三个模块。在资产管理中,包含了学生设备管理、津贴管理、差旅管理和统计分析等功能。目前,学生设备信息已全部上链。设备流转流程被抽象为智能合约部署在师大链上,通过师大链提供的JDBC接口调用。同时为了适配师大链增量加的模型,使用版本号辅助增删改查并通过乐观锁进行并发控制。师大链在本系统中扮演了信任的桥梁,连接起了学院老师和设备处,为日后探索更广阔的不同部门间多方参与的场景打下了基础。同时也因其具有的防篡改、可追溯的特性,为设备流转和溯源提供了方便。

本次NDBC会议于10月13日下午5:30完美闭幕,闭幕式中组委会为优秀论文、优秀学生论文、最佳Demo获奖人员颁发奖状,最后组委会以及相关工作人员合影留念。闭幕式中宣布NDBC2020将在武汉的华中科技大学举行,届时希望大家踊跃投稿。


摄影 | 蔡磊

文案 | 郭庆兴

排版 | 夏小雅