非正式地回应来自 Move 生态的讨伐
刺耳的Whistle
2023-06-29 15:15
订阅此专栏
收藏此文章
6 位开发者共反驳了 12 个观点。


撰文:北辰



Whistle 作为新注册的自媒体账号,第 1 篇正式发布的文章《开技术倒车!Aptos 和 Sui 其实是联盟链,生命取决于资本的耐心》在完全冷启动的情况下还能吸引来这么多行业注意力(火力),有些超出预期了。


本文得到了很多行业内朋友的认可,甚至已经有两位朋友表露了投资意向(顺便一提,我们现阶段还不需要,只管「但行诸事,莫问前程」)。


与此同时,由于挑战了行业主流观点,引来了多位 Move 生态的人的讨伐,最集中的批评是《反击!多位资深开发者反驳某些批评 Move 系公链的言论》——6 位开发者共反驳了 12 个观点。


虽然我们之间的观点不同,但都是集中在技术讨论上,这种争论有助于促进行业的良性发展。


Whistle 理应安排一篇文章来反驳那篇文章的反驳,但 Steven 说,越是基础的争议(比如 Sui 到底是不是区块链),就越需要严谨,他要认真准备一下再去反驳对方认真准备的反驳。


我们其实总共做了两次访谈,有一些涉及细节的讨论并没有在文章中体现(主要是囿于篇幅,但不影响文章中所有的结论),所以今天先贴出第二次访谈中涉及细节的部分,作为非正式回应,Steven 的正式回应过几天再贴出。


不过由于 12 个反驳中有一个是北辰的观点(3),所以这里先做回复,并越俎代庖地替 Steven 回应两个争议的观点(4、7)


观点(3):


争议原文:


「币圈的人好像挺没见识的,比如之前 Dfinity(ICP)出现后,币圈很多搞技术的人就很兴奋,觉得它的叙事非常宏大,能解决很多问题,但其实那就是云原生的故事,微软、IBM 都搞了多少年了。」


反击:


「ICP 的构建路径的确有问题。但这个作者应该是觉得『去中心化的云计算』这条路不对,但 Web3 就是去中心化的云原生。」——支持 Move 的 Layer2 项目 Rooch 创始人 Jolestar


北辰的回应:


首先,我不是觉得「去中心化的云计算」这条路不对,我也不是觉得「云原生」不对,我只是觉得 Dfinity 搞的去中心化的云计算不对。理由无关技术,而是认为它的业务逻辑、经济模型、资源决定了很难发展起来。当然,这个观点完全可以单独写一篇文章来阐述,这里不再赘述。


其次,我也觉得「Web3 就是去中心化的云原生」,但绝对不是 Dfinity 搞的那个云原生。


观点(4):


争议原文:


「自以太坊以来,没有再出现什么新的技术范式。」


反击:


「如果是指最早的以太坊,其实它和它以外的技术范式更迭都很快。ZK,DA,Verkle Tree,交互式欺诈证明,这些技术范式的最早发起者都不是以太坊基金会,但很快就被以太坊借鉴并吸收。


比如,以太坊在 DA 方面借鉴了 Celestia,在 PoS 共识协议上借鉴了 Cosmos 的 Tendermint。ZK 也不算以太坊本身的技术,但是在推广 ZK 概念上,以太坊基金会花了不少力气。


另外,Move 语言也算是技术范式上的创新。Algorand 和 Cardano 在 POS 上的范式创新也很重要,只是还没有经历大规模的考验。」——以太坊生态存储类项目 EthStorage 创始人 Zhou Qi


北辰替 Steven 越俎代庖的回应:


首先要厘清啥叫「范式」(Paradigm),它指的是一个理论框架,而不是某个技术细节。从牛顿的经典力学到爱因斯坦的相对论,这才叫范式转移,处在它们之间的玻尔兹曼的能量均分理论虽然也很伟大,但不是范式转移。


ZK、DA、Merkle Tree、交互式欺诈证明,这些都是应用在区块链的技术,而不是区块链本身。它们和区块链可以有很好的结合,但至少现在还没有出现像以太坊之于比特币那样的范式转移。


不过 Meta 系的技术(包括 Move 语言)确实算是技术范式上的创新,只是我们认为它的方向错了……


它很好,不过它从技术到业务,做的都是联盟链的事情,就不要跟公链沾边了。


观点(7):


争议原文:


「Move 不是一种好的语言,因为如果脱离了 Aptos 和 Sui 等项目,Move 就没法用。」


反击:


「这对于 Solidity 也是完全一样的。如果 Solidity 脱离了支持 EVM 的链,也没法用。『XXX 不是一种好的语言,因为你如果脱离了 XXX 生态,XXX 语言就没法使』放很多编程语言身上也是一样的。」——资深 Move 生态开发者 Nanne2022


「Steven 会这么说,主要是因为 Solidity 和 Move 需要专门的虚拟机才能执行,这需要专用的程序,但统治整个互联网开发领域的 Java 一样需要专门的虚拟机。如果放在上世纪末 Java 刚推出不久时,也有人会说:『Java 如果脱离了 JVM 生态,就没法用,所以不是一种好的语言。』」——Move 社区成员 eternal


北辰替 Steven 越俎代庖的回应:


Steven 在回答该问题的最开始就表明了:「它们(Solidity 和 Move)的基础就不一样,所以谈不上谁更加优秀。」


以及在该问题收尾时也说:「跟语言就没关系,从 Libra 开始的所有公链都是有问题的,这才是一切问题的根源。」


