An Overview of Blockchain Technology: Architecture, Consensus, and Future Trends 全文翻译

翻译 2017年11月06日 12:23:50

An Overview of Blockchain Technology: Architecture, Consensus, and Future Trends
区块链技术综述:体系结构,共识算法和未来趋势

 

Zibin Zheng1, Shaoan Xie1, Hongning Dai2, Xiangping Chen4, and Huaimin Wang3

(1 中山大学数据与计算机科学学院,广州,中国

2 澳门科技大学信息技术学院,澳门特别行政区

3 国防科技大学并行与分布式处理国家重点实验室,长沙,中国

4 中山大学数字化生活国家工程研究中心先进技术学院,广州,中国)

 

摘要:区块链,比特币的基础,近来受到越来越多的关注。区块链作为一个不可改变的分布式总账,允许交易以去中心化的方式发生。基于区块链的应用正在大量涌现,范围覆盖各种各样的领域,包括金融服务、信誉系统和物联网等等。然而,仍然存在许多区块链技术方面的挑战,比如可扩展性、安全问题亟待解决。本文是一篇区块链技术的综述。我们先描述了区块链体系结构的概述,并比较了在不同的区块链中几种典型的共识算法。此外,我们也简要列出了技术挑战和近期进展。我们也展示了区块链可能的未来趋势。

关键字:区块链,去中心化,共识,可扩展性

 

1  引言

        现在,在工业界和学术界加密货币变成了一个流行语。作为一种最成功的加密货币,比特币获得了巨大成功,2016年资本市场达到100亿美元[1]。拥有数据存储结构的特殊设计,比特币网络中的交易可以发生在没有任何第三方的条件下,构建比特币的核心技术是区块链,于2008年被首次提出并于2009年实现[2]。区块链可以被看作一个公共账本,所有提交的事务都存储在区块中。随着新块被持续添加进链中,链一直在增长。非对称加密和分布式共识算法已经实现,用于用户安全和账本一致性。区块链技术通常有去中心化的关键特征,持久性,匿名性和可审计性。这些特征使得区块链可以极大地节省成本、提高效率。

        由于区块链允许支付在没有任何银行或者中介的辅助下完成,因此可以被用于各种各样的金融服务,比如数字资产、汇款和网上支付[3][4]。此外,它也可以被应用于其他领域,包括智能合约[5]、公共服务[6]、物联网(IoT)[7]、信誉系统[8]和安全服务[9]。这些领域以多种方式支持区块链。首先,区块链是不可改变的。当交易打包进区块链后,不能被篡改。需要高度可靠性和诚实性的商业可以使用区块链来吸引顾客。此外,区块链是分布式的,可以避免单点故障。至于智能合约,一旦合约被部署到区块链上,必须被矿工自动执行。

        尽管区块链技术有很大的潜力构建未来网络系统,它仍然面临着一系列技术挑战。首先,可扩展性是一个大的问题。比特币块大小现在限制为1MB,大约每10分钟就有一个块被挖出。随后,比特币网络限制到每秒钟7笔交易的速率,不能处理高频率的交易。然而,更大的块意味着更大的存储空间和在网络中更慢的传播。这将导致逐渐地中心化,因为很少用户想要维护这样一个大的区块链。因而块大小和安全性之间的权衡变成了一个艰巨的挑战。第二,已证明,相比通过自私挖矿策略[10]的公平共享,矿工可以获得更大的收益。矿工为未来更多的收益隐藏他们挖到的矿。以这种方式,分支频繁发生,阻碍了区块链的开发。因此需要提出一些方案来解决这个问题。此外,隐私泄露也可能发生在区块链中,甚至用户仅用公钥和私钥达成交易[11]。此外,当前的共识算法,如工作量证明(proof of work)和权益证明(proof of stake),也面临着严重的问题。例如,工作量证明浪费太多的电力能源,而富者更富的现象发生在权益证明的共识过程中。

        有许多区块链的文章来自不同地方,比如博客、维基、论坛海报、代码、会议记录和杂志文章。Tschorsch等人对去中心化数字货币做了一个技术综述,包括比特币。比较[12],本文聚焦于区块链技术而不是数字货币。Nomura研究院做了一个关于区块链[13]的技术报告,比较[13],本文聚焦于区块链研究的状态艺术,包括近期进展和未来趋势。

        本文的下面部分如下安排。第2节介绍区块链体系结构,第3节展示了用于区块链的典型的共识算法,第4节总结了在这些领域的技术挑战和近期进展,第5节讨论了一些可能的未来方向,第6节总结全文。

 

2  区块链体系结构

 

 

 

        区块链是一个块的序列,其中保存着一个完整的交易记录的列表,类似传统的公共总账[14]。图1展示了一个区块链的例子。前一个块的哈希保存在块头中,一个块只有一个父块。值得注意的是,叔叔块(块的祖先的孩子)的哈希也将被存储在以太坊区块链中[15]。区块链的第一个块叫做创世区块,它没有父区块。我们下面详细解释区块链的本质。

 

