Why Nostr? What is Njump?
2023-03-16 16:43:20

NewSchoolBtcMaxs on Nostr: ...

一些朋友可能依然对以太坊这种范式抱有好感(“具有强大的功能”),在此基础上,认为以太坊可以通过所谓的 “渐进式去中心化” 达至理想的,或至少是可接受的去中心化程度。

但我认为,这是一种缺乏思虑的意见。以太坊的中心化问题,不是 Vitalik 的疏离、退隐乃至死亡可以解决的,这个 Vitalik 的消失的下一步就是下一个 Vitalik 的起步,因为它的中心化因素藏在它的技术范式中。

这种技术范式,又恰好是许多人看好它的理由。这里面的矛盾,很多人还没有发现。

我把我曾经的思考放在这里,希望可以帮各位节省一点时间。

以太坊的技术范式可以概述为:

- 链上计算;计算的含义是除了用户输入进去的数据,它还可以根据计算产生有意义的新数据;这一点常常被人归纳为 “图灵完备”。
- 全局状态;计算(合约型账户)的结果可以长存在链上,以备随时调用;节点需要对全局状态达成共识。
- 富状态性;交易可以同时调用多个合约型账户的状态,并且这种调用的深度仅受区块大小的限制,不受别的限制;这是所谓的 “以太坊 DeFi 可组合性” 的根源。

三者的组合,是以太坊的功能性的源头,也就是各位今天可以在以太坊上看到许多应用的原因。但是,很少有人思考过为了获得这种功能性,必须付出多大的代价。

明显的一点是隐私性和可扩展性的牺牲。代码都放在链上,用户的交互都显然可见,而且因为是账户模型,难以避免链上足迹在单一账户中积累,所以隐私性差。其次是计算都在链上发生,意思是被交易调用的计算会在整个网络的每个节点中重复执行一遍,这可扩展性当然差。这一点的直接后果就是以太坊节点的运行门槛更高。

但是还有更根本的东西被牺牲掉了。

约束交易的资源消耗量的手段是要求账户根据程序计数器 Gas 付费。但这里面就有两个问题:(1)交易可能使用不同的资源,例如数学运算、合约的状态数据 slot 和一次性使用的数据 call data,使用不同资源的合适 Gas 开销比例是难以确定的;为什么做一次这个运算要消耗 10 Gas,而读一次状态是 100 呢?(2)全局状态的不断增长(状态膨胀),会使原本的状态读写操作的 Gas 消耗量偏低,即不断趋于失调。原本以太坊上只有 100 个账户,现在变成了 10 万个账户,那读写一次任意账户状态的实际开销就是上升了,这时候如果还保持着原有的定价,就会导致大家滥用链上状态。

第二点决定了,即使仅仅是为了让协议获得生存能力、保持合理的抗 DoS 攻击能力,某一些操作的 Gas 消耗量也必须调整,而且是不断调整(因为状态会不断膨胀);而第一点又决定了,这里面有许多科学无法确定的问题。既然科学无法确定,就只能诉诸政治决断,治理结构会自然趋于中心化。

另一种中心化的因素,同样藏在技术范式里:因为以太坊不仅要对计算的步骤达成共识,还必须对计算的 Gas 消耗量达成共识(Gas 消耗量乘以交易的 Gas 单价决定了账户要付出多少 ETH,所以是全局状态的一部分),所以改变 Gas 消耗量的升级必须是硬分叉升级,没法做软分叉。然而,一旦硬分叉成为一种习惯,治理中的多数派就彻底没了制衡,因为少数派除非再造一个网络,否则挡不住多数派将自己的意志强加在所有人头上。

这就是以太坊何以中心化。Vitalik 只是表象,深层原因是它在技术上就埋藏了这种中心化的因子。

如果你相信渐进去中心化,你不妨问问自己,到明年(2024 年),以太坊这种技术范式就已经有 10 年的历史了,为什么它从来没变得更家去中心化过?

在所有对以太坊的评价中,我认为最中肯的来自 Giacomo(已经有 nostr 网友引用了):“以太坊浪费了许多有价值的智力资源”。这不仅仅是因为我认为我也是曾经被浪费的一个。也是因为,它在各个方面,都既表现出一种处心积虑(请看以太坊白皮书,所有设计环环相扣,就是让上述三种元素融为一体),同时,又实在是缺乏思虑的产物。并且在它的演化中,这种缺乏思虑变得越来越明显。

你我都知道,权力没有制衡,是缺乏思虑最好的助推剂。
Author Public Key
npub164pusgq9pm7k6tq4x6cfjqg34s5n53p3u6sjj22rydnwp25qq8nsx7jewz