从计算机科学评看区块链的起源和发展

【文章重要观点一览:比特币在理论上并没有解决计算机科学上的共识问题,是用经济杠杆促成的实用系统;比特币链的结算慢速是有根据的特殊设计,是不可以加速的;以太坊不可能作为通用链支持全世界的应用; 以太坊这么做智能合约是不科学的;图灵完整不完整是不相干的题目;链下交易的问题是大大的 ;要把握区块链今后发展的正确方向必须领会到互联网成功的精髓。】

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

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

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

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

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

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

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

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

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

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

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

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

以太坊(Ethereum)应运而生,号称是可以写万能的智能合约的区块链平台。 一时间巨额资金涌进,无数人开始在以太坊的基础上开发各种应用(包括所 谓 DApp,也就是分布式应用),还有更极端的所谓分布式自治系(DAO)。

大家都在以太坊一个链上做应用,是个什么概念?就像是微软推出一个系统叫做 Windows,然后全世界人民写程序都运行在同一台电脑上的同一个 Windows 系统。这样一个系统能支持那么多人那么多应用吗?根本不可能。 看看身边的情况,大家各自使用自己的电脑或手机,需要通讯的时候通通讯, 需要协同的时候协同一下,需要购物的时候去一下购物网站。其余时间各自干各自的事。若是互联网试图以一台全世界共享巨型机的模式,是不可能发展起来的。以太坊背道而驰,不知是真的不懂还是故意忽悠。作为发币的平台,以太坊歪打正着很成功 。做别的有没有戏,还待观察。

发表评论

坐等沙发
相关文章
在币圈,你的钱是怎么落入别人口袋的?
在币圈,你的钱是怎么落入别人口袋的?
韩国币圈长啥样?
韩国币圈长啥样?
比特币真的没价值?
比特币真的没价值?
区块链“求生”新路径:参与者酿“无币化”趋势
区块链“求生”新路径:参与者酿“无币化”…
理解区块链
理解区块链
区块链为什么要有币的存在!
区块链为什么要有币的存在!