A  区块结构

        一个块包含块头和块体,如图2中所示。特别地,块头包括:

        (i)块的版本号:指示遵循哪个块验证规则集合;

        (ii)Merkle树根哈希:块中所有交易的哈希值;

        (iii)时间戳:从1970年1月1日开始到当前时间经过的秒数;

        (iv)nBits:有效的块哈希的目标阈值;

        (v)随机数:一个4字节的域,通常以0开始,每计算一次hash增加1(将在第3节详细解释)。

        (vi)父块哈希:一个256位的哈希值,指向前面的块。

        块体由交易计数器和交易组成。一个块可以容纳的交易的最大数量依赖于块大小和每个交易的大小。区块链使用非对称加密机制来对交易进行认证[13]。数字签名基于非对称加密,被用于不可信的环境中,我们下面简要介绍数字签名。

 

B  数字签名

        每个用户拥有一个私钥和公钥对,私钥应保密保存,用来对交易签名。数字签名的交易在整个网络范围内广播。典型的数字签名包括两个阶段:签名阶段和验证阶段。例如,用户Alice想要给另一个用户Bob发送消息。(1)在签名阶段,Alice用她的私钥加密她的数据,然后发送给Bob加密后的结果和原始数据;(2)在验证阶段,Bob用Alice的公钥验证加密后的值。以这种方式,Bob可以很容易地验证数据是否被篡改。区块链中使用的典型的数字签名算法是椭圆曲线数字签名算法(ECDSA)[16]。

 

C  区块链的关键特征

        总结一下,区块链有下面的关键特征。

        (1)去中心化。在传统的中心化交易系统中,每个交易需要被中心的可信第三方代理验证(例如中心银行),这不可避免地带来中心服务器的开销和性能瓶颈。对比中心模式,区块链中不再需要第三方。区块链中的共识算法被用来在分布式网络中保持数据的一致性。

        (2)持久性。交易可以被快速验证,无效的交易不会被诚实的矿工承认。一旦交易被保存在区块链中,删除或者回滚交易是不可能的。包含无效交易的块可以被及时发现。

        (3)匿名性。每个用户通过区块链中生成的地址交互,这个地址并不会显示出用户的真实身份。由于其本身固有的约束,区块链并不能保证很好的隐私保护(我们将在第4节详细探讨这个话题)。

        (4)可审计性。比特币区块链基于未使用的交易量(Unspent Transaction Output, UTX-O)模型[2]存储用户的余额数据:任何交易必须参考某个之前的未使用的交易。一旦当前的交易被记录进区块链,参考的未使用交易的状态将从未使用转换为使用。因此交易可以被容易地验证和记录。

 

D  区块链系统的分类

        当前的区块链系统大体上分为三类:公有区块链、私有区块链和联盟区块链[17]。在公有区块链中,所有的记录都公开可见,每个人都参与到共识过程中。不同的是,仅仅一组预选的节点参与到联盟区块链的共识过程中。至于私有区块链,仅仅那些来自特定组织的节点将会被允许加入共识过程。

        私有区块链被看作中心化的网络,由于它被一个组织完全控制。联盟区块链被几个组织构建,是半中心化的,仅有一小部分节点被选择决定共识。三种类型区块链之间的比较在表I中列出。

 

        (1)共识决定。在公有区块链中,每个节点参与到共识过程中。而在联盟链中,仅仅选择的一部分节点负责验证块。至于私有链,它被一个组织完全控制,该组织决定最终的共识。

        (2)读权限。公有区块链中的交易是公共可见的,而对于私有区块链和联盟区块链,视情况而定。

        (3)不变性。由于存储着大量的参与者的记录,公有链中几乎不可能篡改交易记录。不同的是,私有链或联盟链中的交易可以很容易地被篡改,因为他们只有有限的参与者。

        (4)效率。需要很多时间传送交易和区块,因为在公有区块链网络中存在大量的节点。这导致交易产生量是有限的,延迟很高。联盟区块链和私有区块链拥有更少的验证者,因而可能更高效。

        (5)中心化。三类区块链之间的主要不同是公有区块链是去中心化的,联盟区块链是半中心化的,私有区块链是完全中心化的,其被一个单独的组织控制。

        (6)共识过程。世界上的每个人都会参与到公有区块链的共识过程中。不同于公有区块链,联盟链和私有链都是需要许可的。

        由于公有区块链对全世界开放,因此可以吸引许多用户,用户团体很活跃,许多公有区块链逐日增加。至于联盟区块链,可以被应用到许多的商业应用中。当前的超级账本正在开发商业联盟区块链框架,以太坊也为构建联盟区块链提供了工具。

 

3  共识算法

        在区块链中,怎样在不可信的节点之间达到共识是拜占庭将军问题的同义转换,这在文献[20]中提出。在拜占庭问题中,将军们命令其手下的拜占庭军队包围城市,一些将军倾向于进攻,另一些将军倾向于撤退。然而,如果仅有一部分将军攻击城市,进攻将会失败。因此,他们必须达到一致,进攻或者撤退。在分布式环境中怎样达到共识是一个挑战,这对区块链也是一个挑战,因为区块链网络是分布式的。在区块链中,不存在中心节点确保分布式节点上的账本都是一样的。需要一些协议来确保不同节点上的账本是一致的。我们下面描述几个常见的方法来在区块链中达到共识。

 

