• 为什么Move将超越Solidity成为主流编程语言?


    最近 Aptos 、 Sui 的新热潮带火了Move 相关的生态概念。我们团队从事 Move 相关的工作一年多,算是全球最经验最多、踩坑最多的开发者团队之一,借此分享一下对 Move 的看法与理解。

    最近 Aptos 、 Sui 的新热潮带火了Move 相关的生态概念。我们团队从事 Move 相关的工作一年多,算是全球最经验最多、踩坑最多的开发者团队之一,借此分享一下对 Move 的看法与理解。

    我们团队过往在 Ethereum、 Solana 生态上都开发过项目,而自从我接触了 Move 之后一直保持着一个观点:Move 是目前最先进的智能合约语言,未来是一定会超越 Solidity 生态系统的,这也正是我们团队坚持在 Move 领域持续开发的源动力。

    为资产安全而生

    现今数字资产概念在不断扩展,“数字”的属性不断被弱化, “资产”的属性不断被强化。几乎每一个加密项目都会有加密资产,并且加密资产的不断增值往往成为项目发展的动力,但资产的增值与项目的发展离不开资产安全。

    资产安全似乎是所有平台应该给予的基本保障,但事实却令人沮丧,我们已经看到了一次又一次的被盗事件。

    这让我意识到 Move 的优越性。Move 编程语言通过资源定义与控制权限分离、静态类型、泛型、模块系统、形式化验证等特性使得智能合约语言更适合其面向资产的场景,从智能合约层面保障数字资产的安全。而通过资源定义与权限控制分离,不仅明确了资源属性,也让用户可以灵活地管理和转移资产,同时提供安全和保护措施,防止这些资产受到攻击,这让 Move 语言有相比 Solidity 更高的安全性。

    面向资源编程

    除了安全之外,最吸引我的还是 Move 更具有表现力的面向资源编程的理念,当然,这种理念也是它是让它更安全的的特性之一。

    在Move 里,资源 ( Resource )是一等公民,在编程的时候是必须被首先考虑的被编程对象。

    Resource 可以对应到我们物理世界中的实物,创造出来是需要有一定的权限或者消耗其他 Resource 的,而创造出来之后不能被复制也不能凭空消失。就像是一杯咖啡,只能选择喝掉或者倒掉( drop ),不能复制( copy)。

    当我们在编写合约的时候最重要的事情就是思考如何定义 Resource 的属性,Move 编程语言抽象了资源的四个属性,可复制 ( copy )、可索引 ( key )、可毁灭 ( drop )、可储存 ( store ),通过这四个属性的不同组合,用户可以方便的定义出任何类型的资源。这种针对 Resource 的设计天然就保证了一些常见的安全问题比如复制增发不会在出现。

    Move 通过对资源操作权限的抽象,用户可以明确定义资源可被操作的行为,从而将自己的注意力转移至其他更应该被关注的地方,编写正确的业务逻辑,实现正确的访问控制策略等等。

    提高可组合性

    过去我们一直在讲智能合约的可组合性,而在 Solidity 生态的智能合约的可组合性更像是基于 Interface  间通过消息传递进行的组合。而在 Move 是基于 Module 间的组合,通过资源的传递进行交互。

    怎么理解他们之间的不同呢?以建造一个汽车工厂为例,Solidity 的做法是定义了这个工厂的生产标准以及流程,每一个想来造汽车的人都需要先造一个符合生产标准及流程的工厂,然后才能创造汽车。而 Move 的方式是工厂就只有一个,想要造汽车的人使用这一个工厂就能造出来大家都认可的汽车。

    这样带来的好处一方面是节省了合约占用的区块空间,我们不需要重复创造工厂了,另一方面的好处是优化升级变得容易,不会自缚手脚了。

    比如在以太坊上,当我们想扩展一些新的行为或者做一些实现上的优化,那我们需要重新定义过往的接口,同时也会影响旧的方法,像 ERC 721 和 ERC 721A, ERC 4907 这些优化和新的定义,是没有办法直接让过去所有使用了 ERC 721 的合约直接进行升级迭代的。

    而 Move 基于 Module 间的组合只需要对 Module 进行升级和优化,所有使用过这个Module的其他合约都会自动使用最新的版本。

    这种合约层面的可组合性和面向资源的编程带来的表现力与可扩展性是其他语言无法带来的。同时针对资源的定义也更贴近现实世界中各种资源的组合方式,比如乐高, 组装电脑的主机的各种配件。

    Move 这些特点带来的一个关键性的好处就是可以非常明确的将资源的定义和资源相关的行为进行拆分。

    就像一个物品,物品的本身定义只是决定了他以什么形态展示,具有那些属性,能够以什么方式被销毁。而他的所有权,是否可以进行转让等等相关的行为,完全有物品的所有人或者使用方来决定。

    这跟现实世界是高度相似的,当一个商品摆在货架上的时候,是可以被任何人购买的。而当商品放在保险柜里,就收到了其他规则的限制。

    总结

    资产安全、资源抽象、可组合这些都是 Move 在语言层面上的特性,综合来说,我认为它是最适配链上应用开发的语言,它的特性与 DeFi、 NFT 等产品的需求高度契合,并且 Aptos、Sui、Starcoin 等新公链存在市场空白,NFT、DeFi 等业态尚未成熟,我认为以 Aptos 为代表的新公链崛起将是所有掌握 Move 语言团队的巨大机会。

    这也是为什么 3NJOY Lab 下的两款产品 Souffl3 和 Wav3 会在第一时间 all in Move 生态从事 NFT 领域的基础设施方向的工作。

    随着 Aptos 和 Sui 的测试网上线与开发者社区的不断壮大, Move 走入了更多人的视野,我们团队也期待看到,越来越多的人可以利用这些语言上的特性和优势,搭建更多有意思的应用场景。

    当网络从 3G 升级到 4G 的时候,大多数人不知道更快的移动带宽有什么用,但网络提速催生了移动互联网的大爆发。

    当 Move 和 Aptos 这些公链出现,大多数人不知道更低 GAS、更高 TPS 的区块链和这门新的合约语言组合在一起会有什么用——我们也不知道,但我们相信,技术进步将会推动产品创新——正如历史已经显现过的经验一样。

    在 2022 年,我们可以期待 Aptos 和其它使用 Move 作为合约语言的公链上将会有丰富的应用雨后春笋般涌现出来,就像轰隆作响的蒸汽火车头,将带着加密网络向下一个去中心、可组合、安全的未来驶去。

  • 相关阅读:
    oracle数据库导出数据为csv包含clob数据
    Linux随记(四)
    GD32L233RCT6学习开发(一)
    [极客大挑战 2019]RCE ME 1
    【DevPress】V2.1.0版本发布,优化博文详情页
    2022.10.19 英语背诵
    你可能不知道的HTML小技巧 面试题小技巧
    chosen.jquery.js 插件的使用和总结
    MySQL的日志管理、备份和恢复
    echart 雷达图
  • 原文地址:https://blog.csdn.net/qq_32193015/article/details/126194544