Solidity最强对手:MOVE语言及新公链崛起
新一轮公链叙事中有两个亮眼趋势:一是以 Move 编程语言为核心的高性能新公链,二是以 Celestia 为代表的模块化区块链。借助本文,我们简单聊一聊最新崛起的 Move 语言系公链三巨头,以及从技术视角出发,他们背后的 Move 语言究竟好在哪里。
全文 5288 字,预计阅读时间 13 分钟 文章速览:
01/ Move 语言系公链三巨头的崛起
02/ 当前赛道霸主:Aptos
03/ Resource 特性:Move 真正实现了数字资产化
04/ 技术差异总结:Solidity v.s. Move
05/ Move 未来展望与课程学习
1. Move 语言系公链三巨头的崛起
- 2019年,Meta(原 Facebook)全球流通的超主权数字货币项目 Libra 问世,谁料想出道即巅峰,随后因监管限制被迫转型 Diem 无疾而终。今年 1月底,Diem 以约1.82亿美元的价格被 Meta 出售。Libra 与 Diem 团队在这一过程中,留下了宝贵的遗产——弥补了 Solidity 及 EVM缺陷的 Move 语言以及衍生出的公链团队,比如最具代表性的 Aptos、Sui 和 Linera。
- 2021年12月,起步最早的 Sui 公布了 3600 万美金的 A 轮融资,资方包括 a16z 与 NFX、Scribble Ventures、Redpoint、Lightspeed、Electric Capital、Samsung NEXT、Slow Ventures、Standard Crypto、Coinbase Ventures 等。
- 2022年3月,Aptos 完成 2 亿美元融资,同样由 a16z 领投。
- 2022年6月,Linera 宣布完成 600 万美元种子轮融资,本轮融资的领投机构还是 a16z,参投机构包括 Cygni Capital、Kima Ventures 和 Tribe Capital 等。
- 2022年7月, Aptos 完成 1.5 亿美元融资,FTX Ventures 和 Jump Crypto 领投,a16z、Multicoin Capital 和 Circle Ventures 等参投;同时 Sui 爆出正在寻求2亿美元 B 轮融资,估值已经达到20亿美元。
- 2022年8月,Aptos 宣布将于8月30日启动激励测试网3(AIT3),项目方宣布 AIT2 非常成功,有超过 225 个社区节点参与测试,分布于全球 44 个国家和 110 个城市。按照项目路线图,主网将于该测试网结束后上线。
排在第二位的 Sui 已经发布了自己的 Tokenomics($SUI) 白皮书。其经济模型有一个独特特点:计算费(computation fees)与存储费(storage fees)分开支付。当用户提交链上数据时,他们会同时支付存储费与计算费(俗称 GAS)。计算费会进入 Stake rewards 完成分配,部分转移至 Storage Fund;存储费直接转入 Storage Fund,随着网络的增长和成熟,该基金用于补贴未来存储成本的增加。这一设计将链上数据的存储权回归用户,用户可以选择删除链上的数据来取消存储费。此外,Sui 的开发工具包(SDK)尝试连接其他生态系统和非加密应用,包括 Gaming APIs、SuiEcho、Handshake 等有特色的 SDKs。但其生态应用布局与 Aptos 相比非常寒酸,公开报道中仅有数个钱包相关的生态项目。
2. 当前赛道霸主:Aptos
Aptos 的明星团队让其在创立初期就收到众多明星资本加持。根据 ForesightNews 报道,其联合创始人兼首席技术官 Avery Ching 曾在Facebook 担任首席软件工程师超过 10 年,并且是原 Meta 旗下加密平台 Novi 团队的技术负责人;Alden Hu、David Wolinsky 等大部分开发团队都参与了 Diem、Novi 的开发。其设计重点是绝对安全、可扩展性和可信的中立性,最终目标是能够在一秒钟内处理 10 万甚至 16 万笔交易。在这样的强技术团队下,Aptos 也充分展现了自己研发战斗力,打造了如下突出的边际优势:
- Aptos 团队对其共识机制-拜占庭容错(BFT,理解此概念的可参考 CSDN 这篇文章:https://blog.csdn.net/qq_40713201/article/details/124618644)进行了四次迭代,以实现高事务吞吐量、低延迟与高稳定性,在三分之一的验证节点故障时,仍能保证稳定运行。
- 有望比老牌公链有更快的交易处理速度,根据 Aptos 测试网数据,当前该网络每秒可处理1万笔以上的交易,理想状态下,Aptos 主网每秒可处理16万笔交易。公开资料表明,近期有机构对各大公链的速度进行了测试,Aptos Max TPS 远超包括 Solana 在内的老牌公链。
- Aptos 在7月正式公布 30 余个生态项目,虽然众多处于测试网和开发阶段,可交互的只有钱包和 DEX,但是相比较于其他 Move 语言生态公链遥遥领先。如今公布的生态项目类型包括钱包(Hive)、DEX(Pontem Network)、流动性协议(NjordFinance)、NFT(Topaz.so)、浏览器(Aptosscan)及数据分析工具(Dapptos View)等主流 dApp 赛道。
- 充分利用 Move 开发语言与当前主流公链 Solidity 语言差异化竞争。我们接下来从技术视角详细解读 Move 语言关键优势。
为什么这样说呢?举个例子,Solidity 和绝大多数编程语言一样将 Token 作为数值变量处理,就是将 Token 的转移过程是进行加减法操作的,即张三要给李四转10块钱,于是则先将张三的余额-10,再将李四的余额+10。
所以在 Solidity 中资产就是一个可以被加减的数字,那么这里面就需要合约代码非常严谨,比如在进行加减法操作时出现了一些问题,给张三-10,李四+20,或者张三-0,李四+10呢?因为这个过程就是通过很多代码逻辑去来回在若干个钱包中进行加减操作,很难保证不会出现一些问题。
究其原因是资产在 Solidity 中没有被特殊定义,只是将其看作和年龄、电话等一样的变量。而资产的定义本就应该是独一无二的,就像是在物理世界中,我手里有一块金条,我要将它给某个人,不论给予中间的过程是怎么样的,这个金条不会从1根变成2根。所以我们常说的数字资产,在 Solidity 中只可称之为可以被加减的数字,而谈不上资产。
Move的可编程 Resource 是其变得安全且强大的核心,实现了真正意义上的数字资产化。Resource 是一种数据类型。数据类型即定义一种数据结构的方式:
- 字符:比如姓名、住址,是 String 类型;
- 数字:比如年龄、电话,可以是 Int 类型;
- 是否、对错:一些对立,则可以用 Boolean 的 Ture 和 False 来表示。
Move 认为 Token 资产是一种很特殊且重要的数据,不应该用普通的数值类型来定义和表示,所以单独创建了 Resource 来定义链上资产。这种方式呈现出三个特性:
- Resource 在 Move 中依然是以一个数值的形式存在,可以作为数据结构被储存,也可以作为参数被传递和返回。
- Resource 可以安全的表示数字资产,它的特殊在于不能被复制,丢弃或重用,但是它却可以被安全地存储和转移,并且 Resource 类型的值只能由定义该类型的模块创建和销毁,所以其实现了资产的含义而非数字。
- Resource 适配了区块链应用特性,如与账户进行绑定。Resource 数据必须要存储在账户下面,所以只有分配了账户后才会存在对应的 Resource 资产,以及 Resource 只要取出后就必须被“使用”,用内置的 Move_form 方法将资产从账户中取出后,要么将其作为返回值传递即必须要流向一个地方,要么直接将其销毁,这意味着资产取多少就用多少。还记得 Solidity 是如何操作的吗?它将一个地址的余额减少,再去另外一个地址增加,然后通过代码使得减少和增加的数字是一致的,所以在 Solidity 是完全靠代码逻辑强硬的实现了资产使用,但是 Resource 则是在底层将资产的概念进行了封装而非加减法,避免了资产凭空产生和随意访问,极大的提高了安全性,可以将 Move 的 Token 移动看作是搬砖,从一个地方搬到另一处,而 Solidity 则是加减法,一处减了,另一处加上。
综上所述,Move 是一种更加原生且贴合的专用于发行数字资产的编程语言,它实现了程序与数字资产的直接集成。
4. 技术差异总结:Solidity v.s. Move
从上面可以看出,Move 在 Solidity 的基础上,增加了很多的特性,具备极好的安全性和工程能力。Move 从 Solidity 真实的安全漏洞中吸取宝贵的经验教训,在底层的安全设计上有重大的创新,在保证语言表达能力和灵活性的同时,也让开源系统更加安全可靠。
举个栗子,假设有100个 Token,在 Solidity 中,黑客能够轻易的将100个 Token 复制成更多的 Token(参考无限增发的漏洞)。但是在 Move 中,只要将 Token 定义成 Resource 类型,从虚拟机层面保证 Token 是不可以复制和修改的,黑客绝对不能通过复制来盗取 Token。
对 Move 来说,类似的优点很多:
- 面向资源编程Move 专门针对金融场景进行了增强,引入了面向资源编程。对于 FT 和 NFT 等常用场景,Move 将数据定义成资源,能够从虚拟机层面保障了数据的安全。
- 纯静态语言动态调用是 Solidity 的基石,所有的跨合约调用都要通过动态调用来实现,例如 DelegateCall,但是也是大部分安全漏洞的入口,例如 TheDAO 攻击、PolyNetwork 跨链攻击等等。鉴于 Solidity 的真实经验,Move 采用了完全纯静态的实现,更好的保障链上资产安全。
- 形式化验证形式化验证是 FV(formal verification)是指使用数学工具分析设计可能行为的空间,而不是计算特定值的结果。也就是说,通过数学的手段证明程序的安全性。Move 自带形式化验证的工具,我们可以使用数学的手段来测试和证明合约的可靠性,这是 Solidity 不可比拟的优势。
- 分散存储Web3 时代,用户掌握数据是所有权。Solidity 是通过 Map 的形式,集中存储合约数据,在合约出现漏洞的时候,例如获取到了合约 Owner 权限,所有用户数据都将遭受攻击。Move 巧用 Resource,能够将数据分散的存储到每个用户自己的 Account 下,既保证了数据的安全,又真正的做到了数据的所有权归用户所有,合约的 Owner 没有修改数据的权限。
- 面向泛型编程出于安全的考虑,Move 设计成了纯静态语言, 但是灵活性并没有因此而减少,Move 通过面向泛型编程,保障了合约的扩展性,增加了代码的复用能力。
5. Move 未来展望与课程学习
在研究新公链这一火热话题中,我们研究员不约而同发现理解本轮新公链叙事,必须懂得 Move 技术细节与公链技术创新。
因此 Buidler DAO 联合 3NJOY Lab 团队 Move 语言资深布道师(Move小王子),打造一款纯公益技术系列课。我们希望借助新公链这一趋势,继续为业内扎实 Buidl,向行业提供一款全新课程——从 Move 语法开始,由浅入深,逐步深入到 Move 的高级特性,手把手教学,适合各种学习 Move 的朋友,敬请期待。
参考文章:
- Mysten Labs & Sui: vs. Aptos, other L1s . State Io
https://medium.com/@state_xyz/mysten-labs-sui-vs-aptos-other-l1s-d046b598a914
- 新生代公链再攻「不可能三角」. 蜂巢Tech
https://mp.weixin.qq.com/s/yS3heq0qbdcPwX3WVYMnKw
- 「新新公链」战火再起?抢先盘点 Aptos 生态 . ForesightNews
https://foresightnews.pro/article/h5Detail/8874
- 30条新公链 . 哔哔News
https://mp.weixin.qq.com/s/e1cyqDKsYfcQ3DZJ238D9w
- 为什么我认为Move终将超越Solidity . 3NJOY Lab
https://www.odaily.news/post/5180762
Buidler DAO 建设成为 Web3,最有影响力和生产力的项目孵化器
https://linktr.ee/buidlerdao
作者
Jason |@Jason_chen998|BuidlerDAO研究员
Frank |@MonolithMatrix |BuidlerDAO研究员
Move 小王子 |知乎:手把手写 Move 智能合约
Buidler DAO
微信号
BuidlerDAO
功能介绍
成为 Web3 最有影响力和生产力的人才与项目孵化器