A  达到共识的方法

        PoW(Proof of work,工作量证明)是一个比特币网络中使用的共识策略[2]。在去中心化的网络中,某个节点被选择记录交易。最容易的方式是随机选择。然而,随机选择更易受攻击。因此如果节点想要发布一个交易区块,需要做许多工作来证明节点不太可能攻击网络。通常所谓的工作意味着计算机计算。在PoW中,网络中的每个节点计算区块头的哈希值。区块头包含一个随机数,矿工可以频繁地改变随机数来得到不同的哈希值。共识要求计算的值必须等于或小于一个确定的值。当一个节点达到目标值,它将向其他节点广播该块,所有的其他节点必须互相确认哈希值的正确性。如果区块已经被验证,其他矿工将追加新的区块到他们自己的区块链中。计算哈希值的节点叫做矿工,PoW过程叫做挖矿。

        在去中心化的网络中,有效块可能被同时生成,多个节点几乎同时找到合适的随机数。结果,可能生成分支,如图3中所示。然而,不太可能两个分支同时生成下一个区块。在PoW协议中,此后变得更长的链被判定为认证了的链。考虑两个分支被同时创建,认证为块U4和B4。矿工一直在挖区块,直到找到一个更长的分支。B4,B5形成一个更长的链,因此U4的矿工将转换到这个更长的分支。

        在PoW中,矿工必须做许多计算机计算,这些工作浪费太多资源。为了缓解损失,一些PoW协议设计了一些辅助应用。例如,质数币[25]搜索特殊的质数链,可以被用于数学研究。

        PoS(Proof of stake,权益证明)是PoW的节能选择。PoS中的矿工必须证明对大量货币的拥有权。我们相信拥有更多货币的人不太可能攻击网络。该选择基于账户余额十分不公平,因为最富有的人注定是网络中的统治者。结果,许多方案通过结合权益大小到决定谁制造下一个块。特别地,黑币[26]使用随机选择来预测下一个生成者。它使用一个公式寻找最小的哈希值,结合权益的大小。对等币支持基于币龄的选择。在对等币中,拥有年龄更大的数量更多的币有更大的可能挖出下一个矿。对比PoW,PoS节省更多的能源,更高效。不幸的是,随着挖矿代价接近于0,有很大可能导致的结果是攻击。许多区块链开始时采用PoW,后来逐渐转变到PoS。例如,以太坊计划从Ethash(一种PoW)转变到Casper(一种PoS)。

        PBFT(Practical byzantine fault tolerance,可实现的拜占庭差错容忍算法)是一种拜占庭差错容忍[29]的复现算法。超级账本利用PBFT作为共识算法,由于PBFT可以处理超过1/3的恶意拜占庭军队的复现。一个新的区块在一个周期之内决定,在每个周期内,将依据一些规则选择一个要素,它负责排序交易。整个过程将被划分成三个阶段:预准备、准备和执行。在每个阶段,如果一个节点接收到所有节点超过2/3的投票,它将进入下一个阶段,因此PBFT需要每个节点在网络中都是可见的。类似PBFT,Stellar共识协议(Stellar Consensus Protocol, SCP)也是一个拜占庭共识协议。在PBFT中,每个节点必须询问其他节点,而SCP给参与者权力选择相信哪个参与者集合。基于PBFT,Antshares实现了他们的dBFT(授权的拜占庭差错容忍)。在dBFT中,一些专业的节点投票来记录交易。

        DPOS(授权的权益证明)。PoS和DPOS之间主要的不同是PoS是直接民主的,而DPOS是代议制民主的。利益相关者选举代表产生和验证区块。更少的有意义的节点验证区块,区块可以被快速确认,导致交易的快速确认。同时,网络的参数,比如块大小和块间隔可能被代表调整。此外,用户不需要担心不诚实的代表,因为他们可以容易地被投票出来。DPOS是比特股[22]的骨干。

        Ripple[23]是一种共识算法,利用大网络中共同信任的子网。在网络中,节点被划分成两种类型:服务器,用于参与共识过程,客户,用于仅仅传送资金。每个服务器有一个唯一节点列表(Unique Node List, UNL)。UNL对服务器很重要。当决定是否把交易放进账本中时,服务器将询问UNL中的节点,如果接收到的一致的节点达到80%,交易将被打包进账本。对于一个节点,只要UNL中差错节点的百分数少于20%,账本将保持正确。

        Tendermint是一个拜占庭共识算法。一个新的区块在一个周期中决定,申请人选择在这个周期中广播一个未确认的区块。这将被划分成三步:(1)预投票步。验证者选择是否为提议的区块广播一个预投票。(2)预执行步。如果节点接收到在提出的区块上超过2/3的预投票,它为该区块广播一个预执行。如果节点接收到超过2/3的预执行,它进入执行步骤。(3)执行步。节点验证区块并为该区块广播执行。如果节点接收到2/3的节点可以执行,它接受该区块。对比PBFT,节点必须封锁他们的币以变成验证者,一旦一个验证者被发现是不诚实的,他将被惩罚。

 

