BTC.com手机客户端

Bitcoin-NG 可扩展的区块链协议

next 发布在 区块链,币头条 5 6445

integracijos

摘要

基于比特币和由比特币所引领的密码学货币 , 已经在很多方面展示了其作为基础设施的潜力,例如匿名在线支付、费用低廉的汇款、无需信任的数字资产交易和智能合约。然而,起源于比特币的区块链协议也有其自身的扩展限制,即在吞吐量和延迟之间的妥协,这也限制了该潜力的实现。本文讲述了Bitcoin-NG,一个新的可扩展的区块链协议。基于比特币区块链协议的Bitcoin-NG能够容忍拜占庭问题,可以抵抗一些极端情况,而且在对生态系统没质变的同时还能保持同样的可靠性。除了Bitcoin-NG,我们还会介绍类似比特币区块链安全和效率方面的一些新量化指标。我们实施了Bitcoin-NG,在现运行比特币系统 ,  15%的规模环境下 , 进行了大范围的实验,而且使用了未修改的这两个协议的客户端。这些实验表明,除了单个节点的带宽限制和网络的传输时间外,Bitcoin-NG可扩展性非常好。

 

1 简介

 

比特币作为第一个广泛部署和去中心化的全球货币,也引发了成百上千的山寨货币。总体上,密码学货币已经吸引了来自金融和技术部门以及学术方面的很多关注,而且深度介入灰色经济[32],市值曾达到了120亿美元,并吸引了将近10亿美金的风险投资[13]。支持这些系统的核心技术是维护分布式账本的中本聪共识协议,也称之为区块链。区块链科技提供了一个去中心化、开放、可容错拜占庭问题的交易机制,有望成为新一代的互联网交互的基础设施,包括匿名在线支付[12],汇款和数字资产交易[14]。目前正进行的智能数字合约探索,能够使得匿名的参与者按照程序执行复杂的协议[26][49]

尽管区块链协议有这些潜力,但也面临着严重的可扩展障碍[45][30][17][4]。系统能够处理的最大交易数目已经被所选择的两个参数限制了:区块大小区块间隔。增加区块大小能够改善吞吐量,但是会导致大区块需要更长的时间在网络上传输。减少区块间隔可以减少延迟,但是当系统处于不一致时会导致不稳定,而且区块链也会有改编的风险。为了改善效率,就需要妥协吞吐量和延迟。目前比特币的区块间隔时间是保守的10分钟,交易写入区块链的预期延迟就是10分钟 。目前区块大小设定为1MB,对于通常的交易规模,每秒生成的比特币交易仅为1~3.5个。区块扩容也是比特币社区[41]热议的话题。

在本文中,我们提出了Bitcoin-NG,一个基于比特币信任模型的可扩展的区块链协议。Bitcoin-NG仅受限于网络的传输延时,它的带宽仅受限于个人节点的处理能力。Bitcoin-NG通过将比特币的区块链操作分解为两部分来实现这个性能改善:首领选择(leader election)和交易序列化(transaction serialization)。它将时间划分为新片段,每一个片段都有单独的首领。在比特币中,首领选择是随意执行的,且不经常发生。一旦选择好首领,它就有资格序列化交易,直到一个新的首领出现,标记在前一个片段的尾部。

然而该方法与比特币的操作相差甚远,Bitcoin-NG保留了比特币的安全属性。比特币中也有首领选择。但是在比特币中,首领负责序列化历史记录,使得首领选择之间的持续时间成为了长时间的系统冻结。相反,Bitcoin-NG中的首领选择是向前进行的,确保系统能够持续处理交易。评估这个新共识协议的表现和功能是一个挑战性的工作。为了能够帮助量化评估及与其它的共识协议做对比,我们还引进几个指标来评估中本聪协议的实施。这些指标包括性能指标,例如协议实际吞吐量、延迟、以及安全的方方面面,包括维持共识和抵抗中心化的能力。

我们在一个大仿真试验台上评估了由1000个节点和总计超过15%的目前运行的比特币网络[35]的Bitcoin-NG的表现。该试验台允许我们使用现有的网络延迟来运行未修改的客户端。我们对比了Bitcoin-NG和原始的比特币客户端,并演示了比特币原始协议中关键的一些妥协。控制网络带宽,通过减少区块间隔时间来减少比特币的延迟和增加区块大小来改善其吞吐量,这两个操作都产生了负面影响。尤其是公平性受到了影响,大矿工比小矿工有优势。这个异常会导致中心化,而中心化情况下的算力更容易被单点控制,破坏了去中心化货币最基本的愿景前提。此外,算力损失会导致系统更容易受到攻击。相反,Bitcoin-NG将延迟和吞吐量改善至网络条件和节点处理限制的最大值,从而避免了公平性和挖矿算力利用率问题。

概括起来,本文有3个贡献。第一,它描述了Bitcoin-NG可扩展区块链协议,该协议在维持了比特币信任前提的情况下实现了比比特币更大的吞吐量和更低的延迟。第二,该协议介绍了评估中本聪协议的量化指标。这些指标是根据比特币衍生货币中选取参数的讨论来设计的。最后,通过大规模的试验量化了Bitcoin-NG的稳健性和可扩展性。

 

2 模型和目标

 

系统是由连接到一个可靠已验证的点对点网络中的一套N个节点组成的。每一个节点都能投票一个随机的数据库[5]作为随机的信息来源。节点能够生成密钥对,但是没有可信的公钥基础设施。系统采用了一个由密码学哈希函数H定义的相关联的难题系统。由字符串y定义的难题的答案是字符串x,且H (y|x) — 两者串联之后的哈希值 — 小于某个目标值。每一个节点i拥有有限的计算机算力,称之为挖矿算力,是由它每秒钟所能尝试的可能的难题答案数目来衡量的。难题的答案构成了工作量证明,因为它统计表明了节点为了找到答案所要执行的工作量。

任何时候,节点B(t) ⊂ N的一个子集是拜占庭,且行为随意,是由单个对手所控制的。其它节点是诚实的 — 它们遵守协议。每一个节点i的挖矿算力是m(i) 。任何时候,拜占庭节点的挖矿算力都小于总算力的1/4。

Snip20151101_6

因为使用了基于工作量证明的区块链,包括Bitcoin-NG在内都容易受到算力大于全网络算力1/4的攻击者的自私挖矿攻击[21]

中本聪共识

节点实施了可重复的状态机器(RSM)[28][44]。该系统的性能可以与传统共识[40]的性能相提并论:

终止(Termination)  存在时间差函数∆(•),给定时间t和0 < ε < 1值,一个节点在时间t时返回两个不同机器状态的概率要小于时间t’,t’>t+ ∆(ε)时的ε值。

一致(Agreement)  存在时间差函数∆(•),给定0 < ε < 1,时间t时两个节点返回不同状态t − ∆(ε)的概率要小于ε。

有效性(Validity)  如果拜占庭节点的挖矿算力的比例边界是f,

