Jinghui Liao

A computer security PhD student who prefers blockchain and 6am sunlight and misses his family.

以太坊的EIP-1559提案和N3的激励机制

March 27, 2021

Property: Blog, Neo

最近以太坊的EIP-1559提案是闹的沸沸扬扬鸡犬不宁,这个提案主要就是为了解决以太坊网络在面对拥堵时吓人的手续费问题。这条提案里很重要的一点,也是特别有意思的一点,就是交易的手续费有一部分需要被销毁,我们知道交易手续费其实对于矿工来说是很重要的一笔收入,在DIFI爆火的时候,手续费的收入甚至是挖矿本身奖励的几倍,但是现在突然要把这部分原本要给矿工的钱直接销毁掉,也难怪这个提案会引起矿工的抗议,甚至威胁发动51%攻击玉石俱焚。

但是这个销毁手续费的操作好像很熟悉的样子,这个不是neo N3(后文直接称N3)里最新的经济模型里的东西么。我们来看一下N3文档里激励机制部分的原文:

在使用 Neo 网络时,需要支付一定数量的 GAS 作为费用,如用户转账,注册资产,发布资产,DApp 应用等。 与 Neo Legacy 不同的是,Neo N3 的 GAS 并没有发行上限,而且交易的系统费将被燃烧掉。 —from N3文档

这就好玩了。原本neo的GAS总量是有限的一亿枚,而且交易费不燃烧;以太坊的总量是无限的,交易费不燃烧。但是突然之间,两个项目都变成了总量无限,而且交易费燃烧。好像原本两条平行线,突然之间一起努力变成了一条线。

那我们接下来一起来分析下,究竟是什么原因导致两个项目都做了几乎同样的选择,尤其是以太坊,其创始人维塔利克˙布特林甚至想直接强行通过EIP-1559。不过我也只是基于个人知识和经验在技术层面进行分析,并不意味着两个项目的出发点真的就是像我说的那样。

首先来说为什么N3要切换成无限量发币。这个问题我最早在18年的时候就在neo社区里聊过,就是流动性,GAS作为neo各种交易的燃料,在支持整个项目的运行中其着至关重要的作用,但是随着时间的流逝,GAS也会不断地被用户因为囤币或者忘记密码而锁定,也会因为用户丢弃不被重视的海量的小额账户而被永久锁定。因此市场上流动的GAS肯定会越来越少,又因为总量恒定,GAS的价格会越来越高,甚至未来可能会像比特币一样出现单笔交易需要一百多美金的手续费的情况,这对于项目本身的长久发展肯定是不利的。所以我当时提出的一个现在看起来很傻的解决方案是,对于那些数年都不动的UTXO里的GAS进行递增式的自动回收,比如第一年回收5%,第二年回收10%之类的,以让那些锁定的GAS回归到整个系统中。不过这个想法一说出来就被喷成筛子了,所以我也没再提。但是流动性问题依然在这里,总是要一个解决方案。所以我在N3里就看到了无限制发币的设计,这个设计可能不是处于流动性的考量,但确实解决了系统流动性问题。

第二点就是为什么无论是N3还是EIP-1559手续费都要燃烧,分给矿工有什么不好?事实上确实是不好,因为手续费交给矿工的做法,其实是将矿工的利益和区块链用户的利益对立起来了。

简单来说,交易手续费会交给矿工会有一个风险,就是矿工可能会联合起来故意刷量制造拥堵,恶意提高手续费,以增加挖矿的收益。要知道,前段时间以太坊因为DIFI拥堵的时候,手续费的收益甚至高达十几个ETH,是区块奖励的好几倍。所以呢,EIP-1559的提案里就有一条,就是把基础部分的手续费直接销毁,不给矿工了,这样矿工就没有了刷量的动力。

其实很好理解,矿工都是出门恰饭的,你挖或者我挖都是那么些区块奖励,在大家彼此算力不变的前提下,如果大家一起努力抬高链上的手续费,那么其实相对来说大家都没啥损失,反而用户要多交手续费,所以刷量对于矿工(大矿工)来说是百利而无一害的生意。但是这样的话不仅造成了链上的拥堵,也增加了用户交易的成本。所以EIP-1559就提议说大家以后手续费不给矿工了,直接销毁燃烧掉,这样还可以一定程度上造成通缩。也因此EIP-1559受到了矿工的极力抵制,开玩笑,要是手续费直接燃烧,那矿工收入肯定暴跌。

第三点的话其实是专门针对于neo的。熟悉neo的小伙伴应该都知道,在N3之前,挖出来的GAS其实是分发给NEO的持有者的,并没有对neo共识节点的激励机制,这里给neo共识节点打call,真的是在免费为大家服务。但是这样的模型有个问题,就是当你想要往去中心化发展的时候,你对于别人没有吸引力,你什么好处都不给,别人凭什么要当你的共识节点?所以在N3里就把每个区块的收益里的10%分发给议员们,这样可以恰饭的情况下,做议员才会有吸引力。但是啊但是,如果用户的手续费也给议员节点们进行分红的话,那么在N3里肯定也会遇到上文第二点的情况,就是把参与共识的议员节点和普通用户的利益对立开来。而直接燃烧掉手续费的做法无疑是解决这个问题的一个好方法。反过来,为了流动性,燃烧手续费的同时也必须取消GAS总量的限制。不得不说N3的设计还是很周全的。

其实手续费这个东西其实最开始是比特币设计的,目的是为了鼓励矿工打包交易,后来的项目都是直接学去了。但是比特币总量是一定的,它一直挖一直挖挖到一百年后就没了,没有激励的话矿工肯定就失去了继续工作的动力,没有了矿工,比特币网络就没了。所以为了系统的健壮性,交易里必须有手续费这项,这样才能在以后新的区块不产生新的比特币的时候继续激励矿工,或许那时候应该叫手续工。当前比特币本身交易处理量比较少,每个区块给的奖励又比较多,因此矿工也并没有什么特别的动力去搞事情。但是在别的项目里,比如以太坊,不停提高的tps和交易量使得矿工在交易手续费的收入渐渐的赶上甚至超过了挖矿的奖励,这时候矿工抬高手续费才成了一件有利可图的事情。

虽然燃烧手续费对于稳定区块链交易手续费是有积极作用的一件事,也要考虑一些问题。首先当项目很火热的时候,可能燃烧的手续费会多于新生成的GAS,如果这种情况持续,那么依然会导致GAS处于通缩的状态。其次,直接燃烧交易费会导致矿工打包交易的意愿下降,也就是说,矿工可能啥都不打包,就直接干挖矿。具体的话就需要看N3对交易的细节控制了。

本文主要是从以太坊的EIP-1559提案入手分析了以太坊和N3的激励机制。由于个人能力所限,文中如有疏漏错误的地方,深表歉意,恳请指正。

Share This Post