EIP-1559到底在吵什么?--下篇

  • maxdeath
  • 更新于 2021-03-31 15:47
  • 阅读 2969

演完了狗血家庭伦理剧后的矿工,此时应该开始觉醒复仇了!

前两章我们详细解说了EIP-1559是什么?啥是矿工?以太坊矿工的处境是咋样的?

前情回顾:

矿工(可能的)的反击

演完了狗血家庭伦理剧后的矿工,此时应该开始觉醒复仇了!

删库跑路、更改自己的账户数目、或者消极怠工?

这些确实能做,但是这些都是鱼死网破的威胁,相当于拿把剪刀去和代表以太坊官方的Vitalik Buterin和核心开发团队拼命了——矿工要做就得狠下心一起做,而且一旦做了就是双输的结局。官方也正是因为这样,所以并不担心矿工的威胁,因为一,做了这种事虽然是双输,但正如之前说的,其实以太坊的“社会共识”是强于“算法共识”的,矿工这样虽然可以严重的打击到“社会共识”,但相信以太坊支持者很快还能形成新的“社会共识”比如搭起一条PoS链并且回滚状态,但矿工们的“算法共识”就是完全破产了,这样的后果矿工更承受不起;第二,矿工是分布式的,本身就心不齐,而且其实矿工的代表是矿池,他们其实并不能完全控制手下的矿工,再加上第一条,其实即便某几个矿池振臂一呼说“王侯将相宁有种乎”,只要手底下有矿工不同意,那么最终结果很有可能就是造成一个短期的分叉,而这种结果就跟一剪刀扎过去把对方的手划破了,然后自己被抓起来打死,这显然也不是大矿池想要的。

那么,矿工们有什么能够不损害自己的利益但是会导致以太坊利益受损的方法,然后用这个把柄来要挟以太坊官方的吗?

其实呢,还是有的。

分叉

分叉当然是矿工最理所当然的选择——区块链的世界本来就是这样,如果不同意路线分叉就是了。

社区里其实有不少“矿工不敢分叉”,“分叉了也没人用”的文章,在我看来都属于自己给自己壮胆的行为——

矿工当然可以分叉,虽然分叉的结果难以预料,但其实这是官方的问题而不是矿工的问题。算前车之鉴也好,算珠玉在前也罢,反正BCH的例子摆在那,要是矿工觉得自己的利益收到了侵害,那么他们知道自己的最终选项就是分叉。EIP-1559的支持者大可以说“你看,比特币大矿池当年大张旗鼓想要和比特币分庭抗礼,结果失败了,你看BCH现在的市值才比特币的10%”,但同样的事情从另一个角度来看就变成了:“大不了做个BCH嘛——至少我们能做条市值为10%的链的主,总比再以太坊被人当丫鬟强”。

诚然,都说如果矿工分叉了以太坊正好转PoS,但话是这么说——如果矿工真的今天分叉,以太坊从开发者到社区真的做好无缝衔接到PoS的准备了吗?毕竟目前的Casper算法还并不能作为一个纯PoS算法用在区块链上。

而且说矿工不敢分叉纯属自欺欺人——等到以太坊转PoS的那一天,那么多以太坊矿机不分叉你让他们喝西北风么?或者挖其他哪个币能回本?到时候10000%会有一条以太坊的分叉币出现,只不过不知道大小而已。所以矿工如果因为EIP-1559想要分叉,那只是把他们总要做的一件事情提前做了而已。

所以,对于矿工而言,即便不是现在分叉,但不影响他们从现在开始他们就可以为分叉币做准备——拉拢生态项目,改进算法,宣传造势,等待机会……这些和暂时先采用EIP-1559完全不矛盾。但与此同时,以太坊有没有未雨绸缪地为矿工分叉做这些准备呢?让临时工管库房,然后告诉他合同不续约了还要降工资,你们真的不怕他点把火?

结成价格同盟

前文已经说了,EIP-1559实质上是以太坊官方照顾到用户体验,替用户发起的价格同盟,意图是鼓励大家在拥堵的时候应该按照参考价格支付自己能够接收的交易费,不要相互抬价给矿工多赚钱的机会。

但这个问题的另一面,是矿工也可以在拥堵的时候结成价格同盟——对于他们而言,基础费是会被烧掉的,所以对于他们而言,他们可以要求交易者“除非你们给我们足够的小费,否则即便你给了基础费,我还是不接收你的交易。”

实际上换句话说,就是对EIP-1559的抵制行为——我不管什么基础费不基础费,我只知道我能拿到手的就是小费,所以我还是按照以前的标准收小费。你的交易要是小费给不到之前的标准,那么我就不接收。

很显然,双方的价格这个时候谈不拢了——用户愿意出的交易费比如原来是5块,现在变成基础费1+小费4,但矿工说我要收5块,现在只有4块了我不干。

那最终的结果很显然,就看两边谁先妥协,或者是不是两边各退一步了。