Snip20151101_7

那么,状态机器的平均转换比例小于f,这些转换并非是诚实节点的输入值。

 

3 比特币及其区块链协议

 

比特币是分布式、去中心化的密码学货币[6][7][8][37],它定义并使用了中本聪共识。比特币使用区块链协议来序列化用户的比特币交易记录。可重复的状态机器保留了不同用户的余额,它的转换就是用户之间转移资金的交易。该状态机器是由系统节点所控制的,称之为矿工。

每个用户命令地址,通过从她的地址到其他人的地址来形成一个交易,并将其发送至节点。说的更明确一些,一个交易来源于之前一个交易的输出值,并指向一个具体的地址。如果输出值是另外一个交易的输入值,那么该输出值已经被花掉了。如果指向客户端地址的未使用的输出值总计是x,那么该客户端在时间t时拥有x个比特币。使用密码学技术来保护交易,密码学技术只能确保一个可以转移资金的比特币地址的合法所有者。矿工只接受来源未花费的交易,因此可以防止用户双重花费他们的资金。矿工将交易提交至全球一个只能添加的记录中,该记录称之为区块链。

区块链以区块为单位来记录交易。每一个区块包含一个唯一的ID以及之前一个区块的ID。第一个区块,称之为创世块,是协议的一部分。一个有效的区块包含(1)之前一个区块的哈希密码学难题的答案,(2)目前区块中有效交易的哈希(特别是Merkle root),(3)一个称之为数据库的特殊交易,用来给矿工发放解决密码学难题的奖励。该过程称之为比特币挖矿,用专业术语的话,我们是将区块创建作为了区块挖矿。具体的密码学难题是指,区块头部的双哈希要小于一个设定值。难题的难度是由该设定值来决定的,难度是动态调整的,这样就能平均每10分钟产生一个区块。

挖矿 当矿工创建一个区块时,她会获得比特币奖励。奖励包括用户支付的交易费和一定数目的新产生的比特币。

分叉 任何矿工都可以把交易通过网络广播给其它所有矿工来将一个有效区块添加到区块链中。如果多个矿工使用了之前相同的区块来创建区块,区块链就会分叉为两个分支,形成了树状。其它矿工随后可能会将新的有效区块添加到任意一个分叉中。当矿工在现有区块后面添加新区块时,我们说矿工在现有区块上。如果该区块在分叉链上,我们说矿工处于分叉。

为了解决分叉,协议规定了矿工应该在那条链上挖矿。标准就是最重的区块链是获胜链,也就是说,需要(期望)最多算力生成的那条区块链。所有矿工都将区块添加到他们所知的最重的区块链中,就可以打破僵局 。节点所知的最重的区块链是序列化的RSM输入值,因此描述了RSM的状态。并不希望分叉,因为这表明没有全球达成一致的RSM状态。

主链之外的分支和区块称之为修剪 。修剪区块中的交易是忽略的。这些交易可以在后续的任何时候被添加到主链中,除非同时有冲突交易(使用了相同的输出值)被添加到主链。区块将交易广播至比特币网络需要几秒钟,而平均的挖矿间隔是10分钟。因此,偶然的分叉是很少的。平均每60个区块会出现一次[16]

 

4 Bitcoin-NG

 

Bitcoin-NG是一个序列化交易的区块链协议,与比特币很像,但是在未牺牲其它性能的情况下更好地考虑了延迟和带宽。该协议将时间划分为片段。每一个片段中,都有一个单独的首领来负责序列化状态机器转换。为了促进状态传输,首领会生成区块。协议介绍了两种类型的区块: 用于首领选择的关键区块和包含账本记录的微区块。每一个区块都有一个数据头,该数据头包含上一个区块的唯一引用,也就是上一个数据头的密码学哈希值。该协议的安全性来自激励参与者遵守规则的激励兼容性。我们在本章节详细描述协议的运算,将在第5章节介绍它的激励机制。

4.1 关键区块和首领选择

关键区块用于选择首领。跟比特币区块一样,关键区块包含了上一个区块的引用、目前的GTM时间、支付奖励的交易数据库、目标值以及一个任意位的随机字段。为了使关键区块有效,它的数据头的密码学哈希必须要小于目标值。与比特币不同,关键区块包含了一个在随后的微区块中要用到的公钥。而在比特币中,矿工为了生成区块,就必须要循环访问随机值,直到满足密码学难题的条件。因此,连续的关键区块之间的间隔是以指数形式分布的。为了达到固定的平均速率,就需要基于关键区块头部数据中的GTM时间来改变目标值从而调整难度。

Snip20151102_8

图1:Bitcoin-NG链的结构。微区块(圆圈)是用私钥来签名的,该私钥与最后关键区块(正方形)的公钥相匹配。40%的交易费分发给首领,60%分发给下一个区块。

无标题

图2:当微区块很频繁时,几乎在每一个首领更换时都会出现短暂的分叉。

当有分叉时,在所有关键区块中,由最多算力生成的那条区块链才是主链,这样就打破了僵局。

4.2 微区块

一旦一个节点生成了一个关键区块,它将变为首领。作为首领,该节点被允许以小于预先确定的最大值的固定速率来生成微区块。最大速率是确定的,而且它可以比关键区块之间的平均间隔大很多。微区块的大小是有预先确定的最大值的。特别是,如果一个微区块的时间戳是在未来,或者如果它与之前区块的时间差小于最小值,那么该微区块是无效的。该限制可以阻止首领(恶意地、贪婪地或破坏性地)使用微区块覆没系统。

一个微区块包含账本记录和数据头。数据头包含上一个区块的引用、目前的GTM时间、账本记录的密码学哈希以及数据头的密码学签名。签名使用的私钥与区块链中的最新关键区块的公钥相匹配。为了使微区块有效,所有的记录都必须有效符合状态机器的规范,而且签名也要有效。图1举例说明了数据结构。

注意,微区块不影响区块链的重量,因为它们不包含工作量证明。正如在第5章节中所描述的,这对维持激励均衡是至关重要的。

4.3 确认时间

当矿工生成一个关键区块时,他可能没有接收到之前首领所生成的所有微区块。如果微区块的产生很频繁,那么首领更换就是很常见的情况。正如图2例举的,结果就是会产生一个短暂的微区块分叉。在新关键区块(图示中的区块1)之前,任何接受即将修剪的微区块(图示中的区块1’和2’)的节点都可以观察到该分叉。一旦关键区块广播至那个节点,这个分叉就没有了。因此,用户看到微区块并考虑将其加入到主链中时应该等待网络传输时间,以确保不会被新关键区块所修剪。

4.4 报酬

为了激励挖矿,协议会对首领的工作进行补偿。报酬包括两部分。第一部分,每一个关键区块有权利给它的生成者一定数量的奖励。第二部分,每一次账本记录都有交易费。该交易费由在微区块中写入本次记录的首领和产生下一个关键区块的首领共享。如图1所示,目前的首领获得40%的交易费,紧接着的首领获得60%的交易费。会在第5章节解释选择这样分配的理由。

