从计算机科学角度看区块链.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

??

?

??

从计算机科学角度看区块链

?

??

?

?

?

?

?

?

?

???

?

?

?

?

?

?

?

比特币(Bitcoin)像是在大洋中默默积累的气流,一举登陆后给各界带来了巨大的冲击。比特币在过去几年里火箭式增值,引发无限想象力,无穷的区块链项目,也引无数英雄竟折腰。

参与区块链运动的人群大致分三类,当然中间也有交集。一类是所谓“币圈”的,包括炒币的,做交易所的,做钱包的,以及韭菜和割韭菜的等等;一类是找落地应用项目的,从跨境支付的到搠源有机猪肉的,五花八门,真真假假,虚虚实实;还有就是所谓“链圈”的,目的是研究区块链基本技术的发展,这其中包含实实在在懂点门道的,也有一大帮满口名词班门弄斧的程咬金。本文着重讨论区块链技术,通过从计算机科学角度分析区块链的来龙去脉,纠正一些广为流传的误区,也指出目前很多日新月异的新一代链项目,其实多是在迷途上狂奔的野马,其最终结果无非是跑肥了野马,跑爽了骑马人,跑没了粮草,也跑坏了大家对区块链技术的信心。

比特币为什么surprising,到底解决了计算机科学上的共识问题吗?

很多人把区块链称为自互联网以来最革命性的技术,其中常提到的一点就是“去中心化”。区块链其实可以去中心也可以不去中心,两者之间没有必然联系。比特币是去中心的设计。乍看之下,它解决了分布式系统中的所谓“共识”问题,就是说在分布式系统中多个节点在某件事情上保持看法一致。分布式系统可以简单的想象为多台通过互联网连接着的电脑。互联网的连接不一定可靠(譬如可能掉线),信息传播需要时间,而且传播时间不固定甚至没有上限。加上多台电脑各自的钟表时间也是不能保证同步的(原因同上),有的电脑可能还故意造假,因此分布式共识问题在通常情况下是无解的。这是学术研究的结论,是搞分布式系统的专家们的共识。

比特币并没有解决传统意义上的共识问题,而是把问题转化了,一方面通过区块链的序号作为虚拟时间,一方面通过“挖矿”的经济动力来促使比特币链的不断延伸。这就是为什么比特币在理论上永远可逆,永远可以分叉的原因,因为它达到的共识不是绝对的。用经济因素来(在实践上,不是从理论上)解决分布式系统共识算法是中本聪的天才之举。

比特币系统为什么慢?10分钟结算其实是feature,不是bug!

自从比特币热络起来,不少人抱怨系统的结算速度(TPS)太慢。不少人花精力试图给比特币提速,也有不少人提出新的区块链系统,试图解决速度问题。抱怨比特币速度慢的,都是没看出门道的。当然懂计算机科学的也未必都懂得为什么比特币结算系统慢。殊不知那是设计的feature,不是bug。

其实挖矿难度决定了结算速度,而这个难度是可调的,所以结算速度也是可长可短的。假想如果结算时间缩称一秒,也就是说挖矿难度降为一秒钟,那会出现什么情况呢?就是常常千万个矿工同时挖到矿。那时候怎么决定哪位幸运矿工分到奖励呢?选出一个幸运矿工又是个共识问题,循环了!再设想若是结算时间变成一小时会怎样?因为挖矿难度的提升,极少可能多个矿工同时挖到矿,产生冲突或临时分链(temporaryfork)的可能性很低。所以,结算时间没必要太慢,但绝不能太快。这样就看清楚了那些要给比特币链加速的想法是多么的外行。中本聪在有关比特币的文档中并没有详细阐述其系统设计的渊源,不知是歪打正着,还是有的放矢。

再延伸一下,只要是通过纯挖矿来做共识的公开链,结算速度都不可能太快。以太坊不也计划要从PoW下车了吗?现在再出个以太坊类的东西来忽悠人,估计就不容易了。我这里说清楚了,可能以后不再有喊着给比特币提速来做ICO的了。

还想钻研这个题目的同学们,可以比照大家都用的局部网以太网(Ethernet)的经验。在局部网上,如果多个节点同时“说话”(传输数据),就会造成冲突。冲突发生后,各节点知道数据没有传出去,再重新试一下。可是如果大家都紧接着重新试传,还会冲突,造成网络堵塞。如果大家都等待某个固定时间再试,一样会冲突。所以,以太网设计是各节点等待一个随机时间再试传,这样就大大降低了冲突率,实现了高速的数据传送。这个等待随机时间的办法适用于比特币吗?明显不行,因为会有不自觉的矿工基于经济利益争着再试,大家都争,又回到原点,没解决问题。

以太坊能成为支撑千万个应用的基础链吗?

比特币是单一目的的区块链,设计紧凑却考虑周全,可以说接近完美。其中少许留了一点空地,原意是留点做评论或者留言的,中本聪本人就在第一块中留下一句话来说明比特币链启动的时间。头脑灵活的人就把这块地拿来做颜色币(coloredcoin)等等。但毕竟活动空间不大,做不了太多的事情。

以太坊(Ethereum)应运而生,号称是可以写万能的智能合约的区块链平台。一时间巨额资金涌进,无数人开始在以太坊的基

文档评论(0)

158****4121 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档