最终的话,更大的可能是矿工会退一步,毕竟维持这种价格同盟双方都有损失,但用户的损失只是交易暂时没法上链,而很多用户其实并不十分在意这一点,或者说宁可晚上链也不愿意多付25%的交易费,但对于矿工而言,维持这个价格同盟代表着会少赚很多小费给得不够的钱的交易,而矿工也不是铁板一块。这钱你不赚,就会被别人赚走。

但其实矿工也未必一无所获——因为交易者也有很多种,肯定还是会有对交易即时性敏感的用户会提高自己的小费,来保证自己的交易不管被哪个矿工收到都会打包。

于是,接下来发生的事情就看双方如何博弈了。但其实最终结果是什么样都不重要,重要的是,如果矿工坚定地从一开始就摆出“我们不愿意让我们的收入下降”的姿态,那么最后矿工的收入会不会下降不好说,但用户的交易费其实不降反升,因为等于多交了基础费。

这显然也是个杀敌一千自损八百的行为——毕竟矿工肯定会背上垄断和中心化的骂名,而交易费的提高肯定会让以太坊丢失用户,从而最终影响到以太坊的价格。

但从另一个角度讲,如果矿工本来都被排除在了以太坊的未来乃至于当下以太坊的生态之外,那么他们又何必在乎以太坊的长期利益呢?从自己的角度讲,管你是不是用了EIP-1559,管你EIP-1559的初衷是不是降交易费,我只管自己的收入不降,这点不是天经地义的么?

矿工的攻击

以上两点其实都有人说过了,但这一点是双方都忽略的一个问题。

这里,我指的不是51%攻击的风险,因为正如我之前所说,51%攻击是鱼死网破的选择。

我说的是矿工可以做的其他攻击的风险。

这里有人可能会问:“等等!PoW除了51%攻击还有别的攻击风险么?”

那当然,除了51%攻击之外的攻击多了去了,而其中很多攻击其实甚至都是现实中发生过或者已经发生的事情。

首先,是活性攻击,也就是一段时间内不包含正常的交易。

这种攻击在FOMO3D的时候就出现过,那个时候发起者为了拿走FOMO3D奖金池里的奖励,写了个gas很高的合约,然后,在别人想要买入的时候,用高交易费诱使矿工打包这些高Gas的交易占满整个区块,使得其他人无法买入FOMO3D。

在去年3.12MakerDAO的清算事件是非人为的活性失效——由于以太坊大跌,触发了大量清算资产,同时有大量的以太坊交易需求,而MakerDAO资产拍卖机制中没有考虑到这一点,于是在限时内没有人出价导致了大量资产被以极低的价格卖给了一些默认的资产保管者。虽然这不是一次活性攻击,但很明显,实际上资产保管者也完全可以用这种方法来进行活性攻击来获得收益。

第二,是审查攻击,也就是不打包某些特定的交易的攻击,这相当于是对于特定交易的活性攻击。

这种攻击在目前还没有导致非常严重的后果,但在optimistic rollup部署之后则可能是致命的,因为optimistic rollup的安全性建立在“如果有人发布了假的状态,那么在一段时间内必须有人在主链上提供‘造假证明’并且拿走造假者的押金”的基础上。而如果提供造假证明的消息被审查了,那么optimistic rollup的安全性就荡然无存,因为有人可以在侧链上造假而不受惩罚。

而如何进行审查攻击呢?实际上已经有人提出了切实可行的方法——造假者在链上部署一个贿赂矿工的智能合约,然后发布一笔可以拿走自己押金一部分(比拆穿造假损失的押金少)作为交易费的悬赏交易,规定如果挑战期没有人挑战,那么矿工在未来发布这笔交易的时候就能够拿走这笔悬赏。那么,在这笔悬赏的作用之下,如果矿工们都是逐利的,他们的最理性选择就是审查任何提供“造假证明”的交易,因为那样他们才有机会在挑战期结束之后拿到悬赏。

第三不算是一种攻击,而是一种套利方式,也就是front-running。

在目前的DeFi生态中,很多去中心化交易所采用的是AMM的模式,也就是币币交易的定价是由供求关系决定的,也就是始终会受到新交易的影响而波动。于是,比如如果我想要用A币买B币,虽然现在是1换100,但在交易的时候很有可能不是这个比例了,所以我会设置一个区间,比如成交价格只要在1:90到1:110之间我都接受。这个区间当然是越小越好,但是设得太小,对于某些币价波动较大的币或者在币价波动剧烈的情况下,可能会造成一直无法成交。

而由于发交易本身是公开的,于是就给了front-running的余地:如果有个大客户突然要买一堆B币,那么这笔交易之后B币的价格一定暴涨。那么实现获知这件事的人就通过预先大量买入B币,在这笔交易之后再卖出这件事来发一笔横财。当然,买入B币的量不能太多,否则B币的价格就超过了那宗大笔交易的区间了。