事实上,补偿是这样实施的,即每一个关键区块包含一个独立的交易数据库,该数据库用来铸造新币和将资金分发给现有首领和上一个首领。和比特币一样,该交易只能在100个区块的成熟期之后才能使用,以避免分叉产生非合并交易。

4.5 微区块分叉预防

因为微区块不需要挖矿,因此首领可以廉价且迅速地生成它们,从而分解系统大脑、将不同的重复状态机器的状态发布给不同的机器。这会造成双花攻击,而且不同的节点认为同样的币是由不同的交易花费的。

为了预防这样的行为,我们使用了专门的账本来作废欺骗者的收益。这样的账本记录在不同的章节中都已经使用了[19][3][11]。在Bitcoin-NG中,这样的账本记录称之为污染交易,而且它包含了修剪分支中第一个区块的数据头作为欺骗证据。污染交易必须在恶意首领花费这些收益之前,放置在下一个关键区块的后面。除了作废生成分叉首领的收益,污染交易还给现在的首领发放部分补偿,例如5%。会在第5章节解释选择该数值的理由。

每一个欺骗者只能放置一个污染交易,即使他创建了很多分叉。没有分发给欺骗者的欺骗收益资金将会丢失。

 

5 安全分析

 

5.1 激励

算力小于全网算力1/4的矿工会受到激励以遵守该协议。具体来讲,矿工会受到激励来(1)将交易包含在他们的微区块中,(2)延伸最重的区块链,(3)延伸最长的区块链。与比特币不同的是,后两点并完全相同。

最重的区块链延伸 延伸最重区块链的激励与比特币的一样。因为大部分矿工都会延伸最重区块链,它保持为主链的可能性很大。小部分会选择在另外的分支上挖矿,但这些分支无法追赶上主链,因此,它们也会在主链上挖矿来确保它的收益 。因此,假定比特币也是这样实现的话[34],那么Bitcoin-NG也实现了中本聪共识终止协议。

微区块没有重量,甚至不会作为次级索引。如果有这些的话,会给系统增加自私挖矿[20][38][43]的脆弱性。在私自挖矿中,攻击者扣留挖到的区块,将它们选择性地发布到主链中以获得更优的存在。如果微区块有重量,攻击者能够秘密地挖矿微区块,并且不把挖到的微区块发布给其它人以获得优势。

我们推断,Bitcoin-NG并没有给私自挖矿带来新的脆弱性,因此,Bitcoin-NG可以抵抗小于1/4全网算力的攻击者。因此,假定比特币也是这样实现的话,那么Bitcoin-NG也实现了中本聪共识有效性。

交易包含 首领将交易放置在一个微区块中可以获得40%的交易收益。然而,他可能会秘密地尝试去赚取100%的交易费。为了实现该目的,首先,首领创建一个含有交易的微区块,但并不发布它。然后,他尝试挖矿该秘密的微区块,而其他矿工在挖矿旧的微区块。如果首领成功挖到了接下来的关键区块,他将获得100%的交易费。否则,他会等待其他矿工将该交易放置在微区块中,并尝试去挖矿该微区块。

用rleader表示首领从交易中获得的收益,(1 − rleader)表示留给下一个矿工的收益。在Bitcoin-NG中,rleader=40%。rleader的值是这样的,矿工私自挖矿的平均收益要小于它应该将交易放置在公共微区块中的收益:

Snip20151102_9

Snip20151102_10

 

假设攻击者的最大算力小于全网算力的1/4,我们就能得到rleader > 37%,因此rleader = 40%在该范围内。

长链延伸 为了增加从交易中获得的收益,矿工需要避免交易的微区块,并挖矿上一个区块。然后他将交易放在自己的微区块中,并尝试挖矿下一个关键区块。在这种情况下,他的收益一定是小于上述的挖矿交易的微区块的。

Snip20151102_11
因此,rleader<(1-α)/(2-α) 。假设攻击者的算力小于全网算力的1/4,我们就能得到rleader<43%,因此rleader = 40%在该范围内。 理想网络假设 假设有一个0延迟的网络,且攻击者无法迅速处理信息 — 接收一条信息,并在原始信息之前将其发送给其它节点。在这样的假设下,认为比特币可以抵御高达将近全网算力1/3 [43]的自私挖矿攻击。然而,对于Bitcoin-NG,根据上述的假设条件,我们可以得到rleader > 45% 和 rleader < 40%,并没有交集。因此,在这样的理想网络假设下,比特币的区块链要比Bitcoin-NG的更有抵抗性。

绕过费用分配 用户可以通过不支付交易费而直接使用首领的关键区块地址数据库向目前的首领支付费用来绕过40-60%交易费分配。但是用户这么做并不能获得明显的优势。如上所述,只给目前的首领支付会直接增加目前首领将交易放入微区块的激励,但也会减少其它矿工挖矿该微区块的激励。而且,如果目前首领没有在结束之前包含该交易,接下来的首领将没有积极性来处理该交易。

费用操纵的一些其它动机,例如支付大额的交易费来鼓励矿工选择一个分叉链,这种情况适用于比特币和Bitcoin-NG,但不属于本文研究的范畴。

5.2 其它担忧

钱包安全 污染交易的产生会使攻击者获得首领的私钥来逆向取消他的收益,从而使自己获得一小部分收益。然而,这样的攻击者更有可能会偷窃首领的所有收益,因此引入污染交易并不会增加很大的脆弱性。

审查阻力 比特币的主要目的是预防矿工恶意漏失用户的交易。

首先,首领的绝对权力仅限于他所领导的时间片段。恶意首领可以通过不处理微区块中的交易来进行DOS攻击。同样,诚实的首领会在他的所领导的时间段内摧毁这些攻击,并将不发布微区块。一旦下一个首领发布了他的关键区块,这些影响都会消失。这种行为的影响类似于比特币中节点挖矿空区块的情况,尽管很少这么做。

假设大部分矿工是诚实的,且没有交易积压,用户将会把交易放置在诚实矿工生成的第一个区块中。至少3/4的区块是由诚实的矿工生成的,因此用户平均需要等待4/3个区块,或者13.33分钟。Bitcoin-NG的微区块不会改善审查阻力。关键区块的间隔可以设定为能将审查降至网络所允许的最小的一个数值,而且不会出现其它指标的恶化。