B  共识算法比较

        不同的共识算法有不同的优势和劣势。表II给出了不同的共识算法之间的比较,我们使用文献[32]中给出的特性。

        (1)节点身份管理。PBFT需要知道每个矿工的身份,以便在每个周期内选择一个主要因素,而Tendermint需要知道验证者,以便在每个周期选择一个提议者。对于PoW,PoS,DPOS和Ripple,节点能够自由地加入网络。

        (2)能源节省。在PoW中,矿工对区块头持续做哈希,以达到目标值。结果,需要处理的电量已经达到了极大的规模。至于PoS和DPOS,矿工仍然必须对区块头做哈希来搜索目标值,但是工作量被极大的减少,因为搜索空间是有限的。至于PBFT,Ripple和Tendermint,在共识过程中不存在挖矿,因此它极大地节省了能源。

        (3)对手的容忍能力。通常51%的哈希能力被认为是阈值来获得对网络的控制,但是PoW系统中的自私挖矿策略[10]仅通过25%的哈希能力就能够帮助矿工获得更多的收益。PBFT和Tendermint被设计处理超过1/3的差错节点。Ripple被证明维持正确性,如果UNL中的差错节点少于20%。

        (4)例子。比特币基于PoW,而对等币是一种新的P2P PoS加密货币。此外,超级账本Fabric利用PBFT来达到共识。比特股,一个智能合约平台,采纳DPOS作为他们的共识算法。Ripple实现了Ripple协议,而Tendermint设计了Tendermint协议。

        PBFT和Tendermint是授权的协议,节点身份对整个网络并不都是可见的,因此他们可能被用在商业模式而不是公开模式。PoW和PoS适用于公有区块链。联盟或者私有区块链可能偏好于PBFT,Tendermint,DPOS和Ripple。

 

C  共识算法进展

        一个好的共识算法意味着高效、安全和方便。最近,在区块链中改进共识算法有大量的发现,设计出了新的共识算法,目的是解决区块链的一些特别的问题。PeerCensus的主要想法是解耦区块创造和交易确认,以便共识速度可以明显增加。此外,Kraft提出了一个新的共识方法来确保区块以一个相对平稳的速度生成。我们知道高的区块生成速率对比特币不安全,因此贪婪最重观察子树(GHOST)链选择规则[35]被提出来解决该问题。代替最长分支方案,GHOST给分支权重,矿工可以选择遵循更好的一个。Chepurnoy等人为P2P区块链系统提出了一个新的共识算法,任何为过去的状态快照提供了非交互可追溯性的证明的人可以生成区块。在这样的协议中,矿工可以仅仅存储旧的区块头代替全部的区块。

 

4  挑战和近期进展

        尽管区块链有很大的潜力,但它面临着大量的挑战,限制了区块链的广泛使用。我们列举了一些主要的挑战和最近的进展如下。

 

A  可扩展性

        随着交易量逐日增加,区块链变得庞大。每个节点必须在区块链上存储所有的交易来验证交易,因为他们必须检查是否当前交易的源是未使用的或已使用的。此外,由于最初的块大小的限制和用于生成新区块的时间间隔,比特币区块链仅可以每秒处理接近7笔交易,这不能满足实时处理几百万交易的需求。同时,因为区块的容量非常小,许多小的交易可能被延迟,由于矿工偏好那些拥有高交易费用的交易。

        已经提出了大量的方案处理区块链的可扩展性问题,这可以被分成两类:

        (1)区块链的存储优化。对于节点很难操作账本的全部副本,Bruce提出了一个新的加密货币方案,其中旧的交易记录被网络移除(或者忘记)[37]。数据库命名的账户树被用来保存所有非空地址的余额。此外轻量级的客户也可以帮助处理这个问题,提出了一个新的方案叫做VerSum来提供另一种方式允许轻量级的客户存在。VerSum允许轻量级的客户将昂贵的计算包装成大的输入。它确保计算结果是正确的,通过与多个服务器比较结果。

        (2)重新设计区块链。在文献[39]中,提出了下一代比特币。下一代比特币的主要想法是解耦传统的块为两部分:关键块用于领导选举,微型块用于存储交易。协议将时间划分成时期,在每个周期,矿工必须哈希来生成一个关键块。一旦关键块生成,节点变成领导,负责生成微型块。下一代比特币也扩展了最重(最长)链策略,其中微型块没有重量。以这种方式,区块链被重新设计,并且处理了块大小和网络安全之间的权衡。

 

