首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

盘点:区块链数据管理必读文献

毋庸置疑,2018年最热的词是区块链。本质上,区块链是一种去中心化的P2P系统,通过运用数据加密、时间戳、分布式共识和经济激励等手段,在节点无需互相信任的分布式系统中实现基于去中心化信用的点对点交易、协调与协作,从而为解决中心化机构普遍存在的高成本、低效率和数据存储不安全等问题提供解决方案。[1]

近年来,以比特币为代表的加密货币系统成为区块链技术应用的典型代表。但是,比特币不等于区块链。区块链中还涉及很多技术问题。本文将从数据管理的视角,盘点区块链数据管理领域内的重要文献并进行导读。

一、 区块链简介

区块链技术起源于2008年由化名为“中本聪”的学者在密码学邮件组发表的奠基性论文《比特币: 一种点对点电子现金系统》[2],目前尚未形成行业公认的区块链定义。狭义来讲,区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构,并以密码学方式保证的不可篡改和不可伪造的去中心化共享账本,能够安全存储简单的、有先后关系的、能在系统内验证的数据。广义的区块链技术则是利用加密链式区块结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码 (智能合约) 来编程和操作数据的一种全新的去中心化基础架构与分布式计算范式。

区块链按照其去中心化程度可分为三种:公有区块链、联盟区块链和私有区块链。公有区块链是完全去中心化的区块链,分布式系统的任何节点均可参与链上数据的读写、验证和共识过程,并根据其PoW或PoS贡献获得相应的经济激励,比特币是典型的公有区块链。联盟区块链则是部分去中心化 (或称多中心化) 的区块链,适用于多个实体构成的组织或联盟,其共识过程受到预定义的一组节点控制,例如生成区块需要获得10个预选的共识节点中的5个节点确认。私有区块链则是完全中心化的区块链,适用于特定机构的内部数据管理与审计等,其写入权限由中心机构控制,而读取权限可视需求有选择性地对外开放。

[1]中将区块链划分为五层——数据层、网络层、共识层、激励层、合约层。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约, 是区块链可编程特性的基础。

区块链目前面临着四大问题尚未完全解决——安全问题、效率问题、资源问题、博弈问题。[1]

二、区块链数据管理的架构

由于区块链系统本质上是一种P2P系统,我们可以参考P2P数据管理的方式给出区块链数据管理的架构。

[3]中提出了局部关系模型(LRM)解决由于P2P计算引入特殊数据库而产生的部分问题。同时,在文中总结了LRM的形式化定义,提出了原型实现的架构,并讨论了一些开放式研究问题。

LRM模型中,为了与其他类型的分布式数据库区分开,强调了P2P数据库引入的两个主要要求——首先,数据库之间的映射完全是局部的,没有全局模式。为了支持这一点,[3]中提出了一个用于表达节点之间映射关系的数据模型。其次,这组对象是高度动态的,需要半自动化解决以前被认为是时间设计的问题,比如建立配置和映射。这些要求导致了各种令人感兴趣的研究难题,这些问题使当今的多数据库解决方案超越了当前的局限。

除了LRM模型外,Piazza节点数据管理项目也旨在解决P2P系统中的数据管理问题。Piazza可以以分布式和可扩展的方式共享异构数据。Piazza假定参与者有兴趣共享数据,并且愿意在他们的模式之间定义成对的映射。用户在其首选模式上制定查询,并且查询应答系统递归地扩展任何与查询相关的映射,从其他对等方检索数据。[4]中简要概述了Piazza项目,包括映射语言和查询重构算法的工作,协助用户定义映射、索引和强制对共享数据进行访问控制。

三、面向区块链的事务处理技术

[5]中对比了传统分布式数据库系统的全局事务和PDMS(Peer-to-Peer Data Management System,P2P数据管理系统)事务的提交、并发控制、恢复技术。在P2P环境中,数据模式、各节点的计算能力、网络结构及带宽都存在很大差异,而网络中的任一节点也可以自由加入或离开,网络具有波动性;网络节点间的关系也是动态的,精确定位或推断资源的位置也很困难,这种环境下的数据放置策略也是一个很大的挑战,因为这涉及数据的一致性和可用性问题。

[5]中提出了一些解决方案,以解决P2P系统中的事务处理问题,以事务的提交为例,保证事务原子性是传统提交协议的正确性标准,传统事务的原子性是指一个事务所包含的所有操作要么全做,要么全不做;对分布式事务,原子性是指事务的所有子事务要么全部提交,要么全部夭折。

