发布的

由共识机制所想到的

作者

自BTC逐渐进入大众视线之后,有一个词那即是POW经常见诸于各种报道中,与此相关的词汇如算力挖矿、蚂蚁矿机、算力难度增加等等也不时会见到。

POW(power of work)即工作量证明,是BTC实现共识机制的一种方式。也就是网络中的节点相互竞争计算一个难题,谁先计算出来就会获得奖励(BTC),获得奖励的该节点会将最近的交易以及计算结果、其他区块信息、放入区块,从而完成对于账本的维护。要计算该难题是基于算力,伴随着BTC价格的不断上涨,节点数量也在不断增加,同时节点所拥有的的算力也不断提高,从而导致了算力的军备竞赛。

如图所示,算力是一路高涨,值得注意的是2021年6月份有一次大跌,这是由于中国大陆出台的政策导致很多大陆的矿场关闭,不过随着海外逐渐吸收这些算力,后面则不断回升,直到现在甚至已经超过大跌前的高点。

即便都是基于POW的不同币种,其也有些不同,如对于BTC的算力计算要求,其会导致,拥有更多算力的节点占有更多的比重,这也是当前BTC算力基本被几大矿场所占据的一个原因。而以太坊其对于难题计算的设计,不仅仅会有算力这个层面,还涉及到带宽。这样即便是单一算力很高,也不会形成像BTC那样算力垄断的局面,呈现出一种更分散化的态势。

由于POW基于算力,电力资源的使用与浪费也成了热点话题,随之而来的环境污染问题也成为了反方的论据。这里不就此问题展开,与之相对的是,POS( power of stake)机制,也是当前很多知名的公链选用的方式,包括即将到来的以太坊的升级,也是向POS方向迁移。

简单来说,POS是参与者通过质押手中一定的token(如以太坊就是eth、avax就是avax、cosmos就是atom),成为打包区块的节点。根据自身抵押的token等比例等因素来获取区块奖励,抵押者不仅可以质押自身的token,也可以吸引其他个人或者组织将其手中的节点质押给自己,然后给这些质押者返回一些奖励。

共识机制的演进

从BTC的POW,到ETH的现在将要进行升级到POS机制。同时很多公链当前也是基于POS,只是实现方式不同,如波卡(DOT),也是基于POS,只不过其参与主体种类较多,包括提名者(nomial),验证者(validator),钓鱼者(fisher),收集者(collator),COSMOS:基于共识算法Tendermint(Tendermint is a partially synchronous BFT consensus protocol derived from the DLS consensus algorithm),NEAR基于new Nightshade algorithm算法。可以将BFT与Nightshade理解为经典的共识算法引擎,这些项目是基于自身的目标与取舍使用该算法引擎实现自身的共识机制。对于共识机制的比对及发展变化,后面会单独写。

从我个人来讲,由于共识机制涉及的技术面较广,也比较难以理解与吸收,同时没有相关的实践,可能理解上也存在偏差与不准确。但是共识机制作为这个世界的基石,对其达到基本逻辑的理解,会更加清晰的认识这个世界的发展与变化。 这是进入这个领域的必备理解,尤其是针对于建设者而言,而我认为随着时间的变化,至少是基于共识机制会衍生出来更多的变化。

至少从我当前的感知来看,

1.共识实现的方式本身不断演进,这会带来参与方各自的行为的变化,如从算力挖矿到stake模的,会带来一批挖矿机器的淘汰,而stake更多的表现在经济激励与惩罚,同时带来对于资源损耗的减少。

2.即便当前至少在共识实现层面认识较浅,但个人判定整个市场上参与的不少群体也有一个逐渐认识加深的过程,作为关注这个领域的个人,长期关注,并且保持与该领域这方面的人才的沟通、讨论,相信随着市场的发展,成为专家也不是不可能。

3.如第一点提到的带来参与方的行为的变化,经济模型还表现在如更多的参与方开始stake,并且获得之前挖矿方的收益。诚如之前所述质押成为节点或者其成为代理质押节点(吸引第三方将自己的手中的代币质押到自己的节点上),这是从公链共识层考虑,但随着流动性的不断释放与创新,也会出现这些质押代币不仅仅是参与产生区块的基础,也会渗透到特定应用中,如其流动性流转到defi中,成为去中心化交易中的流动性提供者。

4.参与节点角色的变化,比如之前在BTC时代,矿机也仅仅是进行挖矿,参与方的功能属性也单一,但是现在如波卡(DOT),就有提名者(nomial),验证者(validator),钓鱼者(fisher),收集者(collator),这么多角色,每个角色分工不同,受到的激励与奖惩也不一样,甚至角色的之间也可以互换。又如NEAR的节点,使用分片技术,一组节点在一个时间段挖一条链上的区块,可能在下一时刻则会挖另一条链上的区块。这种角色的变化带来经济博弈模型的变化值得关注,也是很有意思的一个点。

共识机制与这个领域很多的热点与难点问题的相关度很高

1.不可能三角问题,包括去中心化(decentralization) 、安全性(security)、扩展性(scalability)。也就是如果满足其中两个特性,那么第三个特性就会受到影响。

如ETH,当前有很多节点,而且每个节点的维护成本不是特别高,从而保障了网络节点的分散化,单一节点对于网络造成的影响力很小,从而保障了网络的安全性与分散性。但这么多节点为了维持共识,众多的节点本身的平均水平处理能力有限,而且众多的节点之间的带来的沟通成本都会将影响整个网络的扩展性,具体表现在就是吞吐量(tps),当前以太坊每秒大概可以处理15~20条交易。

