Move语言面向资源,非常适合区块链上资产的特性。Move 相比于 WASM,更专一、更安全;相比于 Solidity,更灵活、更便捷。因此现在是布局或者学习 Move 相关内容的好时机。
原文作者:Buidler DAO
原文来源:微信公众号
Daniel | @nft_souffl3 | Souffl3 社区大使
李大狗 | @0xleeduckgo | NonceGeekDAO Founder
廖师虎 | @lshoo36 | MoveDAO 发起人
Alex | @3njoy_labs | 3NJOY Labs Founder
GG | @gguoss | ChainX & ComingChat & OmniBTC Founder 兼CEO;区块链老兵
Aptos 算是 Libra 和 Diem 的延续。Move 语言是和 Libra 一起在 2019 年由 Facebook 推出的。
相对于传统编程的面向对象或面向流程,Move 语言面向资源,非常适合区块链上资产的特性。并且它有三个特点:1. 快;2. 安全;3. 自我迭代。对于区块链从业开发者更为友好。
公链开发最主要最知名的有三种编程语言:1. Solidity;2. WASM;3. Move。Move 相比于 WASM,更专一、更安全;相比于 Solidity,更灵活、更便捷。 生态、资金、造富效应以及开发入门都是阻碍用户和开发者进入 Move 的门槛,但同时也是所有从业者的机会。因此现在是布局或者学习 Move 相关内容的好时机。
所有的代码功能只是工具,而不是目的。功能需要有治理来协作,项目的治理和项目的底层技术都是同等重要的话题。
对于想要接触 Move 或其他项目的新人来说,加入并切身体验 DAO 是个不错的办法。一定要真的去敲一些代码,真的去交一些朋友,真的加入一些组织体验才行。
对于新的机会,不要等待别人总结好信息投喂给你,因为那时红利基本已尽。要多去发现和研究源头的资料和内容。
Aptos 算是 Libra 和 Diem 的延续,Move 语言是和 Libra 一起在 2019 年由 Facebook 推出的。其实当时大家都非常看好 Libra 和 Move 语言,特别是 Move 语言,因为它的一个特点是面向资源,非常适合区块链行业中资产的特性。但是 Libra 由于政策和监管的原因,没有正式上线。后来创始团队的成员各自出来创业,推出了新公链 Aptos 和 Sui,基本上延续了之前的技术栈。
Aptos 基本上延续了 Libra 的代码库,也做了一些优化和升级,特别是 Block-STM 这个技术,对交易的并行处理做了很大的强化。
Move 会越来越适合区块链的需求,比如面向资源、并发性和模块化等等。
Aptos 增加了 table 这种数据结构,这为 Move 赋能了更多的应用场景,比如大数据的存储、NFT 还有 DAO 等社交网络的开发。
Aptos 和 Sui 这两个链和 Move 语言是相互成就、相互促进的。
在公链领域,最主要、最知名的区块链编程语言有三种:Solidity 是最大的;第二是 WASM 语言;第三就是 Move。
Solidity 的底层基本不会迭代,迭代的都是其上的工具或协议,比如说 ERC-721。它没有自我生长的能力。(但是不可否认 Solidity 的生态是足够强大的,千亿美金的资产和几年时间的沉淀也已经检验了其可靠性)
WASM 语言是一个中间状态的语言,由网景开发,主打大而全,任何语言都可以用它编译成一个中间语言。但因为体量过大,其安全性很难控制。
Move 语言拥有对于一个想要快速发展的生态来说很有用的特性,就是快。Move 语言第二个很大的特性就是安全。第三个,Move 语言是后期发展的,而不是前期发展的,因此它的自我迭代性很好。我们熟知的一些语言,如 C 到 C++ 到 Java 再到后面的 Rust,它们的工具包和功能以及易学性,都是通过总结以前语言的一些错误和经验,来适应当下的环境。Move 语言是 Facebook 从一开始就高屋建瓴,通过总结区块链这个赛道的问题,开发出来的语言。它的自我迭代、性能特别强。
另外,Move 语言也有一个很大的缺点,就是目前除了 Aptos 和 Sui 这两个还没有上线的明星项目外,基本没有先驱了。所以 Move 语言到底怎么样?是需要弄潮儿们去亲自验证的。
我觉得程序员忍受垃圾语言的能力是特别强的。比如 JavaScript、Solidity、Java,都非常热门,也能构建出大型的项目。但是总有一小部分的程序员,在 programming language 层面有更高的追求。Move 语言,就很适合这种有洁癖的开发者。
Move 语言是基于 Rust 的,其继承了 Rust 的一些优点,并且针对智能合约资产做了一些延伸的支持,比如说资产不能被 copy ,也不会意外丢失。举个不太恰当的例子来说,如果 Solidity 是 C 或者 C++,那 Move 可能就是 Java。Solidity 对智能合约中的资产就像对指针的控制一样,很难做得好;但是 Move 有了线性类型,在资产管理方面解决了一些本质问题。
Move 对我最大的吸引点在于模块化的设计。面向 Solidity 的时候,比如 ERC-20,更像是一个面向接口的模式;但是在 Move 里面,很多基础的模块是可以持续迭代升级的。比如在以太坊上做了一个 ERC-721,当 ERC-721a 出来的时候,项目方必须要重新去部署和开发。Move 的机制可以大量释放团队在底层工作中耗费的时间。这种基础设施慢慢完善起来之后,中间的 framework 层会变得越来越多。每个团队都可以集中做自己最专业的业务,对整个生产力也是一个大幅的提升。
第二个是 Move 的安全性。这种安全源于三个层面:
1. 语言层面,Move 像 Rust 一样有自己的 ownership,所有权机制。
2. 语法层面,面向资源的编程模式,使 Move 有很强的数据抽象能力。
3. 虚拟机层面,类似于 Java,Move 有自己的字节码校验器。在此基础上,其有一套形式化验证的工具 Move Prover,能够帮助程序员做暴力的穷举测试,去判断系统是否有 bug。这对于寻找隐藏 bug 非常有帮助。
从生态建设者、应用建设者的角度来讲,Aptos 最大的特点就是快。
首先,相比在 Solana 上开发项目,Aptos 会带给我们很多惊喜,因为有很多中间件和工具,而且跟提供基础设施的团队交流起来也很愉快。我们在 Aptos 上开发时用到了一个基础设施,叫 Wav,其提供了一系列已经编译好的合约和 API ,可以实现基础功能的快速构建。
其次,Move 语言面向资源的特性,让构建代码变得很方便。
第三,Move 更加具有表现力和可玩性。比如,在以太坊上以 ERC-721 标准创建了NFT,如果后面再有新的协议、新的特性,比如 ERC-721a 或者 ERC-4907,是不可以去升级之前的 NFT 的。但是如果用 Move 语言写的话,未来是可升级的,可以把新的特性、后续的标准对资产的定义带入,这样可以大大地延长一些 NFT 项目的生命周期,给 NFT 带来第二次革命。
资金体量是一个问题。对于加密圈的用户来说,产品需要有一定的财富效应,才能吸引人;开发者也要盈利。当前的 Move 生态中没有以太坊、BSC 那样的资金体量和用户基础,但是从 0 到 1 的过程是充满无限可能的。
因为太早期了,工具量和生态方面都不够丰富,开发者数量相对也比较少。但其实这也是一个机会,就像西部大开发一样,遍地都是黄金。Move 本身的特性是非常适合智能合约和资产管理的,其对于新的开发者来说吸引力较大。给 Aptos 和 Sui 和 Move 三年时间,我觉得大家的看法会很不一样。
目前生态上必要的开发组件缺失是最大的一个问题。
对开发者来说,最大的困难是编程思维的转变。过去大家都习惯了面向对象的编程方式,突然面向 resource 之后,要在整个架构层面上更倾向于面向资源一点。在越成熟的开发人员中越明显。
门槛有两个:
第一个,中文的 Move 语言的学习资料太少了。
第二个,需要官方给力。众所周知,公链上线往往都是延后,很少听到提前。主网上线才可以正式地让生态运转起来,因此会是一个很重要的节点。
我觉得现在是提前布局的好时机,一旦生态真的爆发,资本也到位了,大家都开始投的话,机会也会变少。所以现在是学 Move 语言比较好的时间。
Starcoin 里面 DAO 的部分。DAO 是下一波周期里非常大的机会,如果 Move 生态想弯道超车,它一定得把握住 DAO 这块的机会。
@Alex
合约确实能升级,但是是有限制的。在 mint 的代币完成了初始规定的总数的发行后,会把 mint 的权限 drop 掉。已经发行了的 token,资产已经固定了,没办法凭空造出更多的资源。
另一方面,代码升级只是一个工具,而不是一个目的。这个功能需要有治理来协作,这意味着所有的持币人或者利益相关方都有相同的权利,一起去决定是否升级一个代码。
@Alex
Sui 使用因果顺序的排列提升 TPS,Aptos 是通过并行的方式。Sui 走的是注重技术的路线,Aptos 更注重生态发展。
@廖师虎
Sui 选择使用 DAG 有向无环图,所有的资产都是对象,都有 ID,可以找到任意对象的所有血缘关系,所以他每个对象都是一个都可以单独的并行处理。
Aptos 这边它是采用的另外一种线路,就是针对某每一笔交易做了一些内部的排序和验证。
@GG
EVM 其实可以设计成并行的。不过现有的 EVM 相关的生态都是非并行的,如果谁去扩展一个带并行的 EVM 虚拟机,虽然长远来看是有价值的,但因为存在和生态上所有项目都不兼容的问题,成本会很高。Move 有个很大的优势,就是没有生态,一切都刚开始,并且从一开始的时候,就想到了要做并行的虚拟机。
其他观点
以太坊是一个标准的区块链,必须要对数据做全局状态认证,要考虑全局状态的控制,因此没办法做并行。
@GG
因为速度难以提升。每执行一笔交易,里面至少包括签名、哈希值等。如果电脑全部用来做交易的串行执行的话,TPS 最多也只能到 1 万。Solidity 虚拟机没有特质化,没有从一开始就针对性能的优化去设计,后来也没有人去颠覆他,导致了虽然大家都知道 Solidity 很难用,但是一直还停留在他的生态上面,越来越大。这不是因为它本身很强大,而是因为没有更好的对手。
@GG
不应把区块链定义为必须要有 block 要有 chain 的东西,这是固有思维。
责任编辑:Kate