OKCoin

论加速比特币交易处理速度

骨髓行走 发布在 技术指南 27 10756

20130412070820259be6065d6_0x0_600

作者IDavivz78bitcointalik.org)

译者:骨髓行走

前言:本文阐述了一种加速比特币交易处理速度的办法。译者大致理解为:传统的确认方法基于“最长区块链法则”(longest chain rule),而本文提出了一种“贪婪-最大权重-子树选择法则”(Greedy Heaviest-Observed Sub-tree selection Role)(原谅译者找不到一个更好的翻译名字)该学者将其研究的论文以通俗的形式在论坛上进行发帖,本翻译为其通俗版。有兴趣的朋友可以参考该贴子中作者所给出的原文链接。

以下为原帖内容:

大家好!我是来自以色列希伯来大学的研究者,我已经同我的一个学生(Yonatan Sompolinsky)进行了比特币相关的论文研究。我们已经得出了喜人的成果,并且迫不及待的想在这里跟大家分享。

在此给出完整版论文连接:

http://www.cs.huji.ac.il/~avivz/pubs/13/btc_scalability_full.pdf

标题:加速比特币交易处理速度(以树状加速比特币增长,而非链式)

 

由于该论文很长,并且面向学术研究者翻看,所以我们觉得为比特币爱好者提供一个简明扼要版本的论文是比较合适的:

摘要:我们提出了一种针对区块链的协议改进方法,以此来达到区块大约每秒增长一次的结果。该方法能在这种速率下每秒处理200个交易记录(译者:200个!~每秒啊!),且在特定的带宽条件下将网速消耗降至0.5MBPs以下。上述的一切都不会引起50%攻击的怀疑性。这个方法切实解决了一个问题,即引起中本聪要将区块链创造速率设置为10分钟的问题。我们也对在这种改进方法实施前和实施后每秒能够处理的交易数量。我们认为区块传播时间是比特币网络可扩展的首要障碍。

更具体的解释下文详述。我们研究的首要目标是快速确定比特币网络处理交易的能力。以下是我们的主要研究发现:

扩展性、延期以及安全性:

我们以检测在高交易速率下比特币的安全性为通篇的开始。比特币每秒可处理的交易量主要受以下两个因素的限制:1、区块产生速度(10分钟1区块);2、区块规模限制(现在默认是1MB)。这两个参数共同影响着比特币网络每秒可以处理的交易数量。增加每秒交易量的直接有效的办法就是要么增大区块规模,要么增加区块产生速度。这两个变化都是存在争议的,原因是:这两个变化都可能影响协议的安全保障。首先,让我们考虑每秒区块数量的增加(例如,莱特币的区块是每2.5分钟产生一个)。因为区块被快速产生,许多冲突性的区块被产生。区块中的多数都会被附在区块链之后。同样的情况会在区块规模扩大时发生:更大的区块需要更长的时间通过网络进行传播(受制于带宽),并且同时产生的区块更可能处在区块们的顶部,也就是说它们会被丢弃。

 

区块被丢弃降低了网络的安全性,这一事实使得该网络更容易遭受50%攻击。例如,如果区块的半数以这种方法被丢弃,则全网也就浪费了半数哈希算力对交易确认做无用功。那个中心化且没有延迟的攻击者,能够实行一个叫做所谓的“50%”攻击,该攻击拥有33%哈希算力多一点点就可以实现。这是因为较之于网络中的其他人,它能够轻松产生更长的区块链。

使用不同的技术,我们分析有多少区块在区块链的尾端,有多少被丢弃,并以此估计对不同的参量而言网络安全性的变化。在众多结果之中,我们发现传输那些仅含交易哈希(替代整个交易记录)的区块能够极大程度的有助于扩展性(那就是说,这不是2倍带宽的节约,而是每秒交易记录十六倍(译者:专业知识匮乏,不知是16倍还是16叠什么的,请见谅。)的提高!)

 

我们建议的协议改进:(在完整论文第八部分会做出说明)

高交易速率意味着许多有冲突的区块被产生出来,那么如果这些区块没有真的丢失的话,它们是很有用的。实际上,每一个区块不仅可以视作为包含着交易记录,也被视作嵌入了之前的区块。即使一个区块并非存在于主区块链中,我们还是能计算出该区块给之前区块的确认信息作为一种有效性的证明。这是我们提出的改进的基础,我们把它叫做”greedy heaviest-observed sub-tree”区块链选择法则。

粗略的说,每一个区块都包含着之间区块的哈希,那么所有的区块构造了一个树状结构,该树状结构的根是上帝区块。比特币现行的系统是选择接受那个在树中最长的区块链。我们提出另外一种方法:在每一个分支上,选择包含最多区块子树(sub-tree)。持续这种选择直到到达一个叶节点。则这个选择路径就是网络节点应该接受的区块链。但是这如何帮助比特币网络呢?注意到现在,一个希望改变由算法所选择的主区块链的攻击者需要在网络诸多分支们的一个中改变我们的决定。要这么干,他需要建立比包含在整个子树中的区块更多的区块。(而非仅仅是创造比最长区块链包含的区块更多的区块!)