抵御挖矿算力变化 由于比特币的成功,出现了成百上千的替代货币[50],绝大多数都有着与比特币一样的区块链结构,且很多都使用了相同的工作量证明机理。为了维持区块的速率稳定,不同的区块链调整其工作量证明难度的速率也不同:比特币是每2016个区块 – 约2周,莱特币[31]是每2016个区块(生成速度更快) – 约3.5天,以太坊[49]是每一个区块 – 约12秒。然而,无论选择哪个调整速度,这些协议对算力的突然下降都很敏感。由于货币汇率的下跌,受物质激励的矿工会停止挖矿,从而就会导致这样的算力下降,或者由于挖矿难度的变化或货币价格的变化,矿工会去挖矿其它的币种,从而导致算力下降。这样的算力变化对一些小的山寨币来说问题更为突出。当它们的价格上涨时,由于矿工的大量涌入从而算力也迅速上升。然而,一旦难度上升,矿工又会去挖矿其它利润更高的山寨币,从而导致前一种币种的算力下降。目前,由于难度很高,其它的矿工将会需要更长的时间来生成下一个区块,可能需要数量级长度的时间。

在Bitcoin-NG中,难度调整也会形成类似的问题,但是它只影响关键区块。微区块是以相同的恒定速率生成的。因此,如果出现突然的挖矿算力下降,Bitcoin-NG的审查阻力会减少,因为很少生成关键区块了。如果一个恶意的矿工成为了首领,它将会生成微区块直到诚实的首领找到关键区块。然而,微区块中交易的处理仍以相同的速率进行。此外,即使难度调整到了正确的值,恶意矿工作为首领的时间仍然与他们的挖矿算力成比例。

分叉 当以更高的频率生成微区块时,几乎在每一个关键区块生成时Bitcoin-NG都会观察到分叉,因此上一个首领持续生成微区块,直到它收到关键区块(图2)。这些分叉能被迅速解决 — 一旦新的关键区块到达一个节点,将转换到新的首领。相比之下,当以这么高的频率运行比特币时,分叉只能通过最重区块链延伸规则来解决,而且因为不同的矿工在不同的分叉上挖矿,因此分叉存在的时间比Bitcoin-NG的要长。

图3

图3:关键区块分叉。区块2和3’拥有相同的区块链重量,直到生成区块7,分叉才解决。

图4

图4:点共识延迟示例,3个比特币节点a,b,c,分别在高度1,2,3(爆炸)时生成区块,而且知道这些区块都在主链中(云端)。间隔∆1和∆2分别是时间t1和t2时的点共识延迟。

然而,Bitcoin-NG也会存在关键区块分叉,如图3所示,分叉时在关键区块相同的前缀后面会生成多个关键区块。由于很低的频率和小关键区块的快速传输,这种分叉很少发生。然而,在本例中分叉的持续时间可能会很长,因为只能在下一个关键区块生成时才能解决。因此结果就是关键区块的分叉很少发生,但持续时间很长。尽管不希望发生这样长时间的分叉,但它们并不危险。分叉会广播到全网,一旦它到达节点,矿工就知道了未确认的状态。所有未确认的交易只出现在一个分叉上,直到该分叉链获得领先。

 

6 指标

 

现在我们已经详细说明了用于评估比特币和Bitcoin-NG的指标。这些指标用于评估中本聪共识的唯一属性。

共识延迟 直观来说,共识延迟是指系统达成一致所需要的时间。我们从定义开始,对于一个具体的执行和时间,后面的节点需要多长时间才能对状态达成一致。

在一种具体的算法执行中,给定时间t和比例0 < ε ≤ 1,ε点的共识延迟是最小的时间差∆,这样的话,在时间t到t − ∆,至少节点的ε • |N |是相同的状态机器前缀。图4例举了在比特比协议中这样的一个实例。

共识延迟是系统达到一定时间比例时最好的点共识延迟。更正式地说,系统的(ε, δ)共识延迟是ε点共识延迟的δ%。例如,如果在90%的时间内,至少50%的节点在10秒钟以前对状态机器的状态达成了一致,那么(50%, 90%)的共识延迟是10秒。

图5

图5:修剪和获胜的时间指标。

公平性 我们计算了两个比值:(1)非最大矿工的转换与所有转换的比值,(2)非最大矿工的算力与全部算力的比值。我们将这些比值称为公平性。最好的公平性是1.0:最大矿工和非最大矿工在转换设置中的表现应该与它们各自的挖矿算力一样。

挖矿算力利用率 工作量证明系统的安全性是由维护它的挖矿算力所提供的;也就是说,为了能够获得不成比例的控制,攻击者的挖矿算力要更快。挖矿算力利用率是维护系统安全的挖矿算力与全部挖矿算力的比值。浪费在区块链工作之外的挖矿算力所占的比例也不同。

修剪所需的客观时间 由于中本聪共识的概率特性,一个节点可能知道了状态机器转换,随后也知道了该转换没有发生,因为已经从历史记录中删掉了。这就是比特币中修剪分支的实例。

修剪所需的时间δ是节点知道转换所需的时间与它知道该转换没有发生所需时间差值的δ%。这意味着,用户要等待的时间就是等待转换发生。图5例举说明了比特币协议中的一个实例。

获胜所需的时间 获胜所需的时间δ是一个节点第一次知道从未修剪的转换发生的时间与一个节点(不同的节点)对于有替代转换发生未达成一致的最后时间差值的δ%。如果后者的时间更早的话,结果就是0。图5例举说明了比特币协议中的一个实例。

 

7 实验装置

 

我们在仿真网络上用1000个节点的实验来评估比特币和Bitcoin-NG。

实施 对于比特币,我们运行标准的客户端(0.10.0发布版),下文中简称比特币,配置最少的仪器来记录充足的信息。

在缺乏对手时,我们通过修改标准的比特币客户端(0.10.0发布版),实施了对性能分析有重要意义的所有Bitcoin-NG的要素。我们并未实施费用分配和微区块签名确认。这两个要素对性能的影响可以忽略不计 — 费用分配的每一笔交易都需要定点运算,签名确认给每一个微区块增加了几毫秒时间。

挖矿模拟 矿工找到解决办法的时间遵循几何概率分布,由于每一次猜测的不成功率以及猜测的概率,该时间分布也接近于指数分布。

图6

图6:误差线表示相应批次的第75、50和25%。

 

在我们的实验中,我们用调度程序替代了工作量证明机理,该调度程序中不同的矿工使用指数分布式的间隔来触发区块产生。这是用标准的比特币客户端{6}的复原测试模式以及一个原位控制器来实施的。在复原测试模式下,客户端跳过区块难度确认,并且接受任意难度的区块。它也接受由调度程序所下达的立即生成一个区块的命令。

挖矿算力 挖矿到区块的概率与解决密码学难题时所使用的挖矿算力成比例。因为区块是以设定的平均间隔来生成的,挖矿的总算力越大,小矿工挖到区块的时间间隔也越大。使用专门硬件的单个家庭式矿工好多年都不可能挖矿到一个区块了[48]

因此,挖矿算力趋向于集中在正式的工业挖矿和开放的矿池中。工业矿工是运行大规模挖矿设施的公司。运行个人挖矿设备的小型矿工通常都会联合起来形成挖矿矿池。矿池的所有成员一起来挖矿每一个区块,当其中的一个成员挖矿到一个区块后他们会共享收益。

