区块链与分享型数据库
钱卫宁, 金澈清, 邵奇峰, 周傲英
华东师范大学数据科学与工程学院,上海 200062
摘要:区块链可以实现无中心、高可信的账本管理,成功支撑了比特币等金融领域应用发展。区块链的本质是在不完全可信环境中的可信数据管理,它具有去中心化、防篡改、强一致和完整性等特性。同时,区块链也存在着数据管理功能弱、性能低等问题。通过对比区块链和传统数据管理技术,分析3个典型的金融领域以外的区块链应用,探讨区块链上新的研究问题,并讨论面向特定领域应用,研发分享型数据库系统(即支持核心业务,支撑分享经济业务模式,甚至本身也是以分享经济的方式实现的数据库)的必要性。
关键词:区块链 ; 分享型数据库 ; 数据管理
论文引用格式:
钱卫宁, 金澈清, 邵奇峰, 周傲英. 区块链与分享型数据库.大数据[J], 2018, 4(1):36-45
QIAN W N, JIN C Q, SHAO Q F, ZHOU A Y. Blockchain and sharing database.Big Data Research[J], 2018, 4(1): 36-45
1 区块链
自2008年10月31日署名为“中本聪”的比特币(Bitcoin)文章)发布以来,加密数字货币已经展示了构建一个大型、去中心的分布式账本的可能性。2014年10月22日, 在大英图书馆举办 的盛宝银行研讨会中,多位发言人都认为在比特币风潮的背后,区块链(blockchain)是真正有趣的技术。几乎同时,相对于比特币的“区块链1.0”技术,被认为是“区块链2.0”技术代表的以太坊项目发布,而Hyperledger项目也随后在2015年发布。时至今日,区块链已成为一大批应用的支撑技术。
虽然区块链技术发展迅速,区块链系统、平台、应用层出不穷,但是它们大都具备以下5个特点。
首先,它们都具有链式结构,如图1所示。数据或交易信息被组织成区块;一系列区块构成链;通过对前趋区块进行数字签名,并将签名放入后继区块,构造、维护区块间的链接关系。区块内交易信息的顺序组织以及区块间的链式结构能够准确记录交易流水,实现账本的功能。
图1 区块链的链式结构
其次,区块链是防篡改的。区块内常用Merkle-tree或其变种生成区块的摘要信息,用于区块内容正确性校验,而因为前趋区块的签名是后继区块的一部分,所以一个区块其实包含了自链首开始的全部信息的摘要,可用于之前信息是否篡改的校验。换言之,要修改一个已记录在区块链中的交易,需要修改其所在区块后的所有区块内容,这往往需要极大的计算量或系统中大量节点的配合,因此通常难以实现,从而实现了防篡改。
第三,区块链的存储是分布式、去中心的,不依赖于单一中心节点。区块链被多副本地存放在多个节点上。区块链的更新需保持副本的同步更新。根据需要,节点间的分布式共识协议可以采用工作量证明(proof of work,POW)、实用拜占庭容错(practical Byzantine fault tolerance, PBFT)、拜占庭容错Paxos或权益证明(proof of stake,POS)等。虽然去中心的架构摆脱了单点故障的问题,提升了系统的顽健性和防篡改的能力,但同时分布式共识协议也导致了较大的数据修改时延和很低的系统吞吐率。
第四,虽然支撑比特币的区块链只能支持简单的交易记录和查询,但是新的区块链平台大都支持智能合约。智能合约指“以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议”。它常用图灵完备的通用编程语言或专用语言实现,用以定义区块链平台中复杂的商业逻辑。错误的智能合约实现可能引发严重的系统安全问题。
第五,当前区块链技术和系统的另一个重要特点是它们常和金融应用(如加密货币、分布式账本、单据管理、首次代币发售和众筹、慈善紧密关联。区块链技术以分布式、点对点的方式,提供了可信的账本管理功能。
目前已有大量工作探索区块链的基础理论、实现方法、应用模型。本文试图从数据管理的角度梳理区块链技术,并从3个区块链应用出发,讨论区块链技术研究的需求与挑战。
2 数据管理的本质
在讨论区块链的数据管理问题之前,首先简要介绍数据管理的核心问题。
广义的数据管理包含数据的获取、存储、处理、利用等各个方面的问题。数据管理任务通常由 数据库管理系统(database management system,DBMS)和相关工具承担。自20世纪70年代关系数据库理论诞生以来, 关系数据库管理系统(relational database management system,RDBMS)由于其在各类数据管理应用,特别是“关键任务(missioncritical)”应用中表现出的良好易用性、通用性和性能,成为大量数据管理任务的首要甚至是唯一选择。伴随着RDBMS产业的壮大,数据库理论以及存储、索引、查询执行、查询优化、事务处理、并发控制等一系列数据库技术发展迅速。
数据管理的核心问题包括数据及其处理方法的建模、数据管理任务实施和管理、系统性能优化及其实现、系统的运维等多个方面。
2.1 数据模型抽象
数据模型的管理是数据管理的重要任务。数据模型包括数据结构、数据操作以及数据的完整性约束。正是由于提供了数据模型的抽象,数据管理系统才能服务于不同应用,以统一的形式实现数据的增、删、改、查功能。
应用最广的数据模型是关系模型(relational model)。它将集合论和数理逻辑作为理论基础,将被广泛接受和使用的SQL语言用于数据定义、数据操纵、数据控制和事务控制。SQL语言是声明型语言,与过程型的语言相比,简化了开发者编写数据库应用的过程。
由于关系数据库管理系统的巨大成功,很多时候,谈论数据管理时就是指采用RDBMS进行数据管理。实际数据管理系统中采用的数据模型常是关系模型的扩展,如 对象—关系模型(object-relational model),它在关系模型的基础上添加了用户定义类型(UDT)、用户定义函数(UDF)、触发器(trigger)等功能。
2.2 数据处理抽象
数据模型是对数据的抽象,而事务则是对数据处理流程的抽象。在RDBMS中,事务同样由SQL语言实现。事务需要满足事务语义,即“ACID”性质,指事务的原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。正是由于有了事务处理,数据管理系统才可以实现以记账和订票为代表的关键任务应用中的数据管理,在充分利用系统硬件资源的同时,实现正确且高效(低时延、高通量)的数据处理。
为了实现事务处理,DBMS提供了并发控制和恢复机制,前者主要用以保障事务的一致性和隔离性,而后者则主要保障原子性和持久性。DBMS中常需要维护数据在系统内多个副本之间的一致性,如多个存储节点之间或磁盘与缓存之间的一致性。这些副本存在于一个相对可信的系统环境内部,因此其一致性维护需求不同于区块链中分布式共识机制面对的需求。
在恢复机制中,常采用数据库日志记录对数据进行的操作和事务的提交、终止操作。数据库日志从形式上与区块链中顺序记录的交易流水类似。它们的不同点在于, DBMS中的日志存储介质是可信的,一般并不采用签名对整个日志序列进行防篡改保护。另外,DBMS中的日志通常只在数据库恢复时使用,而在很多区块链平台中,交易流水记录是唯一的数据,因此也是数据查询的对象。
DBMS提供多种形式的事务接口。存储过程是一种常用的事务形式,它是预先编写好的事务程序,存储于服务器,被客户端调用后执行,并在执行结束后将执行结果返回给客户端。
为了解决客户端用过程型语言编写的程序和数据库服务器声明型语言的集合数据访问之间的“阻抗失配(impedance mismatch)”问题,DBMS通常提供游标(cursor)功能,供客户端程序以逐行记录为单位与数据库服务器进行交互。
2.3 独立性与透明性
DBMS提供的接口是声明型的,其由系统自身实现。在实现时,系统提供了三层视图和两层映射,即视图(外模式)—概念模式(模式)—物理模式(内模式)三者之间的映射,如图2所示。这样,当数据的存储组织变化或应用需求变化时,只需要修改相应的模式映射关系,不用修改系统的其他部分,从而节约了系统和应用的开发和维护成本。
图2 数据管理的三层视图、两层映射
2.4 性能
提供数据管理独立性与透明性的同时, DBMS将应用开发者隔离在查询执行和事务执行的具体细节之外,承担了大部分的性能优化问题。而性能是DBMS数据管理的关键问题。最早的RDBMS——S ystem R的主要开发者之一Bruce Lindsay认为数据库世界最重要的事情就是系统性能。现代DBMS通过缓存、索引、查询执行、查询优化、并发控制等技术,实现查询和事务的计划优化和执行优化,如图3所示。近年来,随着大容量内存、高速网络、多核/众核处理机技术的快速进步,现代DBMS也常通过内存数据库、分布式数据存储、查询和事务的并行执行等技术提升系统性能。
图3 数据管理系统功能体系结构概览
2.5 工具与编程接口
除数据模式管理、查询和事务处理以外,DBMS的管理、运维工具也是数据管理中的重要方面。1998年图灵奖获得者Jim Gray认为,易用、易管理是数据管理系统要实现的重要目标。此外,随着近年来互联网技术的发展,应用的规模越来越大,涉及的子系统、数据源数目也逐步增加,因此数据集成也是数据管理的重要方面,需要专门的工具配合DBMS使用。
3 作为数据管理系统的区块链
从数据管理角度看,区块链是一个构建在对等网络上、采用链式存储的可信数据管理系统。将区块链与传统的数据管理系统进行对比,有助于发现区块链数据管理系统的基础理论、实现方法的新研究问题,也有助于为这种新的数据管理系统寻找新应用,为改造现有的技术和系统、适配新型应用提供启发。
3.1 技术对比
表1列举了区块链与传统RDBMS的主要相似点和区别。首先,两者都有顺序组织的链式结构,区别只在于其作用不同,区块链的链式结构就是数据的存储组织形式,而RDBMS的日志则主要用于数据恢复。区块链中并不单独存储数据库的当前状态,而数据库的快照是RDBMS中支撑索引、查询等优化技术的基础。
其次,RDBMS通常只提供一定程度的硬件容错,但并不支持防篡改。防篡改是区块链在对等网络中确保数据可信的最重要特性。
第三,区块链,特别是公有链,是完全去中心化的,构建于对等网络。即使是联盟链,虽然有些系统采用主链—支链的形式组织节点,但是区块链的各项实现机制都假设无中心节点存在。与之相反,传统数据管理系统都是强中心的,且认为中心节点是可信的。这直接导致了在确保数据一致性时,区块链系统采用的分布式共识算法通常只在分布式数据库管理系统中用以维护元数据。这是两者性能差异巨大的最主要原因。
第四,当前的主要区块链平台并不提供所管理数据的模式管理。因此数据访问方式也相应地只提供过程型的应用程序编程接口(application programming interface,AP I)。缺乏声明型的接口为复杂数据管理任务应用的开发制造了困难,也成了区块链系统与现有数据管理系统交互和衔接的屏障。
此外,智能合约与RDBMS中的触发器和存储过程具有相似性。值得注意的是,在很多大型的关键任务应用中,为了保持高性能以及遗留代码的可维护性,常避免采用触发器和存储过程。
最后,区块链和传统RDBMS面向的应用不同,区块链正在承担越来越多的金融领域跨部门、跨机构、跨组织甚至跨行业的可信数据管理任务。
区块链和RDBMS的区别不仅体现在架构、功能和实现技术上,还体现在性能上。当前性能较好的区块链平台的数据访问吞吐率见表2[16]。而根据 事务处理性能委员会(TPC)的数据,在TPC-C基准评测下,吞吐率能达到近5万 TPS(transaction per second)。需要注意的是,TPC-C的负载复杂度远远超出当前区块链平台能支持的查询和事务处理复杂度。和RDBMS相比,区块链的性能劣势限制了它在很多需要承受高负载压力的关键任务应用中的推广和使用。
3.2 面向领域的数据管理系统
传统数据管理系统的设计、实施、应用开发逻辑是“一体适用(one-size-fitsall)”的,即DBMS是通用的,适用于任何领域的任何(结构化)数据管理任务。关系数据库管理系统产业的兴起和发展也依赖于这一指导思想。2005年,Stonebraker M对这一指导思想提出了疑问。10年以后,获得2014年度图灵奖的Stonebraker M则很明确地宣告传统DBMS不再适用于任何应用场合。这既是由于新硬件的快速发展颠覆了传统DBMS研发时基于的假设,也是因为应用的多样性导致一个系统优化、平衡所有功能和性能指标是不可能的。
随后,另一位重要的数据库学者Carey M提出了更具建设性的指导思想,即“分类适用(one size fits a bunch)”,针对一个特定领域的特定需求,设计专用的数据管理系统,例如高通量事务处理需要NewSQL系统、联机分析处理(online analytical processing,OLAP)需要列存储的数据库、文本搜索需要检索系统、海量和流数据处理需要流数据处理系统、信息网络的数据管理和处理需要图数据库,不一而足。
区块链正是满足加密货币应用的可信记账需求而生的专用数据管理系统。于是,有两个问题:区块链是否也适用于其他可信数据管理任务?如何借鉴区块链技术解决更广泛或其他领域的可信数据管理问题?
4 应用与讨论
4.1 应用1:基于区块链的智能仓单管理系统
2016年,针对钢铁商品仓单抵押常见的虚假仓单、重复抵押等问题,研发了基于区块链的智能仓单管理系统,提供仓单生成、流通、交易等各环节的可信管理,其应用架构如图4所示。这是一个典型的联盟链应用,相互协作的多个节点(机构)通过区块链共同管理仓单数据和仓单的交易、流通信息。与比特币不同,链上的节点对信息的操作和使用方式不同。链上有仓单的拥有者(货主)、管理者(仓库)、监管者(监管公司)、查询者(金融机构)以及仓单抵押、流通、交易过程中涉及的扮演各种角色的节点。
图4 区块链的智能仓单管理系统应用架构
针对仓单数据的结构化特点,系统实现了数据模式管理。参与单位常需要同时对链上的仓单信息和本地数据库信息进行关联,进而进行分析处理。系统在区块链的基础上,实现了链上、链下数据的一体化查询处理。
4.2 应用2:数据流通
安全屋是上 海优刻得信息科技有限公司的数据流通云服务平台。数据在安全屋内共享,进行分析处理。在安全屋内,一切数据访问、数据处理行为都被监管与审计,只有数据处理结果可被“带出”安全屋。系统中进出的数据与处理过程都使用区块链进行记录,供后续审计和分析使用。
当前的区块链技术不足以支撑安全屋的所有记录和监管需求。一方面,数据分析包含大量机器学习和人工智能算法处理,比单纯的交易记录和事务处理要复杂很多,数据处理的记录方式以及后续的审计方法都需要进一步探索。另一方面,安全屋内数据处理流程审计的本质是对数据项处理过程的回溯查询,当前的区块链平台对于回溯查询支持仍较弱。
4.3 应用3:政府治理
政府拥有大量高质量的数据。依赖这些数据,可进行精确、及时的政府治理。近年来,在我国的一些大中型城市,已经出现一批利用交通监控、社交媒体、行人骑行等各种数据进行城市规划、城市管理的成功案例。
政府治理不仅依赖自身各职能部门的数据,也使用来自于企业和社会的数据。这些数据的分享、使用需要在一个统一、有监管的平台上进行,区块链是实现平台的自然选择。与加密货币的去中心化不同,政府治理可能是多中心或者弱中心的,节点在一定程度上可被认为是可信的。区块链的架构、共识机制设计,乃至数据的存储方式、模型管理、查询和事务处理技术都需要面向政府治理进行裁剪和定制。
4.4 讨论
秉持“分类适用”的思想,可以看到,当前面向金融应用的区块链系统并非适用于所有领域。笔者认为,区块链技术在以下3方面值得进一步深入探索。
首先,面向弱可信的弱中心或多中心的应用环境,可信数据管理系统架构是一个重要问题。很多关键任务应用都处在这样的环境中,且社会的组织架构本身以及政府职能部门监管要求,共同决定了绝对的去中心化系统的适用范围并不大。这就需要重新审视区块链本身的结构,研发更适合场景的系统。
在多中心的架构下,华盛顿大学研发的对等网络上的数据管理原型系统Piazza是一个有益的参考。Piazza系统中,每个节点维护自身的数据;节点间数据模式可能不同;节点与邻居节点的数据库间维护着数据模式的映射;一个节点上的查询利用模式映射翻译后可在对等网络上传播,从而访问其他节点的数据。这一组织方式比当前区块链的节点数据全量备份更灵活。当然, Piazza的数据管理机制欠缺对于防篡改和事务处理的支持也很薄弱,还有大量工作值得探索和尝试。
其次是系统的性能。无论是分布式共识机制、事务处理,还是数据的存储组织、索引、查询乃至分析处理,区块链系统都有极大的性能优化和提升空间。而且几乎所有应用都对区块链的性能有较高的要求。
最后,链式结构天然地保留了数据的历史记录,然而当前的区块链系统对回溯查询的支持仍然薄弱,而回溯查询对于审计、监管等区块链应用而言又是必需的。因此,笔者认为实现高效、灵活的回溯查询机制对于拓展区块链应用场景具有重要意义。此时,回溯不仅指对交易历史记录的回溯,也包括对机器学习等数据分析处理过程的回溯。
5 分享型数据库
区块链部分地解决了金融应用中无中心的信任问题。在更广泛的应用场景中,如何在不依赖信用的前提下建立信任,是重要的研究问题。
随着互联网技术的发展,越来越多的领域首先通过线上(online)数据共享,进而实现线下(offline)虚拟或物质物品的分享,以实现资源的合理利用和价值提升。这一过程在共享单车的迅速崛起并随之暴露大量的企业管理、政府治理、用户行为问题的历程中得到了充分的体现。共享单车等互联网应用的蓬勃发展说明我国在商业模式创新方面已经走到了世界的前沿,商业模式的创新能否转化为科技创新的驱动力则是一个国家创新能力的标志。需要发展新的数据管理技术来为企业的日常运营、城市的有效治理提供有力的支撑。
能支撑新的数 据管 理需求的系统可以称为“分享型数据库(sharing database)”,它应能支持核心业务(mission-critical application),支撑分享经济业务模式(business model),甚至本身也是以分享经济的方式实现的分享经济时代的数据库。区块链已经展示了面向特定领域应用,设计实现这样的系统的可能性。但在更多的领域,需要类似区块链的分享型数据库系统解决可信数据管理的问题。
分享型数据库应秉承“分类适用”的理念,与领域和应用紧密结合。与传统的数据管理系统不同,分享型数据库的系统形态将是多样的:对于涉及“人—财—物”的应用,提供完善的事务处理机制以及一体化的数据获取和管理;对于复杂数据的管理,提供结构化数据模型和模式的管理;对于涉及数据分析的应用,提供丰富的时序和回溯查询支持;对于涉及数据处理审计的应用,则在日志的基础上,实现事务、统计乃至机器学习算法处理流程和结果的理解和记录;分享型数据库的架构也与应用相对应,可能是去中心的,也可能是弱中心或者多中心的。
信息化是业务发展和改革的基础,很多时候也是改革的先锋,甚至引领应用创新。笔者相信,与区块链促进了金融技术(FinTech)的演进一样,分享型数据库将伴随分享经济而快速发展。
The authors have declared that no competing interests exist.
作者已声明无竞争性利益关系。