这里有一个greedy heaviest-observed sub-tree(GHOST)区块链选择法则(以下简称GHOST法则)的虚代码:

1. SET B <- Genesis Block.
2. IF B has no successors: RETURN(B).
Else: SET B <- Child of B with heaviest sub-tree.
3. GOTO 2

 

该改进的代价:在区块产生速率较低以及区块规模较小的情况下,使用最长链法则和上文提到了GHOST法则是没有太大区别的。此时无成本。二者几乎是相同的,因为在这种情况下最长区块链法则也是最大权重的子树。而在高交易速率下,GHOST法则在他的主区块链里构造了稍少的区块,因此稍微降低了每秒被接受的交易数量,但是它变得更安全了!延迟和许多不在链上的区块不再使整个网络更易受到50%攻击。这意味着我们可以增加交易速率和区块规模,而之前这么做风险极大且十分容易造成交易容量的损失。实际上,我们估计一秒钟产生的区块量很容易超过200个。这意味着相当快的授权时间。甚至一个确认都会造成某种程度的不可逆,并且当区块每秒被产生时,这种确认几乎是瞬间完成的

 

因为比特币的安全性主要是依赖接受到的确认数量而非时间流逝,我们可以做出一种改进,使得不可逆交易的时间以极高的可能性远远小于10分钟。

 

一些主要问题的简要陈述:

我必须澄清一点:我们不可能说我们能够解决关于比特币所有方面的问题(如激励和挖矿集中化等)所以我认为应当专注于协议当中已经存在的问题,我们的主要关切点在于当高交易速率发生时网络安全性将会变差,GHOST法则调整则修复了这一点。如果你对一秒创造区块不确定,该调整在区块创造速率较低时同样有价值。定位高交易速率的需要一直存在。

 

几个特殊的评论:

1.具有低延迟时间的节点有优势。那些能快速到达网络其他部分的节点会在主区块链上有更多的区块。

回答:如果现在高交易速率存在那么这将是比特币协议所面临的一个严峻问题。强劲的矿工将能得到更多的区块。但GHOST调整的不是这个,我们所给出的改进是关于在这种场景下50%攻击不会变的更坏。

 

2.DDOS攻击:恶意节点能够在上帝区块上以低难度挖矿

回答:这也是现行比特币协议所面临的一个问题。这就是为何监测点需要被放置的原因。这里会有研究者的解释:

https://bitcointalk.org/index.php?topic=194078.msg2014204#msg2014204.

监测点在我们的方案中仍能使用。

 

3.SPV客户端需要更多带宽和储存空间如果每秒区块创造速度更高

回答:确实如此。但是该改进应该更有可能找到对SPV节点更好的机制。例如,无需下载全部的区块链也应该有可能验证一个长区块链。

 

4.如果节点们下线一段时间,他们如何获知被遗弃的区块?

回答:我们建议每个区块也应包含在头端不在链上的区块的哈希。用这个方法,主区块链也包含所有不在区块链上的区块的记录。

 

5.储存问题:需要更多空间

回答:诸如迷你区块链的方法可被应用,该种方法允许你只保存近期的一些事件。但现在仍没有办法面对高交易速率需要大量存储空间的办法。再次声明,这不是由我们的改进所引起的。你不需要保留丢弃区块的信息,只需保留他们的头端以验证难度。在链上有更多的区块仅仅意味着他们中的每一个将有更少的交易。唯一增加的成本只是保留更多的头端。

 

 

版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:27