而在P2P环境下,一个子事务的夭折可能不会导致全局事务的夭折。例如,对只读事务A,若有另一个可完成同样功能的事务B,那么即使A夭折,只要B可以提交,则事务将不必夭折。所以[5]中提出了在P2P环境下,对事务原子性放宽的要求。

四、区块链的安全性问题及解决方案

安全性威胁是区块链迄今为止所面临的最重要的问题。其中,基于PoW共识过程的区块链主要面临的是51% 攻击问题,即节点通过掌握全网超过 51% 的算力就有能力成功篡改和伪造区块链数据。 以比特币为例,据统计中国大型矿池的算力已占全网总算力的 60 % 以上,理论上这些矿池可以通过合作实施 51 % 攻击,从而实现比特币的双重支付。虽然实际系统中为掌握全网 51 % 算力所需的成本投入远超成功实施攻击后的收益,但 51 % 攻击的安全性威胁始终存在。基于 PoS 共识过程在一定程度上解决了 51 % 攻击问题,但同时也引入了区块分叉时的N@S (Nothing at stake) 攻击问题。

[6]中提出了对核心密码学原语的改进方案,通过严格的语义安全定义来形式化安全概念。

五、 区块链性能评价

区块链的系统架构、共识算法、协议参数都会对区块链的性能产生影响。具体影响原因及结果可参见[7]。

由于不同区块链的性能不尽相同,我们需要选择适合当前系统的区块链技术,则势必要对不同的区块链进行性能评估。[8]中介绍了私有区块链的性能评估框架:BLOCKBENCH。BLOCKBENCH是第一个私有区块链的基准测试框架,提供了用于整体性能评估的宏观评价基准和用于每层性能评估的微观评价基准,评估结果可以帮助我们更深入地理解不同的系统设计选择。

[8]对三种主流的私有区块链——以太坊、Parity、超级账本进行了评价,我们发现,这三种私有区块链的性能并没有分布式数据库的性能理想。为此,[8]中参考分布式数据库的设计给出了私有区块链的设计改进意见——解耦各层并分别优化、使用新的硬件原语、分区、支持声明性的语言。这些改进方案在[9、10、11、12]中均有实践。

针对公有区块链,[13]中提出了一种基于Docker的容器化公有区块链性能评估框架。在[14]中给出了公有区块链性能改进的链上解决方案,在[15]中给出了链下解决方案。

六、区块链数据管理系统例析

由于区块链技术的去中心化、不可篡改、共识机制等特点,在身份认证、隐私保护等方面,区块链成为了重要的技术。下面给出基于区块链的三种重要系统——身份管理系统、隐私保护系统、数据管理系统的文献导读。

数据管理系统是其他两个系统的底层基础,无论是身份管理还是隐私保护,都与数据存储读取相关。由于区块链各个节点需要存储和读取大量历史操作数据,这些数据如何以一种高效且安全的方式存储成为了一个重要的课题。数据管理系统利用区块链技术进行数据存储,解决了传统数据库中心化、易被攻击篡改的问题,同时由于区块链本身数据存储的方式,因此出现了必须解决的一些问题,[16]中对ProvChain架构进行了介绍。ProvChain用于解决云上的数据溯源问题,而数据溯源问题对于云计算系统管理员调试系统,防止网络的入侵起着至关重要的作用。

由于区块链本身的特点,作为身份管理系统和隐私保护系统的重要技术也就不足为奇了。区块链技术能够为用户提供一个公认的、唯一的、真实的身份,甚至在政策允许的情况下,能够替代身份证、护照等身份认证实体工具。[17]中展示了大量正在进行、已经完成或已经夭折的基于区块链的身份管理系统,可以帮助我们概要了解区块链在身份管理当中的应用。

目前区块链技术在身份管理系统、加密货币等系统的实际应用中,大多数系统存在隐私保护的问题,即用户在现实中的身份与区块链中的身份存在一个映射关系,该映射关系可能导致用户身份的泄露。隐私保护系统旨在解决区块链技术实际应用中的隐私问题,即在与其他用户分享用户相关敏感数据时,不会映射到身份,同时能够验证该用户身份符合筛选条件。[18]通过医疗数据安全的案例介绍了HDG架构,用于保障医疗数据安全。[19]中介绍了用于区块链身份隐私保护的ChainAnchor架构,用于确保区块链系统中的真实匿名性。

七、 区块链数据管理系统实践

[20]中提出了一个区块链数据分析通用框架的设计实现。该框架无缝支持比特币和以太坊的数据分析(这两种是目前最重要的加密货币)。这样的框架允许我们将相关的区块链数据与来自其他数据源的数据进行整合,并将其组织到数据库中,无论是SQL还是NoSQL。文中通过一系列重要用例来说明方法的显著特点,这些特征可以让将该框架与其他相关工作进行比较,并评估数据库选择对可扩展性的影响。