B  隐私泄露

        区块链通过公钥和私钥可以保存一定数量的隐私,用户用他们的私钥和公钥交易而不暴露真实身份。然而,如文献[40][5]所示,由于每个公钥的所有交易和余额的值是公开可见的,因此区块链不能保证交易隐私。此外,最近的研究[41]显示,一个用户的比特币交易可以被链接以揭示用户的信息。此外,Biryukov等人[11]提出了一种方法来链接用户的化名到IP地址,甚至当用户在NAT或防火墙之后。在文献[11]中,每个客户可以被他连接的一组节点唯一识别。然而,这组节点可以被学习,并用于找到交易的起源。已经提出了多种方法来改进区块链的匿名性,这大致可以被分为两类:

        (1)混合法[42]。在区块链中,用户地址是匿名的,但仍然可能链接地址到用户的真实身份,因为许多用户频繁地用相同的地址做交易。混合服务是一种服务,提供匿名性,通过从多个输入地址到多个输出地址转移资金。例如,用户Alice拥有地址A,想要发送一些资金到Bob,地址为B。如果Alice直接用输入地址A输出地址B做交易,Alice和Bob之间的关系可能是显式的。因此Alice可以发送资金到一个可信的中介者Carol。然后Carol转移资金到Bob,拥有多个输入c1,c2,c3,多个输出d1,d2,B,d3。Bob的地址B也保存在输出地址。因此它变得更难揭示Alice和Bob之间的关系。然而,中介者可能是不诚实的,故意揭示Alice和Bob的隐私信息。Carol转移Alice的资金到她自己的地址而不是Bob的地址也是可能的。混合币[43]提供了一个简单的方法避免不诚实的行为。中介者用他的私钥加密用户的需求,包括资金量和转移日期。如果中介者没有转移钱,任何人能够验证中介者欺骗。然而,偷窃被检测但仍然没有被防止。Coinjoin[44]依赖于一个中心混合服务器来移动输出地址防止偷窃。受到Coinjoin启发,CoinShuffle使用解密混合网进行地址转换。

        (2)匿名。在Zerocoin[46]中,使用了零知识证明。矿工不必用数字签名验证一笔交易,但是验证币属于一列可用的币。支付的源头没有从交易链接到防止交易图分析,但仍然揭示了支付目的和数量。Zerocash[47]被提出来处理这个问题。在Zerocash中,零知识Succinct非交易知识争论(zk-SNARKs)是显式的,交易量和用户拥有的币值被隐藏了。

 

C  自私挖矿

        区块链易受共谋的自私矿工的攻击。特别地,Eyal和Sirer[10]显示了网络是易受攻击的,即使仅有一小部分哈希能力被用于欺骗。在自私矿工策略中,自私矿工保存他们挖到的区块而没有广播,而仅当一些需求被满足时私有分支才向公众展示。随着私有分支比当前的公有块更长,它将被所有的矿工承认。在私有区块链发布之前,诚实的矿工浪费资源在无用的分支上,而自私的矿工挖矿他们的私有链而没有竞争者,因此自私矿工趋向于得到更多的收益。

        基于自私挖矿,许多其他的攻击被提出显示区块链不是安全的。在坚持挖矿[48]中,矿工能够放大它的收益,通过非平凡地构成挖矿攻击,用网络层的日食攻击。尝试坚持是一种坚持策略,矿工仍然挖矿区块,即使私有链被留下。在某些例子中,它可以导致13%的收益,比较非尝试坚持策略。文献[49]显示了存在自私挖矿策略,能挣更多的钱,对于更小的矿工是有利益的,比较简单的自私挖矿,但是收益相对小。此外,它显示了少于25%计算资源的攻击者仍然可以从自私挖矿中获得收益。为了帮助解决自私挖矿问题,Heilman[50]提出了一个新的方法用于最诚实的矿工选择遵循哪个分支。拥有随机信标和时间戳,最诚实的矿工将选择更多新鲜的块。然而,文献[50]对于可忘记的时间戳是易受攻击的。ZeroBlock[51]构建在简单方案之上:每个块必须在最大时间间隔内被网络生成和接受。在ZeroBlock内部,自私矿工不能获取的多过它期望的回报。

 

5  可能的未来方向

        区块链已经显示了它在工业界和学术界的潜力。我们讨论下面4个领域可能的未来方向:区块链测试、去中心化趋势、大数据分析和区块链应用。

 

A  区块链测试

        最近不同种类的区块链出现,到现在为止,超过700个加密货币列在文献[52]。然而,一些开发者可能伪造他们的区块链性能来吸引被巨大利润驱动的投资者。除此之外,当用户想要将区块链结合进商业,他们必须知道哪个区块链符合需求。因此区块链测试机制需要测试不同的区块链。

        区块链测试能够划分成两个阶段:标准化阶段和测试阶段。在标准化阶段,必须做出并同意所有的标准。当一个区块链诞生,它能够用一致的标准被测试以验证是否区块链工作得很好,像开发者称赞的那样。至于测试阶段,区块链测试需要用不同的标准执行,例如,掌管在线零售业务的用户关心区块链的吞吐量,因此需要从用户发送交易到被打包进区块链的交易来测试平均时间和区块的容量等等。

 

B  去中心化趋势

        区块链被设计为去中心化系统。然而,存在一种趋势,矿工在挖矿池中是中心化的。直到现在,顶尖的5个挖矿池在比特币网络[53]中都拥有大于51%的总哈希能力。除此之外,自私挖矿策略[10]显示,超过25%的总计算能力的挖矿池能够获得比平均股权更多的收益。理智的矿工将被吸引进自私池,最后池能够很容易地超过51%的总能力。因为区块链不试图服务一些组织,应该提出一些方法来解决这个问题。

 

