学术咨询服务,正当时......期刊天空网是可靠的职称工作业绩成果学术咨询服务平台!!!

区块链与可信数据管理:问题与方法

发布时间:2020-03-10所属分类:科技论文浏览:1

摘 要: 摘要:作为支撑比特币实现无中心高可信的账本管理的技术,区块链在金融领域得到了广泛关注.区块链实现了不完全可信环境中的可信数据管理,具有去中心化、防篡改、不可抵赖、强一致和完整性等特性,但同时也存在高延迟和低吞吐率的性能问题.在互联网技术发展

  摘要:作为支撑比特币实现无中心高可信的账本管理的技术,区块链在金融领域得到了广泛关注.区块链实现了不完全可信环境中的可信数据管理,具有去中心化、防篡改、不可抵赖、强一致和完整性等特性,但同时也存在高延迟和低吞吐率的性能问题.在互联网技术发展、新型应用层出不穷的大背景下,借鉴区块链在数字加密货币应用中的成功经验,探索可信数据管理的理论、技术,并设计、实现系统,是学术界所面·l各的重要问题.从可信数据管理角度,介绍了区块链相关的技术和研究进展,包括分布式共识、智能合约、数据溯源等,并分析了应用对可信数据管理所提出的需求和研究挑战.

区块链与可信数据管理:问题与方法

  关键词:区块链;可信数据管理;智能合约;数据溯源;分布式共识

  区块链(blockchain或blockchain)是指通过数据加密、数据链式钩稽、多副本存储和分布式共识等机制,实现去中心化的分布式数据管理技术.它最早是由中本聪提出,并在比特~J(bitcoin)O0)JH以实现和应用.随着比特币应用的快速发展,区块链技术所具有的防篡改、不可抵赖、强一致和完整性等特性,特别是它的对等网~(peer—to—peernetwork)去中心化本质,得到了工业界和学术界的广泛关注.在加密货币”、分布式账本[21、单据管理[引、首次代币发售(ICo)和众筹[4】、慈善[等领域,区块链技术得到了广泛的探索和应用.

  另一方面,最早的区块链技术被设计用于比特币这一特殊的虚拟货币应用.它与应用紧密结合,所能提供的数据管理功能简单,同时基于工作量证明(proof-of-work,简称PoW)的共识机制的计算量耗费巨大,导致极低的系统吞吐率和很长的系统延迟.如何提供丰富的数据管理和数据处理功能,提高系统性能,成为区块链研究、开发和应用所关心的热点.以以太坊fEthereum)[6]和Hyperledger[】等为代表的开源项目则提供了相对完善的区块链的开发与应用基础,推动了区块链普及、应用的快速增长,以及新问题的发现与研究.

  从数据管理角度看,区块链的本质是一个构建在对等网络上、提供了可信数据管理功能的数据库系统.一个可信数据库管理系统从3个层面确保系统的可信性,即存储的可信性、处理的可信性以及外部访问的可信性,如图1所示.

  存储可信性是指数据处理结果一旦被确认,不会丢失或被篡改.它要求系统提供传统数据库管理系统[8]和事务处理[9】中所要求的事务持久性(durability),但同时也要求系统在存储、通信故障,甚至在蓄意攻击时,仍能确保数据存储的正确性.

  处理可信性一方面是指数据处理的正确性。另一方面是指处理过程和结果可审计与可溯源.前者要求事务的并发控制,而后者则要求系统不仅保存数据的最终状态,还要保存数据处理的过程.数据处理的正确性是对传统数据管理系统的基本要求.但是,传统的数据库管理系统是集中式的,保持事务的ACID属性已有成熟并相对高效的技术is,.对等网络环境中的数据管理,大都专注于查询处理的性能[1O,H】.虽然已有大量关于分布式系统中的共~(consensus)机制研究[12,13】,但在数据管理系统中,由于性能问题,共识机制和跨节点的协调通常只被用于选举主控节点,而较少被直接应用于事务处理或被尽量避免IH】.因此,在区块链这样的去中心化对等网络环境中,如何在确保系统“正确”的同时。实现高效事务处理,就成为一个突出的问题.

  处理过程和结果的可审计及可追溯也是重要的研究问题.在传统的数据库管理系统中,数据库中存储、维护的是当前的数据状态,处理过程和数据的历史信息通常存储在数据库日志中,仅被用于故障恢复『8I9],并不直接提供查询服务;在系统无故障正常运行的情况下,也不参与查询的处理.在节点不可信的对等网络环境中,一些查询和事务在处理时需要验证数据的历史状态,以确保当前状态的正确性.因此,传统的数据管理技术无法被直接应用于这一场景.

  数据溯源(dataprovenance)是数据管理中的一项重要技术,在科学数据管理和数据仓库中有着广泛的应用ll.然而,很多数据溯源技术仅针对集中式数据库或节点可信的分布式环境,在区块链的应用场景下无法直接应用.

  外部访问可信性是指对用户访问的认证.在实现机制上,它依赖于分布式身份认证等技术,也与具体的应用场景和业务紧密相关.本文的综述不涉及外部访问可信性。

  .与已有的从数字货币【】、安全[17]、协议、系统架构【、私有链和研究挑战【角度所进行的区块链技术综述不同,本文从可信数据管理的角度梳理区块链与相关数据管理技术的关联.介绍在不完全可信的对等网络环境中的数据管理问题和相关技术,并分析它们在新型应用场景中的适用性.由于外部可信性一方面与应用的具体模式紧密关联,另一方面又可以部分地依赖于分布式认证[22】技术解决,因此,本文聚焦于存储可信性和处理可信性技术.

  本文第1节简单介绍区块链的基本数据结构和概念.第2节从分布式共识的角度介绍存储可信性保障技术.第3节介绍处理可信性,包括智能合约及其问题、数据溯源技术以及可认证查询处理.第4节简要介绍主要的区块链系统和应用.最后,第5节对可信数据管理技术所面临的研究挑战进行分析.

  1区块链基础

  区块链的基本数据结构包括两部分,即区块内结构与区块问链式结构,分别如图2(a)~il图2(b)所示.一个区块包含头信息和体信息.头信息是区块的元数据,用于验证区块,并与其前驱和后继区块建立关联.通常,头信息包含自身时间戳、前驱区块的签名值、一个特殊值(称为nonce)、验证要求(如难度目标).体信息则是交易的序列.

  只有当一个区块的签名结果满足验证要求时,一个区块才能通过验证.例如,在比特币中,区块散列(签名)后的结果值必须小于某个特定值(该值由难度目标决定,随着时问的变化,难度逐渐增加)¨].当一个区块需要与其前驱建立关联时,其体信息、前驱区块签名值、自身时问戳、验证要求等信息都已经确定,唯一能调整以获得不同自身签名值的变量就是nonce值.只有当获得了合法的nonce值后。区块才能通过验证,与前驱区块进行链接.

  区块内的交易序列常通过特殊的数据结构,如Merkle.tree[,进行组织.Merkle.tree是一种树型数据结构,最初提出时为二叉树,但可被拓展为多叉树,其叶子节点为数据项或数据项的散列值,每一个内部节点的值为其所有子节点的散列值,从而根节点的值可被视为整棵树的签名.利用这一性质,Merkle—tree可被方便地用来实现数据集相等测试、定位修改以及零知识证明.因此,Merkle—tree在区块链中被用于检测区块副本是否相同.

  区块链的逻辑结构确保区块间的关系可验证.在系统中,一个区块存储于多个节点,以应对由于节点或网络故障所引起的区块副本丢失问题.

  需要注意的是,对于区块(1),可能存在多个区块1,,...,,都能通过验证,成为(1)的后继.如何让参与区块链的所有节点对区块链结构达成一致,其本质是分布式共识(consensus)2_问题.通常,区块链仅承认链最长的那条链.下一节将对区块链中的分布式共识机制进行介绍.

  区块链系统的另一个重要方面是其提供服务的接口.在比特币应用中,区块链仅提供转账,即事务的执行与查询.而随着应用需求以及以太坊和HyperLedger等系统的发展,新的区块链平台提供了称为“智能合约(smartcontract)”的用户代码执行机制.从可信性角度看,智能合约不仅可被执行,且其执行历史将被记录,执行过程和结果可审计、可追溯.第3.1节将介绍区块链中的智能合约处理机制,而对于数据溯源这一特殊问题则在第3.2节中加以介绍.

  推荐阅读:《软件学报》创刊于1990年,由中国科学院软件研究所和中国计算机学会联合主办。是一本刊登计算机软件各领域原创性研究成果的期刊,所刊登的论文均经过严格的同行专家评议。注重刊登反映计算机科学和计算机软件新理论、新方法和新技术以及学科发展趋势的文章,主要涉及理论计算机科学、算法设计与分析、系统软件与软件工程、模式识别与人工智能、数据库技术、计算机网络、信息安全、计算机图形学与计算机辅助设计、多媒体技术及其他相关的内容。

  2存储可信性

  2.1工作量证明机制

  如前所述,存储可信性解决区块的容错一致问题,其本质是分布式共识问题.比特币中的区块链采用了被称为工作量证明(proofofwork,简称PoW)~机制来解决这一问题.PoW基于如下技术和假设:根据,t和hk-1计算使h满足验证要求的nonce需要耗费算力,每次计算nonce所需的算力在一定时间段内相当.这一计算过程被称为“挖矿”.因此,如果需要篡改或伪造记录,则需要构造一条比当前被公认的区块链(主链)更长的链,因此需要的算力需要超过整个区块链中的其他(正在进行正常挖矿运算的)算力.或者,更准确地说,在考虑网络延迟时,攻击者的算力接近50%就会破坏比特币区块链的正确性[钔.而当考虑“自私挖矿(selfishmining)”一一也就是当自身“挖矿”所获得的链比别人的链长时,不发布自己的链,在自己的链上继续挖;当自身的链和别人己发布的链相比等长或者更短时,立即发布自己的链,并在别人已发布的链上继续“挖矿”,那么,攻击者接近1/4算力即会危及比特币的正确性.

  pow共识机制的另一个问题是其性能问题.如Vukolic]]和Tseng]”]对PoW和传统的拜占庭容错问题进行了详细的对比分析所述,由于比特币区块链为“公有链”,即其参与读取、交易以及共识机制的用户是开放的,其用户规模是动态的,参与者是匿名的.这直接导致了PoW机制的低吐率和高延迟.但从另一个角度看,PoW机制实现了系统的高可扩展性,支持从数干到数十万个参与者,这一网络规模远远大于绝大多数金融机构信息系统的规模.

  2.2实用拜占庭容错机制

  并非所有区块链应用的需求和对环境的假设都与比特币相同.例如,在私有链(privateblockchain或permissionedblockchain)或联盟链(consortiumblockchain)中,节点(参与者)就不再是匿名的,节点规模远小于公有链.且可信程度也远比在公有链中要高.实用拜占庭容错机$1](practicalByzantinefaulttolerance,简称PBFT)可被用于该场景[27,28].与PoW不同,采用PBFT时,区块仅有被选举出的唯一主控节点生成.PBFT由请求、预准备、准备、提交这4个阶段构成.预准备由主控节点发起,准备阶段各节点分别验证主控节点发起的共识请求的正确性,并将验证结果返回给主控节点,并由主控节点汇总后在提交阶段确定是否提交.与PoW相比,PBFT适用于节点数少于20个的场景,可拜占庭容错少于1/3的节点的攻击,即有少于1/3的节点存在漏发、错发或选择性错发消息情况,主要开销在于网络消息传输带宽,吞吐率可达数干,并将延迟降到毫秒级.此外,PBFT可确保系统的最终一致性.由于具有这些特性,PBFT被应用于HyperLedgerFabric.

  2.3Paxos和BVP

  PoW和PBFT考虑的都是拜占庭容错问题.在私有链的场景下,若假设节点或参与者不进行攻击,则可进一步放宽假设.Paxos是重要的非拜占庭场景下的共识机~lJ[29,30],可被用于私有链场景.与PBFT相比,Paxos的吞吐率可进一步提升到超过4万tps[].

  Paxos的改进版本也能处理拜占庭容错场景,被称为拜占庭PaXos[32].Abraham和Malkhi提出了BVP[,用以利用TPM(trustedplatformmodule1加密处理器[34J提供高性能的拜占庭容错.

  2.4其他面向区块链的共识机制

  PoW、PBFT和Paxos分别是3个典型的可用于区块链的共识机制.除此以外,不同的区块链项目也采用它们的改进版本或其他机制.PPCoin采用权益证明(proofofstake,简称PoS),面向公有链,避免了PoW导致的算力消耗和能源消耗[35】.PoS通过奖励机制鼓励参与节点成为验证者节点,区块的产生由随机选取的验证者节点或验证者节点集合验证获批.PoS避免了PoW导致的大量算力和电力消耗.Ripple为另一个公有链平台,采用其自身的RPCA机制实现共识p们.RPCA首先将共识问题归结到系统中的一组“受信任”节点,然后采用类似于PBFT的投票选取主控节点方式,实现共识.

  此外,还有Proof-of-Luck[、Raft]】等共识机制被应用于区块链系统或应用.

2023最新分区查询入口

SCISSCIAHCI