问题不在于 Move 是不是好的开发语言,而是 Move 是不是好的「区块链开发语言」,Steven 的回答很明确——Move 所在的生态,就不是区块链的正确演进方向。


上次访谈中一些涉及细节的观点:


北辰:为什么 Meta 系的项目「既没有区块,也没有链」?


Steven: 最初的起源就是 Facebook 为了搞支付系统去做了一个 Libra,它是一个标准的联盟链,本来想推广到全球,只不过后来因为各种原因终止了。


它的整体思路和公链完全不一样,它没有一个完整的区块结构,也没有一个完整的指向链表的结构,所以我说既没有没有区块也没有链。


第一点,它的账户非常特别。


我们在传统公链上创建一个账户,会产生公私钥对,然后由公钥来做哈希生成账户地址。私钥就是你的一切,丢了私钥,账户也就没有了。


Libra 虽然也是同样的结构创建账户,但公私钥对是可以被替代的。它是从联盟链用户的角度出发,考虑的跟传统银行账户一样,就是万一私钥丢失了怎么办。


这一点对个人用户来说是有好处的,因为丢私钥的可能性蛮大的,不少比特币其实是死掉的比特币。


Aptos 继承了这个特点,它们恢复账号的方式,从区块链的角度来说比较危险——你的地址下的账户其实是可以被别人恢复。你不能因为私钥可能会丢失,就把系统的安全性级别给降下来。


第二点,它的共识算法非常奇怪。


它在共识算法上的创新其实是建立在认为大部分节点都是可信任的,相当于把所有的节点看作一个集群来管理,这是典型的联盟链的做法。


所以它会有一个共享的内存池协议,把未打包的区块信息交易都放在内存池里面,所有节点都是通过内存池协议彼此共享,相当于传统的业务集群里面的缓冲区。然后再在节点里选出一个 lead 节点,由它负责给缓冲区里的交易排序,然后提案一个交易区块,并通知其他节点来投票,达到三分之二的投票就会执行。


说实话,这个投票没有太大意义,因为只是确认lead 节点提交的新区块里面的内容是否符合历史状态,而 lead 节点的产生理论上是可预测的,这一点非常危险。


当然,所有采用 BFT 共识协议的系统或多或少都会这样的问题——节点数量不能太多(会影响共识的效率),也不能太少(无法控制系统的安全性)。


以太坊的节点也有随机性的选择,但是以太坊采用了 Slot(时隙)的方式来划分时序,这相当于又人为增加了一层选举,把挖矿节点在时间和空间上都分开,兼顾了效率和安全性。

我们再说回到 Libra,它的lead 节点的权限非常大,会以少量算力控制整个网络。


传统公链的交易数据要在整个网络里传两遍(广播一遍,验证一遍),而 Libra 则是已经由 lead 节点处理好区块信息,只是把序号传播给其它节点,它们收到序号之后就按 lead 节点指定的顺序执行交易,整个过程的数据交换量非常少,这意味着如果lead 节点作恶的话,其他人很难控制。


北辰:其他的节点是如何来判断 lead 节点有没有作恶?


Steven:这个肯定判断不了的。lead 节点发布的执行顺序,其他节点只能去验证交易的前后状态是否正确。


北辰:如何理解 Libra「既没有区块,也没有链」?


Steven:整个 Libra 的数据其实就是一个带着版本号的关系型数据库。它只是把交易作为载体,这个带版本号的数据库由记录交易、输出结果、账本状态组成了一个三元组,每次交易它都会改变一下三元组的所有项目的状态,然后通过不同的状态标识来确定账本是否有效。


这跟传统区块链完全不同。比特币、以太坊上的每一笔交易都是可以追溯到最原始的代币(挖矿挖出来的代币)。而 Libra 就是每次交易都修改一次状态(即不同的版本),然后再对这个版本做一次全局性的共识。


你可以说它是颠覆性的,重构了区块链,但这个做法只适合联盟链,不适合公链,因为它的全局状态控制、不同节点间的安全性都不能保证。


之前我们说,Move 语言之所以不是一个好的区块链编程语言,就是因为它只能在 Meta 系的这种基于带版本号的数据格式下才能够运用,跟公链没什么关系。


北辰: 这也是我个人的困惑,就是联盟链有存在的必要么?如果追求绝对的安全性,那就去公链,如果追求便利,那就用互联网,作为中间态的联盟链没有太大意义。


Steven:联盟链的高性能是牺牲了去中心化和安全性得来的,它们的性能和安全性完全可以用中心化系统再加一点密码学就可以了,这个在服务器平台、云平台上都可以做,效率肯定更高,而且也不见得安全性更低,所以就没必要用到区块链,何况联盟链也不是真正意义的区块链。


总结


Steven 也将「本着实事求是精神,与多位业内技术大咖进行访谈,针对《反击!多位资深开发者反驳某些批评 Move 系公链的言论》中的 12 个论点进行讨论」,敬请期待!


这里给我们的Steven 打一个广告。他之前在朗讯做 5G 通信,现在帮国内一些 crypto 基金看公链。


他看好区块链,但经常发表针对区块链的暴论,Aptos 和 Sui 只是我们聊的第一个……未来还会持续输出暴论。欢迎对 Steven 发起各种 challenge!


作为多年来的通信工程师,Steven 对区块链系统有自己独到的见解,这次的争议至少说明在被各种噪音淹没的 crypto 市场中,还是有很多人愿意去关注、讨论关于行业的真实且刺耳的声音。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

刺耳的Whistle
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开