POW机制下能耗状况

比特币和以太坊目前采用的都是POW(工作量证明)机制,但这种方式一直为人所诟病,正在于其浪费电力资源的特点。

  • 比特币的电量消耗

    下图为比特币系统电力消耗随着时间变化的情况。y轴的单位为Twh,1Twh = 10^9 Kwh,1Kwh就是我们平时生活中常说的“一度电”。

image-20230117203313857

  • 比特币系统能耗消耗情况(2018年数据)

电量使用量巨大,但是有利可图

image-20230117203815114

  • 以太坊系统的电量消耗

image-20230117203937793

  • 以太坊系统能耗消耗情况(2018年数据)

image-20230117204025131

以太坊平均每个交易消耗电量比比特币少很多,按道理说,比特币系统的交易是比较简单的,以太坊的交易可能会包含对智能合约的调用,所以以太坊的能耗应该更高才是,主要原因是以太坊出块时间很短,平均每个交易的电量消耗也比较少

思考

显而易见,“挖矿”过程消耗了大量的电力资源,这些能耗是必须的吗?

矿工为什么要挖矿?为了取得出块奖励,为了收益。那么为什么要给矿工这些奖励?为了激励矿工参与区块链的维护,进行记账。那么矿工具体怎么挖矿?用一大笔资金购买现成的挖矿设备。挖矿的收益又是由你有多少算力(能挖出来多少区块)决定的。你的算力又是由你花多少钱买了多少设备。所以说白了,挖矿的收益是由矿工投入资金决定的。

那么,为什么不直接拼“钱”呢?现状是用钱购买矿机维护系统稳定,为什么不大家都将钱投入到系统开发和维护中,而根据投入钱的多少来进行收益分配呢?这就是权益证明的基本思想。有时我们又把这种方式叫做虚拟挖矿(virtual mining)

权益证明

一般来说,采用权益证明的货币,在正式发行前,会先预留一些货币给开发者,而开发者也会出售一些货币换取开发所需要的资金,在系统进入稳定状态后,每个人都按照持有货币的数量进行投票。

优点

  • 省去了挖矿的过程,也避免了因此产生的能耗和对环境影响,减少了温室气体的排放。

  • 维护区块链安全的资源形成闭环。

    之前基于POW的加密货币,我们提到维护区块链安全实际上是算力,算力又可以通过现实货币买到,那么恶意攻击者只需要足够有钱,就能发动攻击(刚刚发行的加密货币或者小币种,很容易遭到攻击,导致币价严重下跌,就相当于扼杀在摇篮中 AltCoin Infanticide)。那么为什么工作量证明使维护区块链安全的资源形成了闭环?因为如果有一个小型加密货币,一个人想要攻击,那么他就必须花大价钱买足够的货币,发动攻击所需资源需要从系统内部获得,无论你有多少钱,都不会对系统产生直接影响。

有些币种根据持有币的权益进行挖矿难度调整,比如你可以投入一定数量的币来降低当前的挖矿难度(实际并不能这么简单设置,因为会导致“旱的旱死,涝的涝死”,需要添加一定限制,比如对投入的币加一定限制,一段时间不能再次投入),也就是结合POW和POS。可见,POS与POW并不互斥。

问题

双边下注:

如下图所示,区块链系统产生了分叉,如果采用工作量证明,那么大多数矿工肯定沿着上面的链挖,不会有人同时沿着两边挖。而如果是权益证明,那么你就可以同时往上下两条链下注,因为上下两条链没有关联,如果上面的链胜出了,那么你下面的链投入的’筹码’会退还,而且你还能获得上面区块的收益

image-20230117214709354

由于一个人可以拥有多个账户,所以我们无法强迫一个人一次只能投向一个区块。而越有钱的人,通过“双边下注”得到的收益也就越多。

以太坊拟采用的权益证明

以太坊中,准备采用的权益证明协议为Casper the Friendly Finality Gadget(FFG),该协议在过渡阶段是要和POW结合使用的。

在比特币系统中,我们有提到为了防范分叉攻击,一个交易在其获得6次确认(其后跟着6个区块)后认为该区块安全。但实际上,这种安全只是概率意义上的安全,如果恶意节点大量算例仍然可能会被回滚。所以单纯基于工作量证明的区块链是缺少finality(最终状态,不可能被回滚的状态)

Casper协议引入一个概念:Validator(验证者),一个用户想要成为Validator,需要上交一笔“保证金”,这笔保证金会被系统锁定。Validator的职责是推动系统达成共识,投票决定哪一条链成为最长合法链,投票权重取决于保证金数目。

具体的做法类似于数据库里的two-phase commit。第一轮投票是Prepare Message,第二轮投票为Commit Message。每100个区块为一个epoch(纪元,时代),每个epoch进行两轮投票,Casper规定,每一轮投票都要得到2/3以上的验证者才能通过(按照保证金金额大小)。实际系统中,不在区分两个message,改为每50个区块为一个epoch,每个epoch投票一次,这次投票结果作为当前epoch的Commit Message,作为下一个区块的Prepare Message。每个epoch要连续两个message都投票通过才有效。

下图为为实例,最初版本为100个区块为一个epoch,每个epoch投票两次

image-20230117221656255

下图为改进的版本,50个区块为一个epoch,每个epoch投票一次

image-20230117222059508

矿工挖矿会获得出块奖励,而验证者也会得到相应奖励。当然,为了防止验证者的不良行为,规定其被发现时要受到处罚。例如某个验证者“行政不作为”,不参与投票导致系统迟迟无法达成共识,这时扣掉部门保证金;如果某个验证者“乱作为”,给两边都进行投票,两边下注,被发现后没收全部保证金。没收的保证金被销毁,这样会减少系统中货币总量。验证者存在“任期”,在任期结束后,进入“等待期”,在此期间等待其他节点检举揭发任期中是否存在不良行为,若通过等待期,则可以取回保证金并获得一定投票奖励。

这样一定能保证不被篡改吗?

在该协议下,矿工无论算力多么强,最终投票权都不在其手中。必须在系统中,存在大量“验证者”进行了两边投票,也就是说,至少1/3(该协议规定超过2/3才有效)的验证者两侧都投票,才会导致系统被篡改。而这一旦被发现,这1/3验证者的保证金将会被没收。

以太坊系统设想,随着世界推移,挖矿奖励逐渐减少而权益证明奖励逐渐增多,从而实现POW到POS的过渡,最终实现完全放弃挖矿。

然而权益证明仍然存在缺陷,但工作量证明已经得到了事实检验,该机制较为成熟。
目前,EOS加密货币,即“柚子”,2018年上线,就是采用权益证明的共识机制,其采用的是DPOS:Delegated Proof of Stake.该协议核心思想是通过投票选21个超级节点,再由超级节点产生区块。但目前,权益证明仍然处于探索阶段。

其他观点

前面的基本观点都是“挖矿消耗大量电能,而这是不好的”,但也有人持有相反观点

他们认为其所消耗的电能所占比值并不大(前面的图中显示比特币和以太币使用电量为世界总电量的0.4%),而且其对于环境的影响是有限的。挖矿提供了将电能转换为钱的手段,而电能本身难以传输和存储,一般来说,白天所发的电不足,晚上所发的电又多于实际需求;又或者某些发电厂的发电量有剩余,那么多余的电运输回中央电网是很困难的。因此,挖矿为将多余的电脑转换为有价值的货币提供了很好的解决手段。也就是说挖矿消耗电能可以有效消耗过剩产能,带动当地经济发展