当前位置:首页 > 比特币新闻 > 正文

《使用子链降低孤块风险和改进零确认安全》导读

来源: 互联网时间:2016-08-11 10:48:00

 

filehelper_1470834504242_86

第0章 引言

比特币作为一个支付方式,其用户体验其实是非常差的。其交易量被限制在了每秒只能处理3笔(理论上能处理7笔,实际上远远达不到。)平均要等10分钟才能确认支付安全。任何一个使用过支付宝的人都不会认为比特币是一个“合格”的支付方式,很显然连及格都不算。

如何改进比特币的支付性能,也是这两年社区争论最多的话题。扩容就是关键的改进路径之一。但没有一个扩容方案获得了全社区的一致认同,其中一个很重要的原因是硬分叉和软分叉的安全争议。

Peter R.Rizun提出一个不需要硬分叉,也不需要软分叉的链上扩容方案——子链,他还通过理论推演得到子链可以降低全网孤块率,以及能提高零确认安全性。

Peter是通过一篇论文来表达他的思想的,我把论文翻译成了中文。论文确实很难读,又难又枯燥,我用了9天的时间才译完。为了帮助各位更轻松的阅读,我这里写一个科普性质的导读版。

谢谢阅读。

第1章 简介

Peter在第1章对比了比特币和Visa两个支付方式的性能,比特币表现很不如意哈,这我们都知道。然后提出一种提高比特币支付性能的改进方式——子链。

开头还论述了子链主要承载的功能有三个:一是增加比特币的交易处理量,就是突破每秒3笔的这个限制。而且是通过一种不需要软或硬分叉的方式;二是降低全网孤块率;三是安全降低交易确认时间。

对于第二个功能我通读全文后发现Peter的意思并不是说子链可以降低目前1M区块下的孤块率,其理论是当区块更大时(比如8M)全网的孤块率就会上升,但通过子链技术就可以降低大区块的孤块率。

论文不单单是基本数学理论,而且也通过了经济学规律来论证。可见Peter的功底。

Peter是一个物理学家,还是一个企业家。挺了不起的。

第2章 符号列表

这个大家就读原文去了,在此没什么好总结的。

第3章 子链

这是论文最难的部分。

我们先来复习下比特币目前的挖矿机制,即工作量证明(POW)。一个矿工挖矿的过程是计算一个随机数,谁先算出这个符合条件的数,这个条件叫“目标值”,就成功挖到一个区块,就可以拿到区块奖励和交易手续费了。考虑到交易安全性,比特币系统设定全网平均10分钟就会有人算对一次,如果在2016个区块内这个平均时间比10分钟快,那系统就会加大计算的难度,反之就减少。为了衡量挖矿出块时间,系统定义了一个叫“难度”的值。“难度值”和“目标值”是可以通过计算公式相互计算的。

在Peter的论文中将符合上面的POW挖出来的区块叫“强区块”,然后定义一种将计算难度更低的“低难度值”,对应的也就可以计算出一个低目标值,论文称为“弱目标值”。比如“低难度值”只有前面的“难度值”的四分之一,也可以是十分之一,这就看系统的多方衡量考虑。当矿工计算的随机数符合了这个“低难度值”的条件下计算出来的“弱目标值”时,这个矿工就挖到了一个叫“弱区块”的区块。这种“弱区块”的出块速度就要比“强区块”快很多,比如快4倍,或10倍,依据系统设定的“低难度值”是原“难度值”的多少而定。

弱区块和强区块类似,也包含类似的数据结构,也有前散列值、随机数、根散列值、coinbase信息,和大量的交易交易,最后还额外包括一个叫“子链头部”的信息。这种弱区块被作者书写成“Δ-区块”。

由弱区块组成的链就称为子链,这是依附在强区块链上的。当有矿工挖到一个强区块时,子链就关闭了。然后系统再开启一个子链,等着依附到下一个强区块上。

当有矿工挖到强区块后,依附在上面的子链就会被打包进强区块。关闭子链后,这个强区块的具体数据结构应该和现有的区块数据结构一样,但Peter没有提到这个变化。因为Peter强调子链是不需要硬分叉,也不需要软分叉,所以我猜测是不会变的。(我会发邮件给Peter问下这个问题。)

另外子链被添加到强区块后,强区块的体积就会大于目前的1M限制,那这些区块为什么会被现有节点接受呢?论文没有直接讲这个问题,但讲到了强区块的广播方式是只广播和广播弱区块的方式是一样的,只广播他的Δ-区块和弱区块哈希值,至少整个强区块的数据结构就不需要广播了。这样节点就能认了。至于这个原理我也没理解,如果有谁理解了,麻烦告诉我。谢谢。

弱区块没有区块奖励,只有强区块才有。但弱区块有交易手续费,所以矿工也可以通过挖弱区块获得收益。

