Replying to NewSchoolBtcMaxs

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

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

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

隐私性这点你换任何blockchain系统做都一样,大部分交易需要链上公开性来验证。想要隐私去L2的附带功能。 何况satoshi的BTC地址就那么放在那里了,也还没出过什么问题。

分开的计费方式已经在EIP 4844 multi-dimensional fee markets做了,快来了。提到这个,我反而觉得BTC segwit那1/4的计费方式被滥用的太离谱了,啥都往链上塞。要是ordinal继续下去迟早会成为BTC Maxi痛恨的defi nft乐园。

其他很同意,不过我觉得btc在,其他链没必要达到那么高级别的去中心。只要比政府机构更去中心已经有足够的存在价值了

Reply to this note

Please Login to reply.

Discussion

误解 #1:不在底层实现机密功能的区块链系统都一样。比特币的资金形式是 UTXO,所以个人可以不断换用新的公钥(地址),不必让信息在同一个地址(公钥)上反复积累;同时,单笔交易就可以将一笔交易完全打散,换用成新地址;此外,还有 P2EP、Coinjoin 这样简单易行地打破链上线索分析法的东西。

但以太坊的资金形式是账户余额,并且这些余额是全局状态的一部分,所以,个人频繁换用公钥会加剧状态的膨胀(主链负担);此外,因为单笔交易难以将账户内的资金彻底打散,所以即使个人清扫账户、换用账户,其链上踪迹也会更容易分析。

你认识不到它们有区别,不代表它们都一样。

误解 #2:L2 的隐私特性可以孤立于 L1 而存在。L2 总是需要资金发起交易来进入,也总需要发起交易来退出。所以 L2 的隐私特性是无法孤立于 L1 而存在的。

举个著名的例子,Tornado Cash 是以太坊上一个著名的零知识混币协议,你可以把一笔钱存进去,然后用另一个账户来取出它。这是用零知识的范围证明来实现的。听起来很棒,问题是,你的取款账户用于取款的 gas 从哪里来?如果它要从别处来,就会将混币的隐私效果完全消灭。所以 Tornado Cash 必须搭配元交易来使用。

你现在的回应,跟 Vitalik 当年对比 UTXO 和账户模型的说法完全一样,但现在已经显然无法说服人了,至少不能说服我。

# 误解 #3:多维度的资源计量方式可以解决全局状态带来的问题。这是彻底的误解,即使你发明一种新的资源度量单位(如以太坊即将做的那样,对单区块的 Call Data 施以额外的字节数限制),只要网络必须对每一步的资源消耗计量达成共识,问题就还在。没人能保证这些计量绝对准确而不需要改变。

此外,推到极端,彻底的多维度计量会撕裂以太坊范式的第三个元素:富状态性。不过,我认为,如果真有这么一天,以太坊的粉丝应该感到高兴,认真的。因为这代表治理的参与者终于开始考虑以太坊协议的生存力问题了。

另外,我很乐意听听你怎么论证以太坊基金会比政府机构更去中心化。

多谢指教,不明白以外的大体都很同意,不过我觉得以后绝大多数人都会在L2上,没必要再和主链打交道了。其实BTC费用已经是如此,平均$1.5已经不是一般人频繁能用到的。

#1 “因为单笔交易难以将账户内的资金彻底打散,所以即使个人清扫账户、换用账户,其链上踪迹也会更容易分析。” 既然都在L2,让开源的Client端多做一点事,似乎没什么所谓?

#2 不太明白,不过最后证明账号系统做不了的话,你在某个L2或L3做一个utxo不就行了吗?

其实我觉得ETH上绝大部分应用没啥强隐私需求,你能追踪到具体的地址又怎么样,还是没经济的方式大规模锁定现实的个体啊。应该比捉翻墙的人难几个量级。

#3 请问有这方面的文章吗?完全在我的知识范围外, 想更深入了解一下

我没说,ether背后的基金或开发者啊,我说的是那条链。它太糟糕就会分叉了,现在还远没有到有证明开发者完全控制这条链干坏事的程度吧。(回滚这样的事社区大体认可的,不认可的当然也有不过声音相当小了)

关于 #1,我不理解你的意思。

关于 #2,我认为你跟 Vitalik 一样,同意 UTXO 的隐私性优于帐户模型,只是拿 “以太坊上可以编程更 ‘专业‘ 的隐私方案” 来绕开讨论点。事实是比特币现在可用的隐私工具明显比以太坊的多。

此外,L2 是个很模糊的词语,不同的 L2 方案有很不同的属性。所以不知道你要拿哪一种方案跟哪一种方案比?拿没有 zk 属性的 zkrollup 跟实现了机密交易的 Liquid Network 相比?拿单一定序器的架构跟闪电网络比?

关于#3,这是我的想法。没看过别人写过这样的资料。你可以自己思考一下。

#2 我不知道啊,所以没说Account base做得了还是做不了什么内容。我可不敢跟Vitalik比,即使是你认为很虚伪的形象,我也没这个技术力去比啊