数据密集型应用程序导致对成本效益型资源共享方法的需求增加。然而,为大量用户提供高效的广泛分布式数据存在着相当大的挑战。大多数现有的网格系统都是集中管理的,因此阻碍了其可扩展的扩展。[21]引入了一个新的分布式、自适应和可伸缩的中间件,它提供对数据网格中数据的透明访问。文中的方法依赖动态技术,使副本创建适应不断变化的网络连接和用户行为。根据[21]中仿真和部署中间件的结果表明,该解决方案比静态方法具有更好的数据访问性能。

参考文献列表

[1] 袁勇, 王飞跃. 区块链技术发展现状与展望[J]. 自动化学报, 2016, 42(4): 481-494.

[2] Nakamoto S. Bitcoin: A peer-to-peer electronic cash system[J]. 2008.

[3] Bernstein P A, Giunchiglia F, Kementsietsidis A, et al. Data management for peer-to-peer computing: A vision[R]. University of Trento, 2002.

[4] Tatarinov I, Ives Z, Madhavan J, et al. The Piazza peer data management project[J]. ACM Sigmod Record, 2003, 32(3): 47-52.

[5] 周维. P2P 数据管理系统中的事务技术研究[D]. 中南大学, 2008.

[6] Halpin H, Piekarska M. Introduction to Security and Privacy on the Blockchain[C]//Security and Privacy Workshops (EuroS&PW), 2017 IEEE European Symposium on. IEEE, 2017: 1-3.

[7] Chen C, Qi Z, Liu Y, et al. Using Virtualization for Blockchain Testing[C]//International Conference on Smart Computing and Communication. Springer, Cham, 2017: 289-299.

[8] Dinh T T A, Wang J, Chen G, et al. BLOCKBENCH: A Framework for Analyzing Private Blockchains[C]//Proceedings of the 2017 ACM International Conference on Management of Data. ACM, 2017: 1085-1100.

[9] Goodman L M. Tezos: A Self-Amending Crypto-Ledger Position Paper[J]. 2014.

[10] Dinh A, Wang J, Wang S, et al. UStore: a distributed storage with rich semantics[J]. arXiv preprint arXiv:1702.02799, 2017.

[11] Tan K L, Cai Q, Ooi B C, et al. In-memory databases: Challenges and opportunities from software and hardware perspectives[J]. ACM SIGMOD Record, 2015, 44(2): 35-40.

[12] Brown R G, Carlyle J, Grigg I, et al. Corda: An Introduction[J]. R3 CEV, August, 2016.

[13] Yue X, Wang H, Jin D, et al. Healthcare data gateways: found healthcare intelligence on blockchain with novel privacy risk control[J]. Journal of medical systems, 2016, 40(10): 218.

[14] Back A, Corallo M, Dashjr L, et al. Enabling blockchain innovations with pegged sidechains[J]. URL: http://www. opensciencereview. com/papers/123/enablingblockchain-innovations-with-pegged-sidechains, 2014.

[15] Bano S, Al-Bassam M, Danezis G. The Road to Scalable Blockchain Designs[J]. USENIX; login: magazine, 2017.

[16] Liang X, Shetty S, Tosh D, et al. Provchain: A blockchain-based data provenance architecture in cloud environment with enhanced privacy and availability[C]//Proceedings of the 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. IEEE Press, 2017: 468-477.

[17] Jacobovitz O. Blockchain for identity management[J]. 2016.

[18] Yue X, Wang H, Jin D, et al. Healthcare data gateways: found healthcare intelligence on blockchain with novel privacy risk control[J]. Journal of medical systems, 2016, 40(10): 218.

[19] Hardjono T, Smith N, Pentland A S. Anonymous Identities for Permissioned Blockchains[J]. 2016.

[20] Bartoletti M, Bracciali A, Lande S, et al. A general framework for blockchain analytics[J]. arXiv preprint arXiv:1707.01021, 2017.

[21] Lamehamedi H, Szymanski B K. Decentralized data management framework for data grids[J]. Future Generation Computer Systems, 2007, 23(1): 109-115.

“大数据与数据科学家”公众号

主编:王宏志

特邀副主编:朱劼

副主编:丁小欧

责任编辑:齐志鑫,宋扬,万晓珑、魏龑,张荣恩

编辑: 陶颖安

-精彩内容,记得分享到朋友圈-

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180322G13UGZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券