公链之争,以太坊能否突破重围?

有赖于建立在其上的众多Dapp和ICO,以太坊的2017可以说风光无限。然而在公链争霸年2018年,以太坊虽然目前还坐在王座之上,可其实已经被“群狼环伺”。
高声叫嚣着要干掉以太坊取而代之的,不止有EOS,还有黄雀在后的ADA、ZIL/NEO等等。相比这些币价猛涨、宣传阵势惊人的后起之秀,以太坊显然要低调得多。

但低调不等于没有作为。事实上,Vitalik和他的团队一直都非常乐于改变——相比相对保守的比特币核心开发团队core来说。很多关于以太坊未来的重大变化早已经在部署实施之中,虽然不见得能够短时间见到成效。

一旦你了解了这些,就相当于看到了未来2-3年甚至更久以太坊的发展线路图。下面就让熊小猫一一道来。

一 、Casper FFG 和Casper CBC

2017年10月,以太坊进入了它的第三个发展阶段:大都会Metropolis)。当前我们即将迎接的是这一阶段的后半段:“君士坦丁堡”,然后就走向最终的“宁静”(Serenity)。

你是不是跟我一样觉得这些词听起来真的好文艺呢?不过这不是重点,重点是,按照规划,在“宁静”阶段,以太坊将的共识机制将彻底转变为PoS.

而Casper,正是将Ethereum主网共识算法从Proof of Work(POW)转向Proof of Stake(POS)的项目。

先了解一个问题:POS与POW有什么区别?为什么一定要做这种转移?

从算法上来说,POW是以矿工算力的贡献比例作为权重给予挖矿收益,POS是以矿工持币数量乘以持币时间作为权重给予挖矿收益。

POS对于POW的优势在于:

  • 安全性:类比POW的语境,POS相当于节点一旦作恶,矿机和硬件设施直接被烧毁。

  • 避免过度中心化:避免POW矿池出现的规模效应和中心化,公平挖矿产出。

  • 节约能源:POW消耗的硬件和电能是巨大的。

当然,POS也有如Nothing at stake等自己的问题,这里不重点展开(以后再表)。

那么为什么又会分成两种Casper呢?

Casper FFG——又名“Vitalik's Casper”——是一种混合 PoW /PoS 的共识机制,它是以太坊首个通向 PoS 权益证明的候选方法。简单地说,块链将用熟悉的PoW 算法增加区块,但是每50个块有一个 PoS “检查点”,通过网络验证人来评估区块的最终有效性。

可以看出,Casper FFG还不是一个纯粹的PoS协议,它实际上相当于POS的初级阶段,目标是使人们逐渐脱离PoW机制。目前它已经在测试中,我们期待它能在晚些时候,作为“君士坦丁堡”阶段的一部分主网上线。很可能就是在今年夏季。

如果到时候还没上线,很可能就要等到更晚的“宁静”版本——关于这个阶段,目前还没有人给出一个时间表。很有可能是在2018年末,甚至2019年。

Casper CBC也就是我们所知的Vlad版Casper,使用建构修正(correct-by-construction,CBC)协议。要了解它的特点,让我们来做一个对比。

这是一个普通的协议设计的样子:

你正式指定协议。

定义该协议必须满足的属性。

证明该协议可以满足给定的属性。

而CBC协议的样子是:

你正式但只是部分地指定协议。

定义该协议必须指定的属性。

从满足所有它被规定去指明的属性中推导出该协议。

用大白话来说,你是动态地推导出该协议的。

获得完整协议的其中一种方式是运行一种Vald称为“理想对手(ideal adversary)”的预估安全预言机(estimate safety oracle),它运行下列两者之一:

  • 提出一个合理估计的错误的例外情况。

  • 列出所有在未来可能发生的错误。

是不是看着就很复杂?总之,这个理想对手要做的事情,就是不断进行微调、让这个只是部分建构好的协议更加完美,直到它变成完全版。