第4章 构建Δ-区块

我们先回顾下比特币区块链是怎么构建的,就是由矿工去挖矿,挖到一个区块就去广播,将区块添加到原区块链上去。区块链就这样会越来越长。

子链的创建也是一样,在强区块被挖到前,矿工计算到一个符合子链难度的随机数值时,就可以创建一个弱区块,也就是Δ-区块,往里添加交易,然后就去广播区块数据。

广播Δ-区块也存在现在的矿工挖到的块被孤立的情况,所以Peter计算了Δ-区块被孤立的理论值,使用图表和数学公式来计算孤块率。这个计算过程比较复杂,图表也很难理解,我就直接说结论。

Δ-区块被孤立的主要因素是其体积大小,如果矿工添加了太多的交易,体积就大,那就有可能被孤块掉。但你不添加交易,或少添加交易,矿工就挣不到手续费。Δ-区块可没有12.5BTC的区块奖励哦。所以矿工会在添加多少交易,和挣多少手续费之间有个权衡。这个权衡的方式就是Peter给出了计算公式。

第5章 从手续费收益到工作量证明

这一章Peter是论证了子链可以推动全网算力的上涨。算力越大,比特币就越安全哦,所以这是好事。论证过程就是证明子链会让矿工获得更多的手续费手益,然后行业利润就会上去,然后就会有更多的人买矿机去挖矿。算力就涨了。

第6章 降低孤块风险

论文说子链改变了比特币区块挖矿过程的数据传播方式,也就如前面所说的广播工作量证明信息和Δ-区块,而不是广播整个强区块。这样的广播方式减少了数据量,减少了传播时间,也就是在相同时间内全网其他矿工广播相同工作量证明信息的可能性就小了。从而孤块率就降低了。

然后论文通过一连公式,积分公式来证明。尼玛,我只能猜懂。

第7章 近似快-区块

论文将Δ-区块传播时间远远小于强区块的传播时间的特性定义了一个名词叫“近似快-区块”。Peter主要用这个名词来做经济计算,计算矿工添加新交易时的边际成本和边际收益。计算过程是使用幂指数展开,很复杂,我还得去翻我的高等数学书去,反正我没看懂,还是猜懂的。论文说的有道理,证明对了。哈哈。

第8章 安全零确认

Peter通过一大串的导数、积分、微分公式来计算在子链里双花一笔交易的成本。我真没搞懂这些数学公式,我只说结论。

在子链里双花的成本是和强区块大小有关,越大的强区块攻击成本越高,也就是现在的1M区块是最危险的,8M的区块就非常安全了。(作者也倾向于通过硬分叉的方式扩容到更大的区块。)

在子链里双花的成本和弱目标值有关,越小的目标值成本越低。越小的目标值意味着一个强区块里可以包含更多的弱区块,也就是有更好的扩容效果,但也要面临更危险的双花概率。

Peter最后将计算结果列成表格。在1分钟确认的弱区块里,即一个强区块内包10个弱区块,强区块大小为0.5M,表格数据显示,如果攻击者掌握了0.1%的算力,成功的双花的概率是1%,成本是51000uBTC=0.051btc;8M的区块就需要13BTC了。

所以我们还是需要扩容啊,只要扩到8M,再加上子链,比特币就牛逼了。

第9章 嵌套子链

嵌套子链是用来解决弱区块的弱目标值大小 计算的。因为目标值太大意味着高孤块率和子链确认时间慢,而低目标值代表了容易受到双花攻击。解决思路就是使用嵌套子链。

具体怎么计算的我也没有看明白,我笨,哭哭。

第10章 结论

  1. 子链是一个有效的比特币扩容技术。
  2. 子链可降低大区块的孤块风险,同时还能提高零确认交易的安全性。
  3. 子链优化了比特币区块数据传播方式。
  4. 子链让矿工能收到更多的手续费,推动全网算力上涨。
  5. 双花攻击一个子链内的交易的成本是随确认时间的平方值增长的。
  6. 子链可以通过嵌套的方式来协调安全性和确认时间之间的权衡。
  7. 子链安全性还随着区块增大而更安全,从而让社区有动力推进链上扩容。
  8. 部署子链即不需要硬分叉也不需要软分叉。
  9. 全网范围级别的支持子链可显著增加全网交易容量,也可以改善用户体验,有助于进一步推广比特币。

第11章 结束语

比特币目前总市值超过百亿美元,牵涉到的利益关系极其复杂,对比特币协议的进化需要多种领域的知识,包括经济学、计算机科学、数学 ,甚至现在还牵扯进来了各种政治类智慧。在像Peter这样有智慧的人努力下,比特币终将突破交易量的限制。

想阅读论文原文和译文可以点击左下角“阅读原文”进网盘下载

链接: http://pan.baidu.com/s/1kUUqs79 密码: 449v

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。