而由于交易上链的顺序以及上链的交易都是矿工决定的,所以想要达成front-running需要收买矿工,把他们的交易加在那宗大笔交易之前。

当然,收买矿工其实并不保险——更保险的方法其实是矿工亲自下场。而实际上,矿工完全可以只要收到大额交易就来次front-running,这才是最大化自己收益的方式。


以上这三种攻击,都是矿工可以做的,而且,其实如果我们假设矿工只是单纯逐利,那么很多是理性的矿工必然会做的。

因此,其实有些已经有人在做了。

那么,是什么阻止了矿工都去做这些事呢?

是因为其实矿工并不仅仅是利己的,也会有“利他主义(altruistic)”的行为。并且,矿工除了在链上的利益,还有在链外的利益,比如声誉和长期利益。

又或者简单一点说,是因为矿工自认为对于以太坊的义务和对于未来的憧憬,和他们朴素的“不该做恶”的道德观念。

于是,大家认为一方面打压矿工在以太坊中的获利、否定他们对以太坊有义务、把他们完全排除在以太坊的未来之外、说“你们不过就是个临时工”,一方面污名化矿工,说他们在阻碍以太坊的发展,这种行为会导致什么样的结果呢?

很显然,这种行为的结果,也就是EIP-1559可能导致的后果就是矿工不再受到这种“利他主义”和朴素的道德观念的约束,以单纯逐利的标准来行动了。而首当其冲的问题,就是front-running——“既然你们不给我们交易费,那么我们干嘛不凭本事去抢呢?你不仁我不义嘛!”接下来的问题就是审查攻击——在矿工可能不合作的情况下,rollup还能放心地部署吗?

而且,其实最重要的一点在于,以上三种方法矿工完全可以同时进行:

一方面分叉,或者为分叉做准备;

一方面在现在的以太坊上采用这种对抗性的态度:“你逼我降交易费?不好意思,我降不了,我们也要养家糊口。基础费是什么东西?我们只认小费。”

“你要部署rollup?抱歉,我不懂,什么审查攻击什么的我真的不知道,听都没听说过。出了问题一定不是我审查的原因。”

“为什么front-running的情况变多了?我也不知道,交易顺序完全是随机的啊,可能是我挖的矿的交易恰好都把一笔交易排在大额交易前面了吧。”

然后,等到真的分叉的时候,矿工们可以说:“欢迎来到真正的以太坊啊!低交易费,有rollup,没有front-running!”

这就是EIP-1559现在被强推背后的一个关键隐患——

在支持者,尤其是开发者们看来,除非矿工能硬气起来并且结成同盟来个51%攻击,否则我们排版了升级EIP-1559,他们最终为了自己的利益也只能认命。

可是实际上是,如果EIP-1559部署了,那么矿工其实能做的事可不仅仅是51%攻击那么简单,而且,其实他们能做的很多事,完全不背离他们自身的利益,甚至还能增加他们的短期收益……

至于长期……你们都把PoW矿工排除在以太坊的未来之外了,那我管PoS以后洪水滔天呢?

总结

看到这里,我的倾向性已经很明显了——和之前那篇关于比特币核心开发者和矿工的文章一样,我还是站在矿工这边的。原因很简单,因为作为一个理论研究者,你很难不站到矿工一边——因为从理论上来说矿工才是区块链的所有者,虽然说实际上“算法共识”只是更大的“社会共识”的一部分;但是如果没了“算法共识”,大家的“社会共识”是什么?code is law在现在很少有人真的当真,也不现实,但如果不尊重代码和算法定下的规则,我们还需要什么区块链,用中心化系统不就好了。

而我之所以在EIP-1559完全无法认同,甚至比比特币UASF那次还不认同这些开发者的做法的原因是——这件事已经完全对事不对人,上升到了“党争”的地步。可能不是每个支持者之前都能搞清我文中写的逻辑,但对于EIP-1559的提出者和那些最核心的支持者而言,他们是门清的。整个EIP-1559完全建立在“我是老板,你是打工的,你之前赚用户的钱赚得太多了。而我要提高用户体验,所以你把钱吐出来,这事没得商量,也没你说话的份”的逻辑上,而这甚至都不是个中心化互联网公司的逻辑,它甚至粗暴地像一个封建家长式的逻辑。但我很难想象,这些自诩极客,自诩区块链的信仰者,理应是最坚定去中心化的人会感觉不出这种逻辑的别扭。

因此,要么,他们已经傲慢得开始把自己当唯一真理了;要么,这只是个政治斗争,他们说的冠冕堂皇的话只不过是用自己专家的身份和地位来引导舆论,从而不择手段打击异己的方式。

两者我都恕难认同。

点赞 3
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

2 条评论

请先 登录 后评论
maxdeath
maxdeath
代尔夫特理工大学 (TU Delft) · 区块链博士后 & 代尔夫特理工大学 (TU Delft) · 信息论博士