正如刚刚提到过的,Vitalik的Casper将被初步运行,以缓冲从PoW到PoS的转变。而Vlad的Casper,则不只是一个建立在PoS机制上的微调,而是彻底的重新思考共识机制,它未来还有很长的路要走,很可能只能在2019甚至更晚的时间落地。

也有可能最后Casper FFG就运行的很好,因此持续的运作了下去,直到Casper CBC完全准备好。

可以看到的是,以太坊开发者团队一直在努力地开发这两个Casper项目。不管这最终版本是什么,它肯定会受到Vlad的和Vitalik的Casper的深刻影响。

二、扩容

遏住以太坊咽喉的,首当其冲是扩容问题。

以太坊目前日均交易量是500多万笔,十倍于比特币网络。然而与此同时,Ethereum每秒只能处理交易(tps)15笔。在高峰期里花费的时间甚至更长。而这就意味这极大的堵塞也就是极高的交易成本。

相较之下,Square 和 Visa 等服务的交易是即时确认的。即使不它们相比,EOS、ADA等同为公链在测试中表现出的速度,似乎也已经足以革掉以太坊的命。

以太坊为什么不赶紧扩容?因为扩容没有那么简单。

这是一个可能很多人都知道了的问题,我们再来复习一下~

当前公有链的共识协议都存在这样的限制:网络中的所有节点(常常就是每一台电脑)都必须参与处理每一笔交易。

这种去中心化共识机制的关键优势是安全保证、政治中立和抵抗审查等。然而,这是以扩展性为代价换来的,因为它同时限制了区块链里全节点可处理交易的数量。

实质上这带来了两个影响:低吞吐量&缓慢的交易速度。

然而,如果我们随意扩容区块大小,那么随着区块链不断扩大,网络里各个节点所需的存储、带宽和计算能力也会增加。当到达某个时刻,就只有少数节点才能提供足够资源来处理区块——也就是说我们普通人的电脑跑不起了——而这会带来中心化风险。

(为什么V神和EOS的BM经常互怼,原因之一也是EOS的21个超级节点被认为是牺牲去中心化为代价提升扩展性。)

因此,以太坊等公有链需要在低交易吞吐量和高中心化之间做一个权衡。理想的系统是:它既能每秒处理上千笔交易,又能保持一定程度的去中心化——Vitalik在去中心化这件事情上显然相当坚持。

针对此,以太坊现在在跑的有以下方案,当当当当!

  • 主链扩容方案:Sharding(分片)

首先我们又要提到前面说过的Casper。因为某种程度上,Casper可以说是分片的奠基石。

这里要先引入一个Finality的概念。Finality是指,一个操作或交易在链上完成并且被确认不可逆的状态。

在以太坊目前POW的机制下,finality需要等待多久,并没有被明确的约定。

举个栗子,当一笔交易完成,常规做法是等待6个区块确认。但严格来说,6个区块确认后,交易完成且不可逆的概率虽然非常非常大,但没法100%肯定。(这涉及到一个最长链规则,我们以后再讲)

如果要求更高的确认概率,那可以等待12个区块确认(比如Binance的充值确认),但不管多少个区块确认,交易失败的概率总是存在的,只是趋于无穷小。

Casper的设计中,finality等待最大长度被显示的约定为50。即50个区块之后,交易被100%的确认完成,如果届时有两条长度相同的主链,则任何一条链上的交易都不会被finalize。

这种设计下,每笔交易在一个确认的时间长度下一定会被确认而不是一个概率值,节点不再需要考虑从创世区块至今的所有交易。每个节点需要承担的工作量更小,需要获取的信息更少。这对分片扩展方案很重要。

那么分片扩展方案是怎样工作的呢?

将每一个block(块)分为不同的shards(片),每个片独立、并行的处理不同的一组交易,以此提升全网交易吞吐量的扩展性协议。

更多精选内容:千禧财经

免责声明:本文仅为传播消息之用,不代表知链立场,如需转载,请务必注明文章原作者以及来源,部分图片来源于网络,我们尊重版权,如有疑问敬请联系,我们将核实并删除。