为了能反映出我们设定的变化的矿工算力,我们检查了比特币挖矿的算力分布。我们进行分析所需要的信息 – 生成每一个区块的实体的身份,是由矿工自愿提供的。到2015年8月31日,我们都使用公共API[9]来收集这些信息。我们注意到,大约9%的区块身份是不明确的。我们认为这样的区块是由不同的个体矿工生成的。

今年的每个星期,我们都计算每一个实体的挖矿算力,并给最大的周挖矿算力排名为等级1,第二大的算力排名为等级2,以此类推。图6显示了排名前20的实体的周算力。不同排名相同阴影下的误差线表示了某一周的分布。每一批次的误差线代表着生成第n个最高区块的矿池比率集合。我们注意到不同实体的排名没有维持超过一周。Y轴代表了一个矿池在一周内生成区块的比例。

为了模型化挖矿实体的大小分布,我们用一个指数为-0.27的指数分布来预计它。与每一个排名的中位数相比,它生成了一个0.99的确定系数。

网络 比特币的重叠网络结构是很复杂的,其中很多是故意隐藏以预防拒绝服务(DoS)攻击来维护比特币的安全性和参与者的隐私(具体参见[25][35]的点对点网络)。节点无法透露他们的邻近节点,只有一个包含它们所接收到的节点父集。很多节点都隐藏在防火墙后面,甚至很难去估计网络的实际大小。节点之间的延迟是未知的。而且,对于我们所测量的很多指标,一个关键问题是一些矿工挖矿一个区块所需的时间与另外的矿工挖矿该区块所需的时间。为了实现这个,区块不仅要被第二个矿工广播并验证,而且第二个矿工必须要将详细信息广播给它的挖矿硬件设备。在有很多分散矿工的矿池的情况下,这可能会引起重大延迟。

图7

图7:在我们的系统中,区块的传输时间随着区块大小的增加而线性增加。该线性关系与在运行的比特币网络{16}中所观察到的线性关系相匹配。

 

系统缺乏现存的模式,我们将每一个节点都连接到至少5个其它的节点来构建一个随机的网络,全部是随机选择。我们在2015年4月7日从单个有利位置测量了比特币的所有可见节点的延迟,并创建了延迟柱状图。每个节点对中的带宽设置为32kbit/秒。为了验证我们的设置和拓扑的有效性,我们比较了在设置中和运行系统中比特币的传输性能。在改变区块频率的情况下我们完成了不同区块大小的实验,每秒钟的交易负载是恒定的。图7显示了区块大小和传输时间之间的线性关系,与Decker和Wattenhofer在比特币运行网络中所测量的线性关系类似[16]

无交易传输 本工作的目的是为了优化区块链共识机理。但是,当以高频率生成区块时,对目前的比特币实施来说,在区块填写生成和传输交易变成了主要因素。这并不是比特币协议或区块链协议的固有性能。为了减少由交易生成和传输机制所引起的影响,我们将交易的处理量减少到最小。在开始实验前,我们用人造交易初始化区块链,并且用可以以任意顺序序列化的独立交易来加满所有节点的mempools(数据结构存储尚未序列化交易)。交易的大小一样;目前运行的比特币系统的容量是每10分钟1Mb区块,每秒钟有3.5个这样交易的带宽。

图8

图8:实验结果

 

8 评估

 

我们评估了Bitcoin-NG,并在变化区块频率和区块大小的两组实验中于比特币进行了对比。

我们观察到,通过调整参数可以改善比特币共识的延迟和带宽,但是所有安全相关的性能指标就会恶化。Bitcoin-NG定性地别比特币好,因为它没有这样的恶化,而且在整个测量范围内几乎所有指标都表现出了优越的性能。

Bitcoin-NG的带宽只受到单个节点处理速度的限制,因为高的吞吐量不会产生分叉。共识延迟直接是由网络传输时间来决定的,因为在通常情况下,所有的节点一旦收到最新的关键区块,他们都对主链达成了一致。

指标 对50-100个比特币区块或Bitcoin-NG微区块所进行的每一次执行,以及每一次实验,我们所测量的指标如下:

共识延迟 我们基于区块链生成时间采集了(90%, 90%)-共识延迟。图4阐明了比特币的点共识延迟。

公平性 我们计算了(1)主链中由非最大矿工生成的区块与所有区块的比值的比例,以及(2)非最大矿工生成的区块与所有区块的比值。

挖矿算力利用率 我们计算了主链区块与所有区块的比例。在Bitcoin-NG中,难度仅在关键区块中增加,因为,微区块分叉不会减少挖矿算力利用率。

修剪时间 对每一个节点和分支,我们测量了节点修剪该分支所需的时间。接收到第一个分支区块的时间和接收到主链区块的时间的差值,而主链比分支要长(图5)。我们采用了所有样品的第90%的数据。

获胜时间 我们从每一个主链区块的生成时间到另外矿工生成非后代区块的最后时间中采用了第90%的时间(图5)。

图表 我们用不同的参数进行了多次实验。图表显示了每一组测量的平均值和用误差线标记的极限值。标记代表的是采样值。

8.1 区块频率

首先,我们对改善共识延迟进行了实验。对于比特币,我们通过减少工作量证明难度来改变区块生成频率。对于Bitcoin-NG,我们保持关键区块的生成速率为每100秒生成1个,而改变微区块的生成频率。对于每一个频率,我们选择有效载荷吞吐量与比特币运行系统相同的区块大小(对于Bitcoin-NG是微区块大小),也就是说,每10分钟1MB区块。图8显示了结果。

我们确定以交易频率测量的带宽接近3.5,即在这样的交易速率下运行的比特币的带宽值。在我们的实验中,比特币的带宽小于Bitcoin-NG的,比特币有小小的优势。

正如预期,更高的区块频率减少了比特币的共识延迟,因为在账本中交易的写入频率更高了。修剪时间也随着区块频率的增加有了显著改善。然而,与Bitcoin-NG相比,比特币频繁的分叉导致了更高的共识延迟和修剪时间。我们也注意到尽管非常少见,但关键区块分叉也确实存在。这样的关键区块分叉只能通过一个分支比其它分支有更多关键区块来解决,如果关键区块间隔很长的话这就会导致修剪时间很长。

随着频率的增加,比特币的挖矿算力利用率下降的很快,趋近于1/4,是最大矿工的算力。在极端情况下,区块的生成很快,以至于当一个矿工得知另外矿工生成了一个区块时,其它的矿工已经生成了更多的区块。只有最大的矿工生成主链区块,其它矿工追赶。这也意味着公平性在下降,因为最大的矿工有可能通过扩展其首选分支来解决分叉。当矿工努力追赶领先区块时,慢速的矿工会挖矿旧区块,因此获胜时间增加了。

因为在Bitcoin-NG中,竞争仅限于关键区块的生成,尽管微区块的频率很高,但分叉仍然很稀少。增加微区块频率可以减少共识延迟和修剪时间。其它所有指标均不受影响,保持在最优水平。