如与之相对的EOS,其通过21个节点进行维护,这21个节点是通过竞选动态形成的。个人猜测少数的几个节点,其处理打包的速度则得到大幅提升,当前TPS,则达到3900。但是可见的是,其去中心化程度则限制为21个节点。

2.不同的扩容方案

众所周知,2021年defi summer以来,以太坊整个网络甚是拥堵,gas费用有时则达到200,甚至300左右。如果是散户进行一个链上操作的话,比如抵押200美金,可能gas费用就会达到300美金。从而关于扩容的方案一时成为热点讨论问题。

我理解这里面分为三个方向,一是重新构建自己的公链,TPS可以达到较高水平,同时gas费用散户也可以接受,比如BSC(binance smart chain),solana。

第二则是将ETH作为第一层,将ETH作为共识层,在ETH共识层的基础上,采用不同的技术解决方案如零知识证明(ZK Rollups)与Optimism。代表项目则有zkSync与Optimistic。

第三种则是在共识机制上的一些创新,如波卡、NEAR宣称的其可以实现的达到几千TPS。个人当前猜测波卡是通过建立不同角色的相互配合形成的共识机制来实现较高的TPS,NEAR则是通过分片技术。现在市面上也也不时看到有说已经解决了不可能三角的问题,我猜测他们其实指的分片技术,但具体是否能经受住市场的检验,还有待观察。

任何公链都会有自身实现的共识机制,其对于不可能三角问题的描述与解决都是重要的解决问题,而对于TPS的实现程度,则是兵家必争之地。同时面向特定应用的公链、如该链是专门来部署金融方面的应用,或者面向游戏的公链(如flow),也是一些公链的宣传点,如波卡(DOT),开发者基于波卡生态的substrate的开发工具基于自身的需求开发对应的公链,NEAR也提到过。

3.跨链

如上所述,已经涉及到了不少公链,如BTC、ETH、BSC、DOT、NEAR。而二层的扩容方案也带来从以太坊第一层到第二层的跨链需求,反之亦然。

首先不同的公链有不同的共识机制,如果是基于相同或者类似的共识机制,进行跨链是一种情况,如波卡(DOT)以及基于substarte开发的公链进行跨链. 与这种情况类似的还有NEAR、COSMOS。如果是不同的共识机制,进行跨链则是另外一种情况,如从BTC跨链至COSMOS。

所谓的跨链当前我们理解的主要是不同的token,此外从合约层面讲,如何从合约执行层面进行跨链则显得更是一个有挑战性的问题。

另外,跨链带来的安全问题,也不容忽视。如前一段时间的wormhole

共识机制作为基础构建,决定了很多生态基础设施。

1.节点服务提供商。这些节点部署其对应公链的客户端,其是专门运营,软硬件各方面条件都会达到一定水平,这样就避免了一些个人部署时一些不稳定的情况,如硬盘存储不够,网络不稳定等等。现在一些web3的软件也会使用这些节点服务商的服务,如小狐狸(meta),其使用就是infra的节点服务。当然很多节点服务商不仅仅是不是一个公链的客户端,往往是多个公链。节点服务提供商infraalchemy

2.安全与审计公司

安全始终也是绕不开的一个话题,很多项目宣传是都会提到自己的合约代码已经进行审计过。当前出现的黑客事件基本上都是集中于合约层面,共识层面的则没有看到,当然共识层面已经考虑到作恶成本。但是否在未来会有共识层面的安全问题,也不排除有这种可能性。

3.社区治理

POS引入stake机制,相比较于BTC的POW矿机单纯挖矿而言,这些stake的各方参与者都开始进行社区共建,这一点也是很多公链本身共识机制的一部分,如公链一些运行参数的调整。这是共识层面的stake机制,具体到协议本身的stake,如ens,也是各方根据自身持有的ENS将一些社区提议进行表决,值得注意的是这其中有些参与方是这个世界的重量级选手,如coinbase。

4.开发者在web2世界与web3世界面临的不同的技术架构。

核心表现在代码逻辑则主要是基于合约,而合约执行的环境是公链,公链本身则不是任何单一节点可以控制的。至于前端展示,当前则主要是基于传统web2.0服务,如前端展示页面的展示代码则是部署在云服务上。然后请求则会触发合约逻辑。前端代码也可以基于IPFS等去中心化存储链,不过当前比较少见。

web2.0

web2.0

web3.0

web3.0

Source:https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application

总结

本文从共识机制出发,粗浅的提及了一些公链的共识机制及其演化,由于共识机制涉及到技术及经济激励,比较复杂也很难写清楚,但这是这个领域的基础,值得去关注,我也相信共识机制也会继续不断演化。然后论及了由共识机制所引发的几个热点或者关键问题,如不可能三角问题、扩容、跨链。最后提及了一些生态基础设施,如节点服务提供商、安全与审计、社区治理、技术架构,当然不仅仅限于这些,相信也有很多基础服务会受到共识机制的影响。总之,我认为共识是很多问题的源头,值得花精力去深入其中,也笃信未来不仅会有更多技术层面的演化,也会有有新的经济博弈态势,将会出现很多精彩有意思的瞬间。Welcome to the world!