C  大数据分析

        区块链可以与大数据很好地结合。这里我们粗略地把结合分成两类:数据管理和数据分析。至于数据管理,区块链能够被用于存储重要数据,因为它是分布式的和安全的,区块链也能够确保数据是原始的。例如,如果区块链被用于存储病人的健康信息,信息不能够被篡改,很难偷走那些私有信息。当谈到数据分析,区块链上的交易将被用于大数据分析。例如,用户交易模式可能是被提取的,用户可以通过分析预测他们可能的伙伴的交易行为。

 

D  区块链应用

        当前绝大多数区块链被用于金融领域,越来越多不同的领域出现。传统的工业也考虑区块链,并将区块链应用到他们的领域来增强他们的系统。例如,用户信誉能够被存储在区块链上。同时,很有前途的工业可以利用区块链来改进性能。例如,Arcade城市,共享车辆启动提供了一种开放的市场,通过利用区块链技术,骑行者和驾驶员直接连接。

        智能合约是计算机化的交易协议,执行合同条目[54]。它已经提出了很长时间,现在这个概念已经用区块链实现。在区块链中,智能合约是一个代码分片,能够被矿工自动执行。智能合约在各种各样的领域有变革的能力,像金融服务和物联网。

 

6  结论

        区块链显示了转移传统工业的潜力,其拥有下面的关键特征:去中心化、持续性、匿名性和可审计性。在本文中,我们展示了关于区块链的综述,我们首先给出区块链技术的概述,包括区块链的体系架构和区块链的关键特征。我们然后讨论了区块链中使用的典型的共识算法,在不同方面分析和比较了这些协议。此外,我们列出了一些阻碍区块链开发的挑战和问题,并汇总了一些现有的方法来解决这些问题,也提出了一些可能的未来方向。现在,基于区块链的应用正在不断涌现,我们计划未来执行基于区块链应用的深入研究。

 

致谢

        我们文中描述的工作受到国家关键研究和开发项目(2016YF-B1000101),中国国家自然科学基金(61472338),中心大学基础研究基金,澳门科学技术开发基金(授权号:No.096/2013/A3)的支持。作者感谢Gordon K.-T的指导性的评论。

 

参考文献

[1] “State of blockchain q1 2016: Blockchain funding overtakes bitcoin,” 2016. [Online]. Available: http://www.coindesk.com/state-of-blockchain-q1-2016/
[2] S. Nakamoto, “Bitcoin: A peer-to-peer electronic cash system,” 2008. [Online]. Available: https://bitcoin.org/bitcoin.pdf
[3] G. W. Peters, E. Panayi, and A. Chapelle, “Trends in crypto-currencies and blockchain technologies: A monetary theory and regulation perspective,” 2015. [Online]. Available: http://dx.doi.org/10.2139/ssrn.2646618 

