狗哥作为一名混迹在各Dao的草根码农,除了撸链游、撸空投外,也是经常去做赏金漏洞的任务,我在Rust 编程方面积累了很多专业知识,并在区块链领域积累了大量素材。
最近Sui要上线了,由于Aptos和 Sui 都使用 Move 语言,但是需要注意的是,Aptos 使用的是 Core Move,而 Sui 使用的是 Sui Move,这是 Core Move 的扩展版本。
所以我们今天就从代码的角度,或者从码农的视觉来分析:作为新公链,Sui能不能对ETH形成挑战,会不会成为第2个Polkadot。
一、关于Move语言
2022年9月正式Aptos 主网发布的预期高峰期,我开始使用Move 语言给Aptos 平台上一个DEX做码农(主要是为了撸赏金漏洞),我边学边做,我发现Move一点都不难,跟Rust有很多相似之处。
很多区块链开发者都说 solidity 很容易, Rust 很难写智能合约。但在圈内很多都会说“Move is simpler than solidity”,也就是说学习Move要比学习solidity容易得多。
大多数人都知道 Aptos 和 Sui 都在使用 Move 语言。
是的,但 Aptos 使用的是 Core Move,而 Sui 使用的是 Sui Move,这是 Core Move 的扩展版本。
Move 语言以其安全性着称,Sui Move 被认为比 Core Move 更安全。我写了很多智能合约项目,包括 EVM、Solana、Cosmos 和 Polkadot — — 我还没有遇到一种语言能够提供与 Move 语言相媲美的安全性。
众所周知,Solidity 和 Rust 智能合约存在大量漏洞,并且遭到多次黑客攻击。然而,Move 智能合约由于其固有的结构,便于对加密资产进行直接管理。因此,这允许开发人员创建高度安全的智能合约,而无需广泛的安全专业知识。
顺便说一下, Aptos 使用 Global Storage 来存储资产,而 Sui 使用他们自己的 Sui Storage 来存储资产。为了更好的理解它们的区别,可以参考这篇文章:[ https://docs.sui.io/learn/sui-move-diffs ]
在我看来,Sui Move 更接近于现实世界的资产管理,因为 Sui 链上的每一项资产都被视为一个对象,类似于有形资产。
我们来分析一下 Aptos 和 Sui 的高级架构,以辨别所采用的 Move 语言类型差异背后的原因。
二、关于Aptos
Aptos 的架构与 Solana 的架构惊人地相似,尤其是在处理代币和程序方面。
如下图, EVM 和 Solana 对比
EVM和Solana中Account结构分析
Solana 具有三种类型的账户(程序账户、数据账户、钱包账户);
而以太坊虚拟机(EVM)由两种类型的账户(智能合约账户、钱包账户)组成。
Solana 的架构为智能合约引入了拆分结构,将程序分为“Logic”和“State”组件。这种分离有助于并行事务执行。
如需更全面的了解,请考虑阅读 Solana 创始人 Anatoly Yakovenko 撰写的一篇文章。
[ https://medium.com/solana-labs/sealevel-parallel-processing-thousands-of-smart-contracts-d814b378192 ]
Aptos 不使用不同的账户类型,它使用地址来表示帐户,这些地址连接到存储在全局存储(Global Storage)中的模块和资源。
Aptos 中的全局存储实现了一个索引映射,使存储中的资源(如数据、代币、NFT 等)和模块(智能合约)可以通过索引访问,索引由地址和类型组成。
比如:当我们研究一个场景,我的钱包中有 30 个 APT。我的钱包地址是 0xabcd……。
如上述示例所示,表示 APT 数量的硬币存储结构存储在全局存储中,可以使用以下索引进行访问:
0xabcd + 0x1:🪙:CoinStore<0x1::aptos_coin::AptosCoin>
地址 0xabcd 显示了我钱包中存在的相关资源(代币和 NFT)。
在 Aptos 上,使用标准代币模块 aptos_framework::coin 来创建和管理代币,这可以比作 Solana 的代币计划。此外,aptos_token::token 用于创建和管理 NFT 集合和个人 NFT。
由于 Global Storage 中资源和模块的分离,Aptos 可以促进非重叠事务以及仅读取相同资源的事务的并行处理。
由于其并行处理能力,Aptos 估计每秒可处理多达 160,000 笔交易。因此,它在游戏和 metaverse 行业中前进很大。
三、关于SUI
Sui的特点是大量使用objects,这意味着Sui生态系统中的一切都被视为对象。这包括Packages(智能合约)、代币和 NFT,所有这些都归类在objects类型下。
在Sui生态中,每个objects在Sui Storage中都拥有唯一的ID,可以通过对应的ID进行访问。
比如:我的钱包里有 30 个 SUI:
这相当于我的钱包地址包含三个对象,每个对象代表 10 个 SUI。如果我进入到 Sui 浏览器并找到我的帐户,它会显示我的钱包中拥有三个 SUI 代币对象。
Object 0x0522…eefe SUI Balance : 10
Object 0xa611…2b9b SUI Balance : 10
Object 0xc741…b215 SUI Balance : 10
要深入了解 Sui 对象和帐户地址之间的关系,请参考下图。
如果我钱包里的 5 个 SUI 被转移到另一个钱包,那么 10 个 SUI 对象将被替换为两个对象,每个对象持有 5 个 SUI。这两个对象之一将被转移到新钱包。结果,仍然会剩下三个对象,但我钱包里的总余额将是 25 SUI。
Sui Objects可分为immutable objects (frozen objects)、shared objects和mutable objects。更多详细信息,请参考以下链接:
https://docs.sui.io/devnet/build/programming-with-objects/ch1-object-basics
Sui 使用 sui::coin 模块来创建和管理代币。在 NFT 方面,Sui 中的每个对象都是唯一的,说明任何对象都可以作为 NFT。尽管如此,为了将 NFT 与其他对象区分开来,originByte 团队在 Sui 上创建了 NFT 标准。
Sui以并行方式执行交易,TPS超过13万。
几天前,Sui Team 的一名成员在他们的 Discord 服务器上发布了一条关于性能更新的消息。
https://blog.sui.io/sui-performance-update/
然而,当 Sui 主网经历高交易量时,这些性能改进是否会持续还有待观察。值得注意的是,Solana 最初号称 65,000 的 TPS,但由于性能原因多次中断,目前只能处理约 4,000 笔交易。
Sui Mainnet 定于 5 月 3 日发布,如果你想投资Sui赚取利润,请耐心等待并在eToro、Kraken或Binance准备好你的资金。距离主网上线还有不到一天的时间。
总结
目前,众多新的区块链不断涌现,每一个都拥有独特的特性和技术,区块链技术的最终目标是在 TPS 上超越链下数据库。
如果你在 Aptos 上进行交易过,你会发现交易确认过程快如闪电。虽然速度很快,但仍然不是实时的。尽管速度很快,但 Aptos 和 Sui 的开发包和工具(如区块链浏览器和钱包)仍然相对欠发达,ETH刚上主网时也有类似问题。
如果你任务区块链是web技术的未来方向,AI只是web上的一个应用,或者说你已经厌倦了炒币的环境,想学一门后期需求很大的技术,那么你完全可以自学区块链技术。