在Bitcoi-NG的低频率实验中,我们观察到了轻微的挖矿算力利用率下降和修剪时间的增加。这是一个人工实验装置。我们通过一定数量的区块来进行实验,因此这些竞争很低的实验还需要运行更长一段时间,以便能观察到关键区块分叉。在这些实验中,Bitcoin-NG关键区块的频率类似于比特币的区块频率。确实,在低竞争情况下,与Bitcoin相比,Bitcoin-NG只有很小的优势,因为它的关键区块很小,且传输很快。

8.2 区块大小

为了研究带宽的可扩展性,我们使用不同的区块大小来进行实验。我们使用高频率来观察系统的限制,将比特币的区块频率设定为1/10秒,Bitcoin-NG微区块的频率设定为1/10秒,关键区块的频率设定为1/100秒。图表??显示了结果。

根据需要,交易频率随着区块大小而增加;水平线表明了运行的比特币的速度。

大区块需要更长的时间来验证和传输。因此,尽管频率是固定的,矿工得知一个新区块的时间变得更长了,因此分叉机会增加了。

这些实验表明了在带宽和延迟之间预期的妥协。由于分叉,共识延迟增加了,因为需要更长时间来选择主链。获胜时间也增加了,因为区块需要更长时间来追赶上更大的区块,由于很多分叉,修剪时间也增加了。

但该妥协是可接受的,考虑到最佳的妥协点,真正的问题是安全。分叉导致了严重的挖矿算力损失,在比特币带宽中达到了80%(尽管在更高的区块频率下),使得系统容易受到更小算力矿工的攻击。

更多的不利是公平性的减少。即使是很小的公平性降低也是很危险的,因为它提供了激励来让矿工通过共同加入到更大的矿池来享受挖矿的优势,从而避免损失。这会导致挖矿算力的中心化,忽略了比特币的安全属性。

Bitcoin-NG演示了定性改善,且在公平性和挖矿算力安全相关的指标上没有大的下降。然而,在高带宽下,客户端的能力接近饱和,很难持续,我们观察到了共识延迟和修剪时间的恶化。

 

9 相关工作

 

模型 与比特币[37]及其增强功能[49][45][30]类似,Bitcoin-NG的目的是为了在开放系统中实施一个RSM。在不同的工作中探索了具体的假设和保证[10][34][22]。我们的模型类似于Aspnes et al.[2]和Garay et al. [22]的,我们对中本聪共识的定义类似于[22]的。这些与传统的拜占庭容错RSMs的模型和目标不同。那些,大体上是,(1)假定成员的变化是静态或者很慢,考虑了法定系统及其重置,(2)不保证状态机器转换中诚实参与者的公平性。

首领选举的问题是由Gerard LeLann[29]在1977年首次表述并解决的。在1982年,Hector Garcia-Molina在一个分布式系统中解决该问题,尽管失败了[23]。从那时候开始,首领选举开始大量用于改善分布式系统的性能(例如,[18][36])。在这些传统的共识协议中,首领的角色是建议决策,但决策必须由法定人数来确认。这与区块链协议中的区块首领一样。

GHOST Sompolinsky et al. [45]的GHOST协议通过改变区块链选举规则改善了比特币的可扩展性。在比特币中,工作量最多(在所有区块链链的区块中累计的基于工作量的证明)的区块链是主链,在GHOST中,对于分叉,节点可以选择其子树含有更多工作量(所有子树区块的累计工作量)的一方。最重的子树选择的好处就是考虑了主链中并未结束的工作量证明。因此,GHOST改善了在高竞争情况下的公平性和挖矿算力利用率。

然而,在GHOST中,修剪子树中的区块只影响分叉点的选举规则。在高带宽和高吞吐量情况下,考虑到更好的挖矿算力利用率和公平性,Bitcoin-NG维持了很小的分叉比例。而且,在运行的系统中使用GHOST还存在挑战。在比特币中,在任意给定的时间下,至少一个节点知道哪个是主链,因为它知道所有的区块。在GHOST中,情况不是这样的,可能没有一个节点有充足的信息来确定哪个是主链。附录A例举了一个实例。

在GHOST中找到真正主链的解决方法之一是传输所有的区块。然而,这会导致系统受到拒绝服务攻击,因为一个恶意节点能够用低难度的区块来攻击网络。这对避免这样的安全危险有启发;我们不再阐述该问题,但确实通过传输所有区块评估了系统。在这种情况下,GHOST的表现比比特币的差,因为传输所有区块的费用要超过区块链选择规则的收益。未来的工作可能会为GHOST面临的挑战找到一个方法,例如只传输区块头部。这样实用的GHOST实施能够用来补充Bitcoin-NG,从而实现更高的关键区块的频率。

包容区块链 Lewenberg et al. [30]用有向非循环图替代了区块链结构。仍有一条主链,但是它的区块可能会包含修剪分支中的交易。分析表明对安全性和挖矿算力利用率有很大改善。Bitcoin-NG实现了最佳的安全性和挖矿算力利用。使用含有包容性区块链的Bitcoin-NG来增加关键区块可能是有问题的:退役的首领可能会逆向引入交易,并让现在的首领将它们包括进去。这会导致DoS和双花攻击。

更快速的比特币 比特币的核心开发者做了大量的努力来改善比特币客户端的性能和协议的技术方面。而且这些工作会产生重大改善,并促进更好的扩展性,但不会消除高速情况下形成分叉的固有限制。

Stathakopoulou et al.建议减少比特币网络中的传输延迟[47]。然而,他们的建议意味着对安全进行重大妥协。首先,节点需要在实际交易之前传输交易清单;这会使得攻击者通过发布不存在的交易IDs来无成本地使网络陷入困境。其次,让节点与周围邻近的节点建立更好的连接从而形成一个网络 – 正好与目前的安全算法的方向相反。
改善客户端的效率[1][39]能够改善传输时间,并减少冲突窗口(A听到B发现一个区块之前)。然而改善是有限的 – 区块大小增加x%的同时分叉也会同样增加x%。

Bitcoin-NG提供了一个定性的改善,它可以减少分叉比例对区块大小的依赖性。

Corallo[15]已经为比特币创建了一个快速中心化的继电器,平行于标准的点对点网络。它大大改善了网络吞吐量和延迟,但增加了中心化控制,并减少了公平性 – 快速继电器之外的矿工处于不利的位置。

离线区块链解决方案 改善区块链带宽和延迟的另外一种方法是离线执行交易。这个假设起源于Hearn 和 Spilman的两点通道协议[24]。闪电网络和Decker和Wattenhofer[17]的协议可以实现大量的支付网络,其中无需信任的中间商即可发生交易。这些解决方法使用合约来允许任何一方在主区块链上放置欺骗证明,以拒绝作恶者的收益。