[4] G. Foroglou and A.-L. Tsilidou, “Further applications of the blockchain,” 2015.
[5] A. Kosba, A. Miller, E. Shi, Z. Wen, and C. Papamanthou, “Hawk: The blockchain model of cryptography and privacy-preserving smart contracts,” in Proceedings of IEEE Symposium on Security and Privacy (SP), San Jose, CA, USA, 2016, pp. 839–858.
[6] B. W. Akins, J. L. Chapman, and J. M. Gordon, “A whole new world: Income tax considerations of the bitcoin economy,” 2013. [Online]. Available: https://ssrn.com/abstract=2394738
[7] Y. Zhang and J. Wen, “An iot electric business model based on the protocol of bitcoin,” inProceedings of 18th International Conference on Intelligence in Next Generation Networks (ICIN), Paris, France, 2015, pp. 184–191.
[8] M. Sharples and J. Domingue, “The blockchain and kudos: A distributed system for educational record, reputation and reward,” inProceedings of 11th European Conference on Technology Enhanced Learning (EC-TEL 2015), Lyon, France, 2015, pp. 490–496.
[9] C. Noyes, “Bitav: Fast anti-malware by distributed blockchain consensus and feedforward scanning,”arXiv preprint arXiv:1601.01405, 2016.
[10] I. Eyal and E. G. Sirer, “Majority is not enough: Bitcoin mining is vulnerable,” inProceedings of International Conference on Financial Cryptography and Data Security, Berlin, Heidelberg, 2014, pp. 436–454.
[11] A. Biryukov, D. Khovratovich, and I. Pustogarov, “Deanonymisation of clients in bitcoin p2p network,” inProceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, New York, NY, USA, 2014, pp. 15–29.
[12] F. Tschorsch and B. Scheuermann, “Bitcoin and beyond: A technical survey on decentralized digital currencies,”IEEE Communications Surveys Tutorials, vol. 18, no. 3, pp. 2084–2123, 2016.
[13] NRI, “Survey on blockchain technologies and related services,” Tech. Rep., 2015. [Online]. Available: http://www.meti.go.jp/english/press/2016/pdf/0531 01f.pdf
[14] D. Lee Kuo Chuen, Ed., Handbook of Digital Currency, 1st ed. Elsevier, 2015. [Online]. Available: http://EconPapers.repec.org/RePEc:eee:monogr:9780128021170
[15] V. Buterin, “A next-generation smart contract and decentralized application platform,”white paper, 2014.
[16] D. Johnson, A. Menezes, and S. Vanstone, “The elliptic curve digital signature algorithm (ecdsa),”International Journal of Information Security, vol. 1, no. 1, pp. 36–63, 2001.
[17] V. Buterin, “On public and private blockchains,” 2015. [Online]. Available: https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/
[18] “Hyperledger project,” 2015. [Online]. Available: https://www.hyperledger.org/
[19] “Consortium chain development.” [Online]. Available:https://github.com/ethereum/wiki/wiki/Consortium-Chain-Development
[20] L. Lamport, R. Shostak, and M. Pease, “The byzantine generals problem,”ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 4, no. 3, pp. 382–401, 1982.
[21] S. King and S. Nadal, “Ppcoin: Peer-to-peer crypto-currency with proofof-stake,”Self-Published Paper, August, vol. 19, 2012.
[22] “Bitshares - your share in the decentralized exchange.” [Online]. Available: https://bitshares.org/
[23] D. Schwartz, N. Youngs, and A. Britto, “The ripple protocol consensus algorithm,”Ripple Labs Inc White Paper, vol. 5, 2014.
[24] J. Kwon, “Tendermint: Consensus without mining,”URL http://tendermint. com/docs/tendermint{ } v04. pdf, 2014.
[25] S. King, “Primecoin: Cryptocurrency with prime number proof-ofwork,”July 7th, 2013.
[26] P. Vasin, “Blackcoins proof-of-stake protocol v2,” 2014. [Online]. Available: https://blackcoin.co/blackcoin-pos-protocol-v2-whitepaper.pdf
[27] G. Wood, “Ethereum: A secure decentralised generalised transaction ledger,”Ethereum Project Yellow Paper, 2014.
[28] V. Zamfir, “Introducing casper the friendly ghost,”Ethereum Blog URL: https://blog. ethereum. org/2015/08/01/introducing-casperfriendly-ghost, 2015.
[29] C. Miguel and L. Barbara, “Practical byzantine fault tolerance,” in Proceedings of the Third Symposium on Operating Systems Design and Implementation, vol. 99, New Orleans, USA, 1999, pp. 173–186.
[30] D. Mazieres, “The stellar consensus protocol: A federated model for internet-level consensus,”Stellar Development Foundation, 2015. 