您需要登录后才可以回复 登录|注册
    骨髓行走_
    骨髓行走_ 1057 天前

    回复@长铗:我的后面有一个杠

    +1
    +1
    我要点评
    长铗
    长铗 1057 天前

    回复@骨髓行走_:[哈哈]你的ID都被抢注了?

    +1
    +1
    我要点评
    骨髓行走_
    骨髓行走_ 1057 天前

    前辈,你@错人了。。。

    +1
    +1
    我要点评
    Author Image
    changjia 1080 天前

    资助0.03btc
    交易ID dc244c760ba5163331a174f71a0cbc9f0e69e728291c4192484d77904d0e3f58

    +1
    +1
    我要点评
    稚芜
    稚芜 1088 天前

    建议巴比特做做微信平台吧!帮助微信用户了解比特币资讯~

    +1
    +1
    我要点评
    TheDawnbreaks9
    TheDawnbreaks9 1088 天前

    //@hydrogenesis: 一个问题就拍死了:200x 的性能,需要 200x 的存储空间。以现有的 blockchain 增长速率计算,一个 full node 每天要新增 4.7GB 的数据[晕] ,搞成 ripple 那样还差不多 //@赵乐天: //@暴走恭亲王://@Bitcoin-24: 山寨币先上

    +1
    +1
    我要点评
    hydrogenesis
    hydrogenesis 1088 天前

    一个问题就拍死了:200x 的性能,需要 200x 的存储空间。以现有的 blockchain 增长速率计算,一个 full node 每天要新增 4.7GB 的数据[晕] ,搞成 ripple 那样还差不多 //@赵乐天: //@暴走恭亲王://@Bitcoin-24: 山寨币先上

    +1
    +1
    我要点评
    七宝林银匠世家
    七宝林银匠世家 1089 天前

    tks 4 sharin!

    +1
    +1
    我要点评
    suki722
    suki722 1089 天前

    110入 真的没希望解套了 一直卡70. [汗]

    +1
    +1
    我要点评
    逍遥逸仙
    逍遥逸仙 1090 天前

    我理解论文作者的意思了。

    比特币现在的策略是选择的是树中最长的链作为主链。他的改进是选择是:从上帝区块出发,每下一个区块的选择,以这个区块下面的子树中区块数目最大为选出区块,一直这样选择,一直选择到最新的那个区块,这样主链就出来了。

    但是我的改进建议是: 每个区块的子树中的区块还要乘以该区块的难度作为权重再求和,以此作为选出区块的标准,而不是单纯计算区块数目。

    +1
    +1
    我要点评
    逍遥逸仙
    逍遥逸仙 1090 天前

    我理解了,论文作者的的意思了。
    比特币现在选择的是树中最长的链作为主链。他的改进是选择是:从上帝区块出发,每下一个区块的选择,以这个区块下面的子树中区块最多为选出区块。
    但是我的建议是:每个区块乘以该区块的难度作为权重再求和,以此作为选出区块的标准。

    +1
    +1
    我要点评
    海则
    海则 1090 天前

    //@暴走恭亲王://@Bitcoin-24: 山寨币先上

    +1
    +1
    我要点评
    PengYunqiang
    PengYunqiang 1090 天前

    //@hydrogenesis: 转发微博

    +1
    +1
    我要点评

    不明觉厉。1、算法有么有漏洞看不懂,但比特币确认能被加速这一点我一直都坚信。2、中本聪当时为何不将确认时间尽可能缩短?是技术能力不足?我看未必,也许比特币需要韬光养晦的机会,否则一出生就和全球货币叫板也许会死的很惨!//@胡翌霖: 很巧妙的感觉,山寨币上吧~//@暴走恭亲王://@Bitcoin-24:

    +1
    +1
    我要点评
    lonssun2013
    lonssun2013 1090 天前

    不给放吗?夹子,怎么也不给个评价啊?

    +1
    +1
    我要点评
    骨髓行走_
    骨髓行走_ 1090 天前

    前辈太客气了!

    +1
    +1
    我要点评
    胡翌霖
    胡翌霖 1090 天前

    很巧妙的感觉,山寨币上吧~//@暴走恭亲王://@Bitcoin-24: 山寨币先上

    +1
    +1
    我要点评
    在路上剑晨1984
    在路上剑晨1984 1090 天前

    //@_________歸鴻: //@Saliya流向巴黎: #钟汉良代言新天龙# 又看一遍,狐狸剪得不错,笑趴了[哈哈]妹纸们也录了一晚上到凌晨。。。八姑娘看过来@天龙八部

    +1
    +1
    我要点评
    暴走恭亲王
    暴走恭亲王 1090 天前

    //@Bitcoin-24: 山寨币先上

    +1
    +1
    我要点评
    Bitcoin酱
    Bitcoin酱 1090 天前

    山寨币先上

    +1
    +1
    我要点评
    Speed_Jonas
    Speed_Jonas 1090 天前

    权重优化,动态排序

    +1
    +1
    我要点评
    圈里圈外LEO
    圈里圈外LEO 1090 天前

    //@瑞波支付: 转发微博

    +1
    +1
    我要点评
    Ender_Viking
    Ender_Viking 1090 天前

    回复@Yanxi-Com:网站问题。可能和新浪有关。直接在搜索结果中打开似乎无碍。

    +1
    +1
    我要点评
    星空吴钢
    星空吴钢 1090 天前

    当block产生速度为一秒一个block时候的一种解决方案。当网络传播速度快于block长生速度,该算法就退化为最长链算法。当网络传播速度慢于block产生速度时,必然就产生大量的孤子block,该算法看起来是孤子block的计算量也不浪费,但是孤子block的交易还是无效。看起来很美,其实没有用处。

    +1
    +1
    我要点评
    unresttrain
    unresttrain 1090 天前

    @药片在奋斗 长这样

    +1
    +1
    我要点评
    Yanxi-Com
    Yanxi-Com 1090 天前

    打开又是白页,8btc经常有这个问题,不知是我的网络还是网站问题

    +1
    +1
    我要点评
    我是变态猪
    我是变态猪 1090 天前

    #小爽送你土豪金#好活动大力宣传!感谢小编不断将惊喜带给所有喜欢你的粉丝,祝小编开心每一天!希望微博活动人气直升越来越火。 地址:http://t.cn/8kVNXwP

    +1
    +1
    我要点评