这些解决方案在很多场景下是适用的,但它们没有阐述扩展中本聪共识RSM的问题。举一个极端的例子,一个节点在一个通道中执行交易失败后,它的所有交易都会丢失,因为它们从未保存在区块链上。

另外一个改善带宽和延迟的提议是独立链,也称作侧链。在侧链中,交易能够将比特币从一条链转移到另外一条[3]。这可以实现工作量的切分:一部分比特币移动到它们自己的区块链,因此可以在那条链上管理它们。每一个切分碎片都运行自己的区块链,可以使用Bitcoin-NG来提高效率。如果无法切分碎片以及交易经常涉及到多条区块链的话,该方案并不能增加效率。

分析 给定一个密码学难题的难度和拓扑结构,Sompolinsky et al.[46]计算出了比特币主链增长率的上下界限。当只有两个矿工时,该分析能够转换为在不同难度级别下预期的分叉频率。我们的实验目标是大量矿工,按照比特币的运行系统来建模,并能根据主链的扩展速率来随意调整难度。

Miller 和 Jansen [33]描述了在一个单个设备上使用事件驱动模拟器来评估大型比特币区块链系统的方法。为了能容易地管理实验时间,他们用合适长度的延迟来替代耗时的密码学操作。在我们的实验中,我们直接在操作系统中运行了原始操作客户端,只仿真网络性能。

 

10 结论

 

随着比特币及密码学货币变得非常受欢迎,已经触及了扩展限制。改善扩展性的技术争论已经被性能指标和系统安全目标的内在妥协所阻碍了。因此,讨论已经变得很尖刻了,长期的解决方案似乎无望,目前的情绪已经包围了短期的妥协解决方案。

Bitcoin-NG表明,可以将区块链协议改善至这个程度,在这个程度下,整个网络参数限制了共识延迟和单个节点的处理能力是吞吐量的瓶颈。

这样的扩展对于区块链技术实现无需信任共识的应用至关重要,应用包括电子资产交易中的支付到智能合约 – 全球范围。

感谢 作者感谢Ayush Dubey, Gregory Maxwell, Malte M¨oser,和 Weijia Song对初始手稿的评论。

 

原文:Ittay Eyal Adem Efe Gencer Emin G¨un Sirer Robbert van Renesse
翻译者:Next(8btc.com 用户名)
比特币地址:1Mwmes1CAwgvy5SEpjPAkbnp94BYtsRw66

 

参考文献

 

