原文标题:Diving Into Sui
原文作者:Micah Casella
原文来源:Messari
编译:BlockTurbo
是否应该存在另一个Layer-1区块链?以太坊、Solana、Avalanche等众多平台都在争夺成为智能合约开发的主要基础层。Sui是一种新的智能合约平台,它采用了不同的区块链数据模型方法,加入了这场竞争。Sui的原始贡献者Mysten Labs认为,Sui的数据模型将使其成为第一个具有互联网规模可编程能力的区块链平台。
Sui技术栈解决了区块链领域的三个核心问题:可扩展性、安全编程和主流接受度。Sui独特的以对象为中心的数据模型和共识架构使网络能够无限扩展其容量。Sui的编程语言Sui Move具有安全保障,可以防止常见的黑客攻击/漏洞利用,并提供更好的开发者体验。此外,Sui还计划添加一个功能,通过允许应用程序补贴和提取消费者gas费,从而实现更流程的用户体验。
背景
2019年6月,Facebook(已更名为Meta)宣布计划构建一个许可型区块链和一个数字钱包,用于支撑全球支付网络。Meta牵头成立了一个独立的财团,名为Diem协会(最初称为Libra协会),负责构建区块链。Meta的子公司Novi Finance(最初称为Calibra)负责开发数字钱包。
这两个产品都没有完全实现。由于监管障碍,Diem在2022年1月关闭并出售了所有资产。同年晚些时候,Meta终止了Novi项目,没有给出直接原因。在关闭之前,多位项目负责人认为Meta构建全球支付网络的愿景将走向失败。最终,Aptos和Sui两个独立的区块链从最初的Diem和Novi研究中诞生。虽然Aptos继承了Diem的遗产,在该项目开发的技术基础上进行了迭代,但Mysten Labs从Diem的废墟中打造了全新的Sui。
Mysten Labs是Sui的原始贡献者。它由前Novi项目负责人Evan Cheng、Adeniyi Abiodun、Sam Blackshear、George Danezis和Kostas Chalkias于2021年创立。创始人在软件语言编译器、静态分析(编程安全)、分布式系统、密码学和云计算等领域具有丰富的研究和产品经验,曾任职于Apple、Oracle、Microsoft、R3和Facebook等公司。值得一提的是,联合创始人Evan Cheng因参与设计LLVM(一项目前广泛应用于Apple和Google设备的技术)而获得了ACM软件系统奖。
Sui区块链尚未正式上线,计划于2023年5月3日启动。2021年12月,Mysten在A轮融资中筹集了3600万美元,由a16z领投,Redpoint、Lightspeed、Coinbase Ventures、Electric Capital等投资者参与。2022年9月的B轮融资中,Mysten以超过20亿美元的估值筹集了3亿美元,由FTX Ventures领投,a16z、Jump Crypto、Binance Labs等投资者参与。Mysten Labs向Messari确认,这些融资仅限于出售股权,没有提供SUI代币。(关于FTX,Mysten Labs以约9600万美元完成了FTX所持股权和购买SUI代币的认股权的回购。)此外,还成立了一个独立的基金会,名为Sui基金会,旨在建立Sui社区,并资助/支持在Sui上创建产品。Sui基金会的成立有助于推动Sui生态系统的发展和扩展。
Sui计划在2023年5月3日正式上线,预计将吸引开发者、项目方和投资者的关注。随着Sui的推出,其独特的技术和创新可能会对整个区块链行业产生积极影响。Sui将继续与其他Layer-1区块链项目竞争,如以太坊、Solana和Avalanche,以争夺成为智能合约开发的主导平台。通过解决可扩展性、安全编程和主流采用等核心问题,Sui有望为区块链行业的未来发展提供新的可能性和机遇。
技术
以对象为中心的数据模型
与其他分布式账本相区别的关键特性是Sui的以对象为中心的数据模型。大多数智能合约平台,如以太坊、Solana和Aptos,使用账户来跟踪区块链的状态,其中账户是保存用户余额的数据结构。其他平台如比特币和Cardano使用未消费交易输出(UTXO)来记录区块链的状态,也就是说,UTXO代表了在交易执行后剩余的资产数量。
Sui将这两种方法结合成一种混合模型,其中其历史存储在具有全局唯一ID的对象中。对象还包含元数据,用于确定不同对象的特性,如所有权和交易历史(部分来源于对象随机数值,也称为版本号)。Sui的以对象为中心数据模型意味着全局状态只是所有Sui对象的集合。从结构上讲,这采用了有向无环图(DAG)的形式,其中对象对应于顶点,交易对应于边,称为“活动对象”的对象对应于没有出边的顶点。
在Sui中,所有交易都将对象作为输入,并生成新的或修改后的对象作为输出。每个对象都包含产生它的最后一笔交易的哈希值。可用作输入的对象称为“活动”对象。因此,通过观察所有活动对象,可以确定全局状态。
Sui的以对象为中心的数据模型允许它在大规模下并行处理对象交互。Sui上的交易根据所交互的对象进行分组。当同时提交多笔交易时,只要交易之间没有相互依赖,验证者就可以在单独的机器上并行处理这些交易。这个系统还为可扩展性提供了一个独特的途径,即随着网络验证者向其节点增加更多机器,容量会增加。
Sui上的对象可以是拥有对象(如可替换代币和NFT)或共享对象(如去中心化交易所和拍卖合约)。具体来说,Sui对象可以具有四种不同类型的所有权:
- 由一个地址拥有的对象(NFT或可替换代币)
- 由其他对象拥有的对象(例如,在游戏NFT中,剑NFT可以由头像NFT拥有)
- 任何人都可以读/写的共享对象(去中心化交易所或拍卖合约)
- 没有独家所有者且只读的不可变对象(拍卖结束后,拍卖被冻结为不可变)
Sui Move
Solidity,用于编写以太坊虚拟机(EVM)的语言和最受欢迎的区块链编程语言,于2015年7月首次正式发布。直到2015年11月,ERC-20代币的概念才被提出。由于EVM缺乏将不同数字资产作为原生资源进行操作的内置基础设施,因此提出了作为创建可替换资产的智能合约标准的ERC-20。ERC-20代币在随后的加密周期高峰期,如2017年的ICO热潮和2020年的DeFi夏季,发挥了不可或缺的作用,强调了区块链活动的主要目的是促进数字资产的互动。在认识到区块链开发应该关注数字资产(称为“资源”)编程的前提下,Novi/Diem团队以此为核心构建了Move。
Mysten Labs修改了Move(并将其称为Sui Move),使其与其以对象为中心的数据模型集成,因为它最初是为基于账户的系统构建的。Sui Move支持两个核心对象:智能合约(Move包,是一组Move模块)和数字资产(资源)。Sui对资源的本地支持通过字节码验证表达。在Sui Move源代码编译为字节码后,一个名为Move字节码验证器的静态分析工具保证字节码遵循Sui的类型、内存和资源安全规则。这种验证确保对象不能被其定义模块之外的代码创建、复制或意外销毁。它还包括对双重支出和重入等某些漏洞的保护。
要求所有代码在链上提交之前通过字节码验证器,消除了智能合约开发者自己编写某些安全规则的需求。在其他区块链中,尤其是使用账户存储分类账状态的区块链,这些安全保护不是由虚拟机保证的。相反,它们必须由与数字资产互动的每个智能合约开发者手动编码。例如,Move字节码验证器保证的一种安全保护类型包括Solana上的账户检查。账户检查可能难以正确实现,导致Solana生态系统中一些最大的黑客攻击。
由于在Sui Move中不需要额外代码的错误实现而导致的著名漏洞包括:
- Wormhole(Solana — 账户替换漏洞):3.26亿美元
- Cashio(Solana — 账户替换漏洞):4800万美元
- DAOHack(以太坊 — 重入漏洞):5000万美元
共识
Sui 验证者不像普通区块链那样将交易打包成区块;相反,它们会单独验证交易,最终在过程结束时获得最终性证书。据 Sui 称,单独验证交易可以减少网络延迟。由于交易按对象分组,验证者可以同时处理不同对象的交易,无论是相对于彼此还是在自己的机器(称为“工作节点”)上。这样的并行交易提交使得大规模执行成为可能。
Sui 通过减少验证者之间的通信需求来降低延迟,而将大量通信转向用户。这些“用户”通常以与应用程序互动的客户端网关服务的形式运行(钱包用于转账,DEX 实体用于交易等)。尽管这看似增加了一层信任,但实际上并没有增加信任假设。在以太坊上使用像 MetaMask 这样的应用时,用户必须相信 MetaMask 正确地传达了他们想在区块链上执行的操作。在 Sui 上的客户端通信中也存在同样程度的对应用程序的信任,此外,客户端还在交易处理中发挥作用。
由于 Sui 的对象中心数据模型,任何执行交易的钱包或应用程序都可以以类似于 Android 风格权限的方式向用户呈现交易签名请求。也就是说,除了签名请求外,钱包或应用还会显示一系列对象以及它们将如何被修改,展示签名交易的下游影响。
所有交易都需要客户端通信。然而,交易是否通过 Sui 的排序和共识机制取决于交易中的对象是共享的还是非共享的。
复杂交易(共享对象)
涉及共享对象的复杂交易通过 Sui 的 Narwhal 和 Bullshark 协议进行排序和共识。Narwhal 内存池保持提交的交易数据的可用性,并提供一条有向无环图形式的结构化路径以遍历(选择顺序)这些数据。Bullshark 共识通过就一个特定的有向无环图遍历(基于 DAG 结构的排序)达成共识,从而选择这些结构化数据的特定顺序。
复杂交易在达到最终性之前需要经过五个步骤。
1. 交易从各自的用户/客户端广播到节点。
2. 验证者节点接收到消息后,根据他们的权益规模,对消息的有效性进行投票。
3. 用户/客户端收集到拜占庭抗性多数的这些投票后,生成一份记录证书,并将证书广播回验证者。
4. 交易证书通过 Narwhal 和 Bullshark 进行排序,以便拜占庭抗性的多数验证者就交易数据的排序达成一致。
5. 验证者进行最后一次响应,而用户收集一个“影响”证书,这是状态改变的证明,并确保交易的最终性。
简单交易(非共享对象)
只涉及非共享对象的简单交易不需要通过 Narwhal 和 Bullshark 进行排序。换句话说,简单交易可以跳过上述交易处理流程中的第4步。简单交易仅受到一种称为拜占庭一致广播的轻量级算法的约束,该算法比拜占庭共识的强度要低,可扩展性更强。广播确保所有节点都收到来自用户/客户端的相同消息;它不要求节点就网络状态达成一致,这是共识算法中复杂部分之一。
Sui的数据模型允许验证者通过因果排序方法(而不是总排序(按顺序排序交易))并行执行交易。基于因果关系(交易如何影响特定对象的状态)的排序允许 Sui 根据对象对交易进行分组。因此,如果多个交易之间没有关联(不涉及同一个对象),那么这些交易可以按任意顺序并行处理。然而,在同一个对象上发生的交易需要在该特定对象的交易队列中进行总排序。所有简单交易都绕过共识。
Sui 的最新测试表明,其已经实现了每秒 297,000 笔简单交易的吞吐量,延迟不到半秒。这种速度与排序/共识算法的模块化使得像 Celo 和 Sommelier 这样的区块链被吸引到将 Narwhal 集成到他们的协议中。
DPoS
Sui 使用委托权益证明 (Delegated Proof-of-Stake) 来确定每个时代的验证者集合。分配给验证者的总赌注(包括从其自身和其他 SUI 代币持有者委托的赌注)决定了验证者在处理交易中的投票权。所有诚实的验证者都会按照他们的 SUI 赌注规模比例获得周期内收集的 Gas 费(详见下文)和临时解锁补贴(Sui 没有给出确切的结束日期)。
Sui 向所有诚实验证者支付报酬的系统不同于仅为验证者处理的交易支付报酬的系统。在这些系统中,更大的验证者以概率更快的速度增长,因为他们更有可能被选中并获得更早的奖励,而赌注较小的验证者则概率较低。在 Sui 中,所有诚实的验证者以相同的速度增长。委托人只获得计算 Gas 费和通货膨胀补贴,但需要向他们的验证者支付佣金。
Sui 的测试网在2023年5月3日主网上线前已有97个验证者,其中仅有两个由 Mysten Labs 运行。推荐的验证者硬件要求包括物理24核CPU/48虚拟CPU、128 GB RAM 和 2 TB SSD 存储(建议使用 NVMe)。
Gas 费用
Sui 的 Gas 费用包括两个组成部分:计算和存储。
计算 Gas 费用
计算 Gas 费用由一个 Gas 定价机制确定,验证者为当前时代的每笔交易设定最低 Gas 价格。然后,按赌注的 2/3 百分位价格计算出一个“参考 Gas 价格”并公布给用户。Sui 鼓励验证者保持价格较低,但最终让验证者市场决定 Gas 价格。用户可以在参考价格之上支付“小费”以提高交易的优先级。因此,计算 Gas 价格是参考价格和小费的总和。
存储 Gas 费用和存储基金
验证者(而非委托人)根据时代开始时存储基金的规模获得存储基金奖励。
Sui 的存储基金是为网络上的数据存储提供资金的一种方式。通过添加存储任意数量数据的能力,Sui 解决了一个常见的数据存储问题:存储原始数据的验证者可能与维护存储数据的未来验证者不同。Sui 的存储基金获得存储 Gas 费用和网络抵押奖励的一部分(计算 Gas 费用加上通货膨胀/解锁的 SUI)。存储基金累积的抵押奖励随后立即重新分配给验证者。在 Sui 上存储文件的用户在从存储中删除这些文件时,可以退还他们支付的所有 Gas 存储费用。存储费用永远不会支付给验证者。
存储基金会对 SUI 代币产生暂时的通货紧缩压力。当对存储的需求很大时,费用会增加,将更多的 SUI 从流通中抽出,以便以后分配。
可编程事务块(PTBs)
Sui 支持一种名为可编程事务块(PTBs)的开发者原语。PTBs 允许用户创建一个可组合的最多 1024 个事务的序列,这些事务可以原子化地(一次性)失败或成功。通过将事务打包成 PTB,Sui 上的单次执行可以执行 1024 个操作。这种方法提高了事务吞吐量并降低了每笔交易的平均成本。
PTBs 可以采取很多形式。它可以用于同类批处理,如大量铸造 NFT 或一次向多个参与方发出多个支付。它还可以异构地使用,将早期事务的输出作为输入进一步沿着序列。例如,Sui 的测试网有一个与 DeFi 相关的 12 个操作的 PTB:跨 3 个不同池的 5 次交换,在过程中改变 20 个现有对象并创建 7 个新对象。
抽象化 Gas 费用
Sui 还为用户提供了赞助交易的选项。赞助交易是指一个用户(通常是一个应用程序)为与赞助方平台互动的消费者支付 Gas 费用。联合创始人 Evan Cheng 认为“支付 Gas 的概念应该是看不见的”。通过使任何人都可以设置 Sui Gas 站作为赞助交易的后端支持,Cheng 的信念正在 Sui 上成为现实。
水平可扩展性
Sui 的架构、数据模型和事务处理方法消除了 Sui 需要就交易的总有序列表达成全球共识的需要。因为事务管道是为因果排序构建的,其中事务基于对象进行分组,因此它可以将工作负载分布在验证器之间,特别是在验证器机器(称为“工作节点”)之间。因此,随着将更多工作节点添加到验证器集合中,可扩展性增加。可扩展性可以表示为验证器数量的总增加或单个验证器添加更多工作节点/增加其硬件资源(CPU、内存、存储等)。
为了衡量,Sui 使用 24 核 AMD、256GB RAM 和 25Gbps NIC 的验证器硬件配置测试了其容量,并在各种工作负载上实现了每秒 11,000 到 297,000 次交易,最终时间为半秒。简单事务包括点对点转账、预言机消息、社交网络帖子等。由于其可扩展性,Sui 可以支持多种应用,如社交媒体、预言机网络、支付等,使其可能比具有固定吞吐量上限的协议更具生命力。
Sui 的可扩展性不仅限于事务处理;它还是一个事实上的存储协议。用户将能够将复杂资产发布到 Sui。例如,Sui 将能够存储 NFT 的所有部分(视频、照片等),而不仅仅是支持重定向到链下存储位置的链接元数据值。与在 IPFS 或集中式服务器上的链下存储相比,Sui 验证器维护链上任意资产的存储。存储容量的扩展方式与事务处理的扩展方式相同,只需添加更多工作节点。
竞争分析
概述
Sui 的目标是创建一个可以扩展到互联网规模的智能合约平台。到目前为止,还没有任何区块链具备这种能力。与 Sui 最相似的是具有部分设计相似性的高吞吐量区块链,如 Aptos 和 Solana。Sui 通过其独特的数据模型和存储能力将其系统设计与 Aptos 和 Solana 区分开来。
数据模型
Aptos 和 Solana 使用基于账户的系统来记录全球分类帐状态。它们使用队首阻塞,对事务进行完全排序,并将块顺序写入共享数据结构。Sui 的以对象为中心的数据模型的工作方式有所不同:全球状态只是所有 Sui 对象的集合,事务分别记录。
这种设计选择支持可编程事务块(PTBs)、Android 风格的事务签名权限和稀疏重放。PTBs 使用户能够批量处理多达 1,024 个连续事务,这些事务可以一次性失败或成功,既可以增加事务吞吐量,也可以降低事务成本。当在 Sui 上签署事务时,用户会看到一个列表,详细说明事务将如何改变下游的对象,使 PTBs 的事务结果对用户/签名者可见。通过称为“稀疏重放”的功能,可以检索基于正在查询的特定对象的链上数据。与从表示整个共享分类帐状态的 Merkle 树中读取相比,稀疏重放更有效,因为它允许感兴趣的一方直接从对象查询。
共识与执行
此外,Sui 的数据模型及其对事务处理的方法使 Sui 能够对简单事务绕过共识。相反,Aptos 和 Solana 对每笔交易进行共识。绕过特定交易的共识是 Sui 所独有的,它是一个核心特性,使吞吐量能够扩展。关于存储,Sui 可能与像 Arweave 和 Filecoin 这样的链上存储协议竞争,尤其是考虑到其直接竞争对手 Aptos 和 Solana 还没有为解决链上任意数据存储问题创建解决方案。
每个协议都具有并行处理能力。Aptos 采用optimistic方法,通过 Block-STM(软件事务内存)并行执行引擎。此方法要求验证者将所有交易放入单个机器的内存中,然后并行执行批量交易,并optimistic执行(不预先声明依赖项),在执行后进行验证。在同一台机器上的内存中检测到冲突,但在捕获依赖项时,事务无法执行。尽管 Block-STM 使单台机器能够并行执行,但其潜在规模有限,因为它要求事务只存在于一台机器的内存中以检测冲突,从而抑制了将并行执行管道扩展到多台机器的能力。
另一方面,Sui 和 Solana 采用依赖项事先声明。在 Sui 中,系统设计通过面向对象的数据模型促进并行处理,但 Solana 上的并行处理遵循基于帐户的抽象。此模型要求预先声明交易将对其执行操作的帐户,以确定在何处进行并行执行。 Solana 的方法不够直接且更加劳动密集型,因为必须声明的帐户比对象更多。
Tokenomics
Sui 的原生代币 SUI 将用于网络安全(验证者和委托者质押)、支付燃料费以及作为未来治理的要求。Sui 主网启动计划于 2023 年 5 月 3 日进行,最大 SUI 供应量设定为 100 亿。Sui 基金会已经宣布了 SUI 代币的分发,但尚未指定流动性/锁定计划。Sui 基金会尚未分享有关治理的更多详细信息。
社区储备(50%):Sui 基金会将控制最大 SUI 供应量的一半,目标是通过社区计划将其分发出去,包括:
1. 委托计划,将引导社区运行的验证者。
2. 赠款计划,将向开发者、社区大使和其他对 Sui 做出贡献的参与者分发代币。
3. 研究与开发基金。
4. 验证者补贴,旨在为早期验证者提供有限时间的额外质押奖励补贴。
早期贡献者(20%):最大 SUI 供应量的五分之一将分配给 Sui 的研究和生产团队,即其初始贡献者 Mysten Labs。
投资者(14%):Sui 基金会尚未公开披露向投资者出售 SUI 代币的任何信息。
Mysten Labs 财政(10%):Mysten Labs 未披露此分配将用于何处。
社区准入计划和应用程序测试者(6%):社区准入计划包括一个白名单公开销售(称为认可销售),仅向早期 Sui 社区成员开放,通过他们参与 Sui 的 Discord 频道作为代表。此外,它还包括一个面向广大公众的普通销售。认可销售和普通销售将通过特定合作伙伴加密货币交易所实施。
主网发布前
在主网即将推出之际,Sui 的 Devnet 和 Testnet 已经支持超过 200 个涵盖游戏、金融、法律、商务等各个领域的项目。Devnet 上的验证者集合只包含四个验证者——所有这些验证者都由 Sui 的核心贡献者和协议设计者 Mysten Labs 运行——因为它优先考虑作为一个安全的执行环境,让项目能够对应用程序开发进行压力测试。
Sui 的 Testnet 是分阶段构建的,测试协议的各个方面。Testnet Wave 1 旨在为验证者提供一个安全的环境,以测试 Sui 节点/机器的运行。Testnet Wave 2 扩大了对应用程序构建者、最终用户和委托人的参与,同时测试了存储基金、Sui 的 DPoS 共识机制和 gas 机制。2023 年 3 月底,Sui 宣布了其永久性 Testnet,用于测试赞助交易、零知识证明和其他未来的发展。
以下是与 Sui 的永久性 Testnet 相关的统计数据:
- 总交易量:286.23 百万
- 总包发布量:约 125,949
- Sui 钱包:109 万周活跃用户和79.4 万日活跃用户的历史最高纪录
- Sui 浏览器:11.7 万日活跃用户
- 当前 TPS:约 315
- 总验证者数量:97(2 个由 Mysten Labs 运行,95 个由其他实体运行)
- 总质押委托操作:735 万(Wave 2 测试网)
路线图
Sui的主网计划于2023年5月3日启动。Mysten Labs告诉Messari,在2023年下半年,它将专注于在Sui上实现涵盖可扩展性、代币经济学和Sui Move的关键功能。
可扩展性
- 轻量级客户端/稀疏节点:轻量级客户端/稀疏节点将能够进行稀疏重放。
- 验证器内分片:Sui事务根据每个事务所涉及的组(对象)并行处理;扩展Sui吞吐量需要验证器增加更多的机器(分片计算)来处理更多的事务组。
代币经济学
- 拥堵定价:允许用户在验证器指定的参考价格之上支付“小费”会导致Sui区块空间的交易成本在拥堵时变得更加昂贵,这可能会阻碍对Sui区块空间需求的激增。
- 存储基金和治理:存储基金是Sui上资助数据存储的一种机制;用户支付存储Gas费用将文件上传到网络中。治理将涵盖协议升级和设置存储Gas费用。
- MEV改进:MEV(最大可提取价值)是指矿工或验证器通过在区块生产过程中有策略地排序、包含或排除用户交易请求而可能获得的利润。这个价值来自套利机会、清算和其他允许矿工或验证器为其受益而优先考虑某些交易的链上活动。
Sui Move DevX
- 证明器:帮助Sui Move开发人员确保其应用程序的正确性和安全性。Move证明器检查开发人员的新功能是否对所有可能的交易和输入都能正常工作。
- 改进的语言服务器:语言服务器是一种软件开发工具,与Move编译器集成,为开发人员提供许多功能,包括代码理解和错误报告。它是Move的VSCode插件“move-analyzer”的补充。
- Lint工具:Lint工具是一种代码分析工具,用于捕捉错误和强制执行编码风格,以提高代码的组织性和可读性。Sui的Lint工具主要包含针对前端项目开发的规则。
- 其他工具:作为Sui的初始贡献者和协议设计者,Mysten Labs计划更新/添加其他开发工具,以帮助在Sui上进行开发,包括自动格式化工具、调试器和REPL(Read、Eval、Print、Loop)/语言Shell(REPL允许开发人员快速编写、执行和测试代码片段,无需完整的开发环境或创建整个应用程序)。
结语
如果Layer-1区块链要成功,它们必须提供新的使用案例和无摩擦的体验。Sui通过其基于对象的数据模型打破了常规,这是一种新颖的方法,可扩展简单的绕过共识的交易,并授予存储任意数据值的能力。Sui允许Android样式的交易签名权限和PTBs,这些功能有助于大规模批处理原子可组合交易。它还包括用户友好的功能,如赞助交易,使用户对gas不感知。
为了获得主流采用,Sui的主网和相关功能需要如预期地发挥作用,并为用户入门区块链应用提供坚实的基础。如果数字资产行业比预期早成为主流,开发人员和用户将寻求一种灵活而安全的智能合约平台,该平台可以随着全球吞吐量扩展,保持成本效益,并提供Web2样式的前端体验。