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