[1] Andresen, G. O(1) block propagation. https://gist.github.com/gavinandresen/
#file-blockpropagation-md, retrieved July. 2015.
[2] Aspnes, J. Randomized protocols for asynchronous consensus. Distributed Computing 16, 2-3
(2003), 165–175.
[3] Back, A., Corallo, M., Dashjr, L., Friedenbach, M., Maxwell, G., Miller, A., Poelstra,
A., Timn, J., and Wuille, P. Enabling blockchain innovations with pegged sidechains.
http://cs.umd.edu/projects/coinscope/coinscope.pdf, 2014.
[4]Bamert, T., Decker, C., Elsen, L., Wattenhofer, R., and Welten, S. Have a snack, pay
with Bitcoins. In Peer-to-Peer Computing (P2P), 2013 IEEE Thirteenth International Conference
on (2013), IEEE, pp. 1–5.
[5] Bellare, M., and Rogaway, P. Random oracles are practical: A paradigm for designing efficient
protocols. In Proceedings of the 1st ACM conference on Computer and communications security
(1993), ACM, pp. 62–73.
[6] Bitcoin community. Bitcoin source. https://github.com/bitcoin/bitcoin, retrieved
Mar. 2015.
[7] Bitcoin community. Protocol rules. https://en.bitcoin.it/wiki/Protocol_rules, retrieved
Sep. 2013.
[8] Bitcoin community. Protocol specification. https://en.bitcoin.it/wiki/Protocol_
specification, retrieved Sep. 2013.
[9] BlockTrail. BlockTrail API. https://www.blocktrail.com/api/docs#api_data, retrieved
Sep. 2015.
[10] Bonneau, J., Miller, A., Clark, J., Narayanan, A., Kroll, J. A., and Felten, E. W. Research
perspectives on Bitcoin and second-generation cryptocurrencies. In Symposium on Security
and Privacy (San Jose, CA, USA, 2015), IEEE.
[11] Buterin, V. Slasher: A punitive proof-of-stake algorithm. https://blog.ethereum.org/2014/
01/15/slasher-a-punitive-proof-of-stake-algorithm/, January 2015.
[12] CNNMoney Staff. The Ashley Madison hack…in 2 minutes. http://money.cnn.com/2015/08/
24/technology/ashley-madison-hack-in-2-minutes/, retrieved Sep. 2015.
[13] CoinDesk. Bitcoin venture capital. http://www.coindesk.com/bitcoin-venture-capital/, retrieved
Sep. 2015.
[14] Colored Coins Project. Colored Coins. http://coloredcoins.org/, retrieved Sep. 2015.
[15] Corallo, M. High-speed Bitcoin relay network. http://sourceforge.net/p/bitcoin/mailman/
message/31604935/, November 2013.
[16] Decker, C., and Wattenhofer, R. Information propagation in the Bitcoin network. In IEEE
P2P (Trento, Italy, 2013).
[17] Decker, C., and Wattenhofer, R. A fast and scalable payment network with Bitcoin Duplex
Micropayment Channels. In Stabilization, Safety, and Security of Distributed Systems – 17th International
Symposium, SSS 2015, Edmonton, AB, Canada, August 18-21, 2015, Proceedings (2015),
Springer, pp. 3–18.
[18] Dwork, C., Lynch, N. A., and Stockmeyer, L. J. Consensus in the presence of partial
synchrony. J. ACM 35, 2 (1988), 288–323.
[19] Eyal, I., Birman, K., and van Renesse, R. Cache serializability: Reducing inconsistency in
edge transactions. In 35th IEEE International Conference on Distributed Computing Systems,
ICDCS 2015, Columbus, OH, USA, June 29 – July 2, 2015 (2015), pp. 686–695.
[20] Eyal, I., and Sirer, E. G. Bitcoin is broken. http://hackingdistributed.com/2013/11/04/
bitcoin-is-broken/, 2013.
[21] Eyal, I., and Sirer, E. G. Majority is not enough: Bitcoin mining is vulnerable. In Financial
Cryptography and Data Security (Barbados, 2014).
[22] Garay, J. A., Kiayias, A., and Leonardos, N. The Bitcoin backbone protocol: Analysis
and applications. In Advances in Cryptology – EUROCRYPT 2015 – 34th Annual International
Conference on the Theory and Applications of Cryptographic Techniques, Sofia, Bulgaria, April
26-30, 2015, Proceedings, Part II (2015), pp. 281–310.
[23] Garcia-Molina, H. Elections in a distributed computing system. Computers, IEEE Transactions
on 100, 1 (1982), 48–59.
[24] Hearn, M., and Spilman, J. Rapidly-adjusted (micro)payments to a pre-determined party.
https://en.bitcoin.it/wiki/Contract, retrieved Sep. 2015.
[25] Heilman, E., Kendler, A., Zohar, A., and Goldberg, S. Eclipse attacks on Bitcoin’s peerto-peer
network. In 24th USENIX Security Symposium, USENIX Security 15, Washington, D.C.,
USA, August 12-14, 2015. (2015), pp. 129–144.
[26] Kosba, A., Miller, A., Shi, E., Wen, Z., and Papamanthou, C. Hawk: The blockchain
model of cryptography and privacy-preserving smart contracts. Cryptology ePrint Archive, Report
2015/675, 2015. http://eprint.iacr.org/.
[27] Kroll, J. A., Davey, I. C., and Felten, E. W. The economics of Bitcoin mining or, Bitcoin
in the presence of adversaries. In Workshop on the Economics of Information Security (2013).
[28] Lamport, L. Using time instead of timeout for fault-tolerant distributed systems. ACM Transactions
on Programming Languages and Systems 6, 2 (Apr. 1984), 254–280.
[29] Le Lann, G. Distributed systems-towards a formal approach. In IFIP Congress (1977), vol. 7,
Toronto, pp. 155–160.
[30] Lewenberg, Y., Sompolinsky, Y., and Zohar, A. Inclusive block chain protocols. In Financial
Cryptography (Puerto Rico, 2015).
[31] Litecoin Project. Litecoin, open source P2P digital currency. https://litecoin.org, retrieved
Nov. 2014.
[32] Meiklejohn, S., Pomarole, M., Jordan, G., Levchenko, K., McCoy, D., Voelker, G. M.,
and Savage, S. A fistful of bitcoins: characterizing payments among men with no names. In
Proceedings of the 2013 Internet Measurement Conference, IMC 2013, Barcelona, Spain, October
23-25, 2013 (2013), pp. 127–140.
[33] Miller, A., and Jansen, R. Shadow-Bitcoin: Scalable simulation via direct execution of multithreaded
applications. IACR Cryptology ePrint Archive 2015 (2015), 469.
[34] Miller, A., and Jr., L. J. J. Anonymous Byzantine consensus from moderately-hard puzzles:
A model for Bitcoin. https://socrates1024.s3.amazonaws.com/consensus.pdf, 2009.
[35] Miller, A., Litton, J., Pachulski, A., Gupta, N., Levin, D., Spring, N., and Bhattacharjee,
B. Preprint: Discovering Bitcoins public topology and influential nodes. http:
//cs.umd.edu/projects/coinscope/coinscope.pdf, 2015.
[36] Moraru, I., Andersen, D. G., and Kaminsky, M. Egalitarian Paxos. In ACM Symposium on
Operating Systems Principles (2012).
[37] Nakamoto, S. Bitcoin: A peer-to-peer electronic cash system. http://www.bitcoin.org/
bitcoin.pdf, 2008.
[38] Nayak, K., Kumar, S., Miller, A., and Shi, E. Stubborn mining: Generalizing selfish mining
and combining with an eclipse attack. IACR Cryptology ePrint Archive 2015 (2015), 796.
[39] Pazmino, J. E., and da Silva Rodrigues, C. K. ˜ Simply dividing a Bitcoin network node may
reduce transaction verification time. The SIJ Transactions on Computer Networks and Communication
Engineering (CNCE) 3, 2 (February 2015), 17–21.
[40] Pease, M. C., Shostak, R. E., and Lamport, L. Reaching agreement in the presence of faults.
J. ACM 27, 2 (1980), 228–234.
[41] Peck, M. E. Adam Back says the Bitcoin fork is a coup. http://spectrum.ieee.org/tech-talk/
computing/networks/the-bitcoin-for-is-a-coup, Aug 2015.
[42] Poon, J., and Dryja, T. The Bitcoin Lightning Network. http://lightning.network/
lightning-network.pdf, February 2015. Draft 0.5.
[43] Sapirshtein, A., Sompolinsky, Y., and Zohar, A. Optimal selfish mining strategies in Bitcoin.
CoRR abs/1507.06183 (2015).
[44] Schneider, F. B. Implementing fault-tolerant services using the state machine approach: A
tutorial. ACM Computing Surveys 22, 4 (Dec. 1990), 299–319.
[45] Sompolinsky, Y., and Zohar, A. Accelerating Bitcoin’s transaction processing. fast money
grows on trees, not chains. In Financial Cryptography (Puerto Rico, 2015).
[46] Sompolinsky, Y., and Zohar, A. Secure high-rate transaction processing in Bitcoin. In Financial
Cryptography and Data Security – 19th International Conference, FC 2015, San Juan, Puerto Rico,
January 26-30, 2015, Revised Selected Papers (2015), pp. 507–527.
[47] Stathakopoulou, C. A faster Bitcoin network. Tech. rep., ETH, Z¨urich, January 2015. Semester
Thesis, supervised by C. Decker and R. Wattenhofer.
[48] Swanson, E. Bitcoin mining calculator. http://www.alloscomp.com/bitcoin/calculator, retrieved
Sep. 2013.
[49] The Ethereum community. Ethereum white paper. https://github.com/ethereum/wiki/wiki/
White-Paper, retrieved July. 2015.
[50] Wikipedia. List of cryptocurrencies. https://en.wikipedia.org/wiki/List_of_
cryptocurrencies, retrieved Oct. 2013.

A GHOST 传输举例

图9例举了当系统中没有单个GHOST协议节点知道主链时的实例。考虑三个节点,1,2,和3,每一个只知道部分区块子集。每一个节点知道长度为4个高度的区块链,而且每一个节点知道3个高度的一条区块链,从区块20到区块30.,300或3000,分别如图9a,9b,和9c。

图9

图9:不允许节点1 (a),节点2 (b),和节点 3 (c)猜测那条是主链时的GHOST区块树的部分视图。

B 关键区块分叉竞争

我们注意到,在两个矿工发现有竞争的关键区块跟随相同关键区块(任意数目的微区块之后)的分叉中,事情会比比特币中的更复杂。在此,为了吸引矿工选择他的分支,每个首领给紧接着的矿工发布一个包含大额费用的交易。然而该竞争会引入有趣动态情景,但已超过了本文的范畴,我们注意到,每个分支可能会复制放置在竞争分支微区块中的交易,因此,尽管由于外部激励,攻击者会放置大额的交易费,但它的竞争者会复制这些相同的交易,并消除攻击者的优势。

 

Ittay Eyal  Adem Efe Gencer  Emin G¨un Sirer  Robbert van Renesse

康奈尔大学

翻译者:Next(8btc.com 用户名)

比特币地址:1Mwmes1CAwgvy5SEpjPAkbnp94BYtsRw66

稿源(译):巴比特资讯

 

版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。
发文时比特币标准价格 买价:¥2226.85 卖价:¥2226.68

评论:5

您需要登录后才可以回复 登录|注册