[31] “Antshares digital assets for everyone,” 2016. [Online]. Available: https://www.antshares.org
[32] M. Vukolic, “The quest for scalable blockchain fabric: Proof-of-work ´ vs. bft replication,” inInternational Workshop on Open Problems in Network Security, Zurich, Switzerland, 2015, pp. 112–125.
[33] C. Decker, J. Seidel, and R. Wattenhofer, “Bitcoin meets strong consistency,” inProceedings of the 17th International Conference on Distributed Computing and Networking (ICDCN). Singapore, Singapore: ACM, 2016, p. 13.
[34] D. Kraft, “Difficulty control for blockchain-based consensus systems,” Peer-to-Peer Networking and Applications, vol. 9, no. 2, pp. 397–413, 2016.
[35] Y. Sompolinsky and A. Zohar, “Accelerating bitcoin’s transaction processing. fast money grows on trees, not chains.”IACR Cryptology ePrint Archive, vol. 2013, no. 881, 2013.
[36] A. Chepurnoy, M. Larangeira, and A. Ojiganov, “A prunable blockchain consensus protocol based on non-interactive proofs of past states retrievability,” arXiv preprint arXiv:1603.07926, 2016.
[37] J. Bruce, “The mini-blockchain scheme,” July 2014. [Online]. Available: http://cryptonite.info/files/mbc-scheme-rev3.pdf
[38] J. van den Hooff, M. F. Kaashoek, and N. Zeldovich, “Versum: Verifiable computations over large public logs,” inProceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, New York, NY, USA, 2014, pp. 1304–1316.
[39] I. Eyal, A. E. Gencer, E. G. Sirer, and R. Van Renesse, “Bitcoinng: A scalable blockchain protocol,” inProceedings of 13th USENIX Symposium on Networked Systems Design and Implementation (NSDI
16)
, Santa Clara, CA, USA, 2016, pp. 45–59.
[40] S. Meiklejohn, M. Pomarole, G. Jordan, K. Levchenko, D. McCoy, G. M. Voelker, and S. Savage, “A fistful of bitcoins: Characterizing payments among men with no names,” inProceedings of the 2013 Conference on Internet Measurement Conference (IMC’13), New York, NY, USA, 2013.
[41] J. Barcelo, “User privacy in the public bitcoin blockchain,” 2014.
[42] M. Moser, “Anonymity of bitcoin transactions: An analysis of mixing services,” inProceedings of Munster Bitcoin Conference ¨, Munster, Germany, 2013, pp. 17–18.
[43] J. Bonneau, A. Narayanan, A. Miller, J. Clark, J. A. Kroll, and E. W. Felten, “Mixcoin: Anonymity for bitcoin with accountable mixes,” in Proceedings of International Conference on Financial Cryptography and Data Security, Berlin, Heidelberg, 2014, pp. 486–504.
[44] G. Maxwell, “Coinjoin: Bitcoin privacy for the real world,” inPost on Bitcoin Forum, 2013.
[45] T. Ruffing, P. Moreno-Sanchez, and A. Kate, “Coinshuffle: Practical decentralized coin mixing for bitcoin,” inProceedings of European Symposium on Research in Computer Security, Cham, 2014, pp. 345–364.
[46] I. Miers, C. Garman, M. Green, and A. D. Rubin, “Zerocoin: Anonymous distributed e-cash from bitcoin,” inProceedings of IEEE Symposium Security and Privacy (SP), Berkeley, CA, USA, 2013, pp. 397–411.
[47] E. B. Sasson, A. Chiesa, C. Garman, M. Green, I. Miers, E. Tromer, and M. Virza, “Zerocash: Decentralized anonymous payments from bitcoin,” inProceedings of 2014 IEEE Symposium on Security and Privacy (SP), San Jose, CA, USA, 2014, pp. 459–474.
[48] K. Nayak, S. Kumar, A. Miller, and E. Shi, “Stubborn mining: Generalizing selfish mining and combining with an eclipse attack,” inProceedings of 2016 IEEE European Symposium on Security and Privacy (EuroS&P), Saarbrucken, Germany, 2016, pp. 305–320.
[49] A. Sapirshtein, Y. Sompolinsky, and A. Zohar, “Optimal selfish mining strategies in bitcoin,”arXiv preprint arXiv:1507.06183, 2015.
[50] S. Billah, “One weird trick to stop selfish miners: Fresh bitcoins, a solution for the honest miner,” 2015.
[51] S. Solat and M. Potop-Butucaru, “ZeroBlock: Timestamp-Free Prevention of Block-Withholding Attack in Bitcoin,” Sorbonne Universites, UPMC University of Paris 6, Technical Report, May 2016. [Online]. Available: https://hal.archives-ouvertes.fr/hal-01310088
[52] “Crypto-currency market capitalizations,” 2017. [Online]. Available: https://coinmarketcap.com
[53] “The biggest mining pools.” [Online]. Available: https://bitcoinworldwide.com/mining/pools/
[54] N. Szabo, “The idea of smart contracts,” 1997. 

相关文章推荐

Trends and future of C++

  • 2011年12月31日 15:56
  • 2.27MB
  • 下载

An overview of the ARM architecture

ARM architecture versions The ARM architecture has been through several revisions since its emergen...

Java Card Technology for Smart Card's Architecture and Programmer's Guide (Zhiqun Chen)翻译版

第 1部分  绪论  1.2.智能卡应用开发中的挑战  开发一个智能卡应用传统上是一个长期而困难的过程。尽管卡片在尺寸、外形,和通信协议方面 被标准化了,但是它们的内部工作从一个制造商到另一...

Java Card Technology for Smart Card's Architecture and Programmer's Guide (Zhiqun Chen)翻译版(PART 6)

第 6章 Java 卡例外和例外处理   一个例外就是在一个程序的执行过程中中断指令正常流程的事件。在 Java 语言中,例外是很重要 的,因为它们提供了一种处理程序错误的极好方法。  ...

Java Card Technology for Smart Card's Architecture and Programmer's Guide (Zhiqun Chen)翻译版(PART 1)

第 1部分  绪论  1.2.智能卡应用开发中的挑战  开发一个智能卡应用传统上是一个长期而困难的过程。尽管卡片在尺寸、外形,和通信协议方面 被标准化了,但是它们的内部工作从一个制造商到另一...

Java Card Technology for Smart Card's Architecture and Programmer's Guide (Zhiqun Chen)翻译版(PART 4,5)

第 4章 Java 卡对象   在 Java 卡技术中,JCRE和 applets 通过建立对象来表示、存储,和操作数据。Applets 是利用 Java 编程语言编写的。卡片上可运行的 ...

Java Card Technology for Smart Card's Architecture and Programmer's Guide (Zhiqun Chen)翻译版(PART 0)

这是一本Java Card开发者的Bible,本人在Amazon上花了45大刀还不算运费才搞到的,翻译过来给大家共享。如果您觉得书不错,或者我翻译的烂,请支持正版。 Java Card Techno...

Java Card Technology for Smart Card's Architecture and Programmer's Guide (Zhiqun Chen)翻译版(PART 2、3)

第 2部分 JAVA  卡技术   第 3章 Java卡技术概述  Java卡技术能够使利用 Java  编程语言写的程序在智能卡上和其它资源有限的设备上运行。 本章将对 Java  卡技术...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:An Overview of Blockchain Technology: Architecture, Consensus, and Future Trends 全文翻译
举报原因:
原因补充:

(最多只允许输入30个字)