Move 语言基于 Solidity 的经验和教训,进行了多方面的创新和改进,在安全性上有了大的提升,也更适用于智能合约的开发。而基于 Move 语言的新公链们,也给 Layer1 的发展带来了更大的想象空间。
作者:蘑菇
封面:Photo by Shubham Dhage on Unsplash
自区块链诞生以来,整个行业已经经历了几轮周期轮替。目前拥有最丰富生态、影响力最大的以太坊,由于性能问题和费用问题而饱受诟病,在周期中不断被后起之秀挑战。
上一轮周期中,涌现出了一批新的 Layer1 项目,如 Solana、Polygon、Fantom 和 Near 等,它们都试图在底层公链上进行一些改进和探索。
随着周期进入了新一轮熊市,一波新的公链正在崭露头角。其中,最受关注的,无疑是采用了 Move 编程语言的 Libra 系项目:Aptos 和 Sui。
2019 年,当时的 Facebook(现已更名为 Meta)高调宣布推出全球流通的加密货币 Libra(后更名为 Diem)。后来由于监管等问题,Libra 这个项目未能成型。但这也使团队意识到,要想真正建立有创新性的 Web3 项目,必须完全跳脱出传统领域,进入加密领域。
Aptos 和 Sui 的开发者都曾是 Libra 的核心开发者,他们继承了 Libra 项目中的编程语言--Move 语言,构建了这两条新公链。
本文将简单介绍 Move 语言的一些特点和这两条公链的现状。
Move 语言
Move 语言被称为是最适合编写智能合约的语言。许多人拿它来与目前主流的 Solidity 语言比较并认为其优于 Solidity。主要是因为 Move 在诞生之初就被针对于区块链资产做了相关的优化。
资产安全
几乎每一个区块链项目都有自己的加密资产。资产的价值增长既是项目发展的结果,也是项目发展的动力。资产安全原本应该是项目发展的头等大事。但是加密行业频频发生的资产被盗、资产丢失事件让许多还未进入行业的投资者望而生畏。
根据慢雾的数据统计, 2022 年上半年发生了 DeFi 安全事件约 100 起,损失超 16.3 亿美元,其中项目缺陷与合约漏洞是四大原因之首。
Move 是为操作数字资产而生的语言。最初 Facebook 团队开发 Move 语言就是为了服务于 Diem,打造全球化的金融和货币基础设施。所以 Move 必须有能力对构成金融基础设施的各种资产和业务逻辑进行编码。
在 Move 语言中,更强调资产和资源。用他们的说法就是 “First-class resources”。Solidity 和大多数编程语言一样,将 Token 或者加密资产当做一个数值来处理,资产转移的过程则是通过对账户进行数值加减来实现,例如 Alice 要给 Bob 转 10 个 token,就先将 Alice 的余额-10,再将 Bob 的余额+10。在这个对多个资产账户进行加减的过程中就容易产生安全性漏洞,必须依赖于代码的严谨性,才能保证财产安全。
但在 move 语言中,资产被重新定义为一个 resource(资源)类型,不再是字符串或数值变量。Move 编程语言抽象了资源的四个属性,可复制(copy ) 、可索引 ( key )、可丢弃 ( drop )、可储存 ( store ),通过这四个属性的不同组合,用户可以方便的定义出任何类型的资源。
资源优先的概念为程序员写出安全和有效的代码提供了很大的帮助。就像 SUI 的开发团队编程工程师 Damir 说的:“一旦您开始像对象一样思考,而不是像在哈希映射这样的编程原语上构建的抽象思考,您就能时时刻刻知道自己在做什么,就像具有无限表达性和明确说明类型一样——过去是什么,现在是什么。” 这种设计让对资源的操作变得更加具象,更清晰可见。
Move 还定义了一些资源的特性:
- 如与账户进行绑定。Resource 数据必须要绑定在账户下面,所以只有分配了账户后才会存在对应的 Resource 资产,以及 Resource 只要取出后就必须有一个去向,要么将其作为返回值传递即流向一个账户,要么直接将其销毁。可以理解成 Move 的 Token 移动是转移,从一个账户转移到另一个,而 Solidity 则是加减法,先在一处减了,再在另一处加上。
- 再就是资产的访问权限。在 Solidity 中,数据集中存储在合约里,在合约出现漏洞的时候,一旦黑客获取到了合约权限,所有用户数据都将遭受攻击。而在 Move 中,数据存储在拥有它的帐户中,而不是合约中。Move 中有许多模块,模块是可以创建、转移、存储资产的程序,类似于以太坊中的智能合约。Move 规定只有公共模块功能可以被其他模块访问。每个 resource(对象)都存储在由所有者的帐户控制的模块里。想要访问或者修改模块时,必须有模块所有者的签名,签名者在 Move 中拥有最高级别的权限,并且是唯一能够将 resource 添加到帐户中的实体。此功能允许在智能合约中维护数字资产的所有权信息和特权。如果资产被发送到智能合约,所有权不会改变。在这种情况下,即使智能合约被攻击者攻破,资产也不会丢失。
架构安全
Move 在 Solidity 的安全事件中吸取了经验和教训,在 Solidity 的基础上,增加了很多的特性,在底层的安全设计上有很大的创新,让系统变得更加安全可靠。
Move 语言有几个特点:
- 静态调用。那什么是静态调用?静态调用是与动态调用相对的。一个程序在调用另一个程序时,如果必须到运行时才能确定被调用的目标,则称该调用为动态调用;反之,如果程序在运行前即可确定被调用的目标,且在运行时无法变更该目标,则称该调用为静态调用。Solidity 中的调用都是通过动态调用实现的,由于无法确定调用对象,所以可能造成循环调用,这带来了很大的安全风险。例如 TheDAO 攻击、PolyNetwork 跨链攻击,就是类似的事件。Move 语言吸取这些教训,选择了静态调用的设计,降低了运行时程序崩溃的可能。
- 形式化验证。形式化验证就是通过数学的手段证明程序的安全性。Move 团队为使用者开发了 Move Prover 工具,可以使用数学的手段来测试和证明合约的可靠性,开发人员可以在几分钟内运行测试,使他们能够在部署前就发现代码中的错误。
简而言之,Move 是专门针对区块链资产和智能合约而创立的语言,在安全性和可验证性上都大幅优于 Solidity。
而基于 Move 开发的几条公链,例如最具代表性的 Aptos 和 Sui,也带来了更大的想象空间。
Move 系新公链
Aptos
从开发进展、生态丰富度、融资进展来看,Aptos 目前是 Move 系新公链中的龙头项目。
今年 3 月,Aptos 完成 2 亿美元融资,同样由 a16z 领投。参投方包括 Tiger Global、Multicoin Capital、FTX Ventures、Coinbase Ventures、Binance Labs 等顶级机构。今年 7 月 25 日, Aptos 又完成了 1.5 亿美元融资,FTX Ventures 和 Jump Crypto 领投,a16z、Multicoin Capital 和 Circle Ventures 等参投,不到半年,Aptos 筹集了 3.5 亿美元。
Aptos 成立于今年 2 月初,但是继承了过去几年 Libra 团队的开发成果,旨在追求区块链安全性、高性能、可扩展性和可升级的发展。其核心开发者都是原 Libra 项目中的开发人员。
现状
今年 3 月 15 日,Aptos 发布了开发者测试网,5 月,启动了激励测试网(AIT1),为开发人员和合作伙伴提供了类似于主网的测试平台,并对所有帮助保障网络安全的参与者提供激励。根据 Aptos 的路线图,激励测试网有 4 轮,分别是:
- AIT1:去中心化启动
- AIT2: 质押
- AIT3:治理和升级
- AIT4:动态验证器拓扑
Aptos 激励测试网 2(AIT2)从 7 月 1 日开始,到 7 月 22 日结束,主题是质押。共有超 225 个社区节点参与了 AIT2,这些节点分布于全球 44 个国家和 110 个城市。每位成功的参与者获得 500 枚 Aptos 代币。此外,前 10% 的投票节点获得额外的 200 枚 Aptos 代币。
Aptos 激励测试网 3(AIT3)从 8 月 30 日到 9 月 9 日,主题是治理和升级。
Aptos 在博客文章中表示,其测试网络已经达到了 20,000 多个节点,同时,该测试网络可以每秒验证和同步超过 1 万交易 (TPS),延迟为亚秒级,正在向超过 10 万的 TPS 迈进。
按照路线图,Aptos 计划在今年 9 月份前上线主网。
安全性
除了采用了更安全的 Move 语言作为开发语言之外,在共识方面,Aptos 采用了优化后的拜占庭共识「Proof-Of-Stake Diem BFT」,在过去三年中进行了四次共识方面的迭代,以实现高事务吞吐量、低延迟及更节能。
Aptos 的 BFT 协议使网络保持平稳运行,同时也保持世界级的速度。Aptos 使用信誉系统来更新验证者轮换并使用 “起搏器” 同步投票。该系统在不到一秒的时间内完全验证交易(通常称为 “最终确定时间” 的度量),这使其成为生产中最快的区块链之一。
为保证安全性,Aptos 还启用了大量验证器来进行测试。为了防止密钥丢失或被盗,Aptos 中还设置了帐户密钥恢复和轮换协议,具体表现为 Aptos 支持任何帐户轮换其私钥,验证者还可以定期轮换他们的共识密钥。为防止密钥丢失,Aptos 还在开发可直接集成到区块链账户模型中的密钥恢复新技术。
可扩展性
Aptos 主张 Layer1 区块链应该承担更多的「可扩展性」责任,这样才能提高主流采用。在提高吞吐量与最终确定性速度的规划中,Aptos 计划将共识协议与交易执行完全分离以加快交易的广播。
Aptos 还对身份验证的数据结构和相关的状态存储进行了优化,以提升性能。在验证账本状态(例如账户余额、智能合约等)时,内存中的小规模的 Merkle tree 是有效的,但大型 Merkle tree 无法写入持久存储。为解决这个问题,Aptos 正在通过探索通过访问模式优化的缓存和版本控制来设计经过身份验证的数据结构,且 Aptos 还在开发对大型帐户的支持。
可升级性
区块链发展速度极快,为了适应新的需求,在协议发布后如何不停运升级成为了系统刚需。可升级性是 Aptos 强调的另一重点,以解决启动后难以做重大协议改进的问题。因此,Aptos 对区块验证者的管理和配置都直接通过链上状态进行,以便社区投票后快速执行升级。Aptos 这样的设计在过去几年的测试中经受住了考验,它在几次重大升级中都没有出现过停机。
生态
Aptos 举办过一届 Aptos 黑客松。今年 6 月底,Aptos 推出了 2 亿美元的生态系统资助计划,资助类别包括 6 类,分别是开发人员工具、SDK、库、文档、指南及教程;用于开发、治理、DeFi 和 NFT 的工具和框架;核心协议贡献:代币标准、库、协议升级等;开源和公共产品;教育举措;应用程序。
据 Aptos 自己的说法,Aptos 生态已有超过 100 个项目在网络上构建,目前其生态上的应用中有较为详细介绍、发展路线图的就只有 Pontem Network、Econia、Fewcha Wallet、Martian Wallet 4 个,聚焦在钱包和 DEX 应用两方面。
Sui
2021 年 12 月,Move 公链里起步最早的 Sui 公布了 3600 万美金的 A 轮融资,资方包括 a16z 与 NFX、Scribble Ventures、Redpoint、Lightspeed、Electric Capital、Samsung NEXT、Slow Ventures、Standard Crypto、Coinbase Ventures 等。今年 7 月 12 日,Sui 被爆出正在寻求 2 亿美元 B 轮融资,估值已经达到 20 亿美元。
Sui 的开发团队是 Mysten Labs,他们设计了自己的高性能 Layer1 权益证明 (PoS) 区块链 Sui,发布于今年 3 月。
与 Aptos 一样,Sui 也使用了 Diem 的开发语言 Move,不过 Sui 的对象模型与 Aptos 略有不同。目前 Sui 已经发布了他们的经济学白皮书,但是开发进展较慢。
在 Move 语言的使用上,Sui 进行了升级调整,让该语言既能编写同质化加密资产(FT)的智能合约,也能编写非同质化 (NFT) 资产的智能合约。
在关乎网络性能的可扩展性方面,Sui 主打交易并行化(transaction parallelization),即网络能够同时处理多笔交易。在大多数区块链中,区块链交易必须按顺序进行,而这些交易之间往往没有任何联系或依赖。这限制了交易量的扩展。而 Sui 可以锁定一笔交易的相关数据并实现独立验证,从而完成交易并行处理。
在共识协议方面,Sui 对有从属关系的交易使用 BFT 拜占庭共识,对独立交易采用拜占庭广播算法进行并行验证,因此在保证高 TPS 同时减少了节点之间通信,以实现极低的延迟。
现状
本月,Sui 将启动激励测试网,目前已开放测试网注册。Sui 基金会将为验证者参与的每个测试网络 wave 奖励 2000 枚 SUI 代币。按照路线图,测试网将分为 4 个 wave,其中三个 wave 已确定主体,分别是:网络、质押和升级。
生态
目前 Sui 生态上公开的项目有 8 个,主要是钱包类、链游和 NFT。
结语
Move 语言基于 Solidity 的经验和教训,进行了多方面的创新和改进,在安全性上有了大的提升,也更适用于智能合约的开发。而基于 Move 语言的新公链们,也给 Layer1 的发展带来了更大的想象空间。随着顶级投资机构们纷纷入局,最终公链赛道鹿死谁手,还未可知。
免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。本文内容仅用于信息分享,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。