来源/messari
编译/章鱼哥
01
摘要
Sui是即将推出的L1智能合约平台,具有独特的、以对象为中心的数据模型,这是其扩展网络吞吐量能力的关键。
在Sui上,点对点转账和NFT大规模铸币等简单交易不经过共识,允许验证者每秒处理约 300,000次转账/简单交易。
Sui吞吐量是可以横向扩展的。它的网络吞吐量随着更多的计算能力被添加到现有验证器组中的每个验证器而增长。
Sui的编程语言Sui Move具有内置的安全属性,可以防止某些类型的黑客/漏洞利用。
02
前言
是否应该有另一个Layer-1区块链?Ethereum、Solana、Avalanche和许多其他公司都在争夺成为智能合约开发的主要基础层。Sui是一个新的智能合约平台,它对区块链的数据模型采用了不同的方法,从而增加了竞争。Mysten实验室是Sui的原始贡献者,Mysten认为Sui的数据模型将使其成为第一个互联网规模的可编程区块链平台。
Sui技术栈解决了区块链空间的三个核心问题:可扩展性、安全编程和主流采用。Sui独特的以对象为中心的数据模型和共识架构使网络能够无限地扩展其容量。Sui的编程语言Sui Move的构建具有安全保障,可以防止常见的黑客/漏洞,并提供更好的开发者体验。Sui还计划增加一项功能,通过允许应用程序补贴消费者的gas费,促进用户体验的顺利进行。
03
背景介绍
2019年6月,改名为Meta的Facebook宣布,它计划建立一个有权限的区块链和一个数字钱包,作为全球支付网络的基础。Meta带头成立了一个独立的财团,称为Diem协会(最初称为Libra协会),负责建设区块链。Meta的子公司Novi Finance(最初叫Calibra)负责开发数字钱包。
这两个产品都没有取得全面成果。由于监管障碍,Diem关闭了,并在2022年1月出售了其所有资产。同年晚些时候,Meta结束了Novi项目,但没有提供直接原因。在关闭之前,来自项目的多位领导人认识到,Meta的全球支付网络的愿景正走向失败。最终,在最初的Diem和Novi研究中出现了两个独立的区块链:Aptos和Sui。Aptos通过迭代该项目开发的大部分技术,继承了Diem的遗产,而Mysten Labs则从Diem的灰烬中建立了新的东西:Sui。
Mysten实验室是Sui的原始贡献者。它是由前Novi项目负责人Evan Cheng、Adeniyi Abiodun、Sam Blackshear、George Danezis和Kostas Chalkias于2021年创立。这些创始人在软件语言编译器、静态分析(编程安全)、分布式系统、密码学和云计算方面都有研究和产品经验,横跨苹果、甲骨文、微软、R3和Facebook等公司。值得注意的是,联合创始人Evan Cheng因其设计LLVM(目前大多数苹果和谷歌设备中使用的技术)的工作而获得ACM软件系统奖。
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实验室向Messari证实,这些轮次仅限于出售股权,没有提供SUI代币。(关于FTX,Mysten Labs完成了对FTX股权的回购,以及对FTX之前持有的SUI代币的购买权,价格约为9600万美元)。Sui基金会是一个独立的基金会,也是为了建立Sui社区和资助支持在Sui上创建产品而成立的。Sui主网已于2023年5月3日正式上线。
04
技术
以对象为中心的数据模型
Sui区别于其他分布式账本的关键特征是其以对象为中心的数据模型。大多数智能合约平台,如Ethereum、Solana和Aptos使用账户来跟踪区块链的状态,其中账户是持有用户余额的数据结构。其他如比特币和Cardano使用未使用的交易产出(UTXO)来记录区块链的状态,也就是说,UTXO代表交易执行后剩余的资产数量。
Sui将这两种方法结合到一个混合模型中,其历史被存储在具有全球唯一ID的对象中。这些对象还包含决定不同对象特征的元数据,如所有权和交易历史(部分来自对象的nonce值,也叫版本号)。Sui的以对象为中心的数据模型意味着全局状态只是所有Sui对象的集合。从结构上看,它采取了有向无环图(DAG)的形式,其中对象对应顶点,交易对应边,而被称为 "活动对象 "的对象对应于没有出边的顶点。
在Sui中,所有交易都以对象作为输入,并产生新的或修改过的对象作为输出。每个对象都包含产生它的最后一个交易的哈希值。"实时 "对象是那些可以被用作输入的对象。因此,全局状态可以通过观察所有活动对象来确定。
Sui的以对象为中心的数据模型使其能够大规模地并行处理对象的交互。Sui上的交易是根据被交互的对象进行分组的。当多个交易同时提交时,验证者可以在不同的机器上并行处理这些交易,只要这些交易不是相互依赖的。这个系统还提供了一个独特的可扩展性途径,当网络的验证者在他们的节点上增加更多的机器时,容量就会增加。
Sui上的对象要么是自有对象(如可替换代币和NFT),要么是共享对象(如DEX和拍卖合约)。具体来说,Sui对象可以有四种不同的所有权类型:
1.由一个地址拥有的对象(NFT或可替换代币)
2.由其他对象拥有的对象(例如,对于游戏NFT,一把剑NFT可以由一个化身NFT拥有)
3.任何人都可以读/写的共享对象(DEXs或拍卖合约)
4.没有排他性所有者的不可改变的对象是只读的(拍卖结束后被冻结为不可改变)。
Sui Move
Solidity是向以太坊虚拟机(EVM)写入的语言,也是最受欢迎的区块链编程语言,它在2015年7月有了第一次正式发布。而ERC-20代币的概念直到2015年11月才被提出。由于EVM缺乏操纵不同数字资产作为原生资源的内置基础,ERC-20被提议作为一个智能合约标准,创造可替换的资产。ERC-20代币在随后的加密货币周期的高峰中发挥了不可或缺的作用,如2017年的ICO热潮和2020年的DeFi夏季,强调区块链活动的主要目的是促进数字资产的互动。在认识到区块链开发应侧重于数字资产(被称为 "资源")的编程后,Novi/Diem团队以这个想法为核心建立了Move。
Mysten实验室修改了Move(并将其称为Sui Move),以与其以对象为中心的数据模型相整合,因为它最初是为基于账户的系统而建。Sui Move支持两个核心对象:智能合约(Move包,它是Move模块的集合)和数字资产(资源)。Sui对资源的原生支持是通过字节码验证来表达的。在Sui Move源代码被编译成字节码后,一个名为Move字节码验证器的静态分析工具保证字节码遵守Sui的类型、内存和资源安全规则。这种验证确保对象不能被创建、复制或被来自其定义模块之外的代码意外销毁。它还包括对某些漏洞的保护,如双重支出和重入。
要求所有代码在提交到链上之前通过字节码验证器,就不需要智能合约开发者自己编写某些安全规则。在其他区块链中,即那些使用账户来存储账本状态的区块链中,这些安全保护不是由虚拟机保证的。相反,它们必须由每个与数字资产互动的智能合约开发者手动编码。例如,由Move字节码验证器保证的一种安全保护类型,帐户检查可能难以正确实施,导致使用此类验证保护的Solana生态系统遭到一些黑客攻击。
由于错误地实施了在Sui Move中不需要的额外代码而导致的值得注意的漏洞包括:
虫洞(Solana-帐户替换漏洞):3.26亿美元
Cashio(Solana-账户替换漏洞):4800万美元
DAO Hack(以太坊-重入漏洞):5000万美元
共识
Sui验证器并不像普通区块链那样将交易分批放入区块中,相反,它们对交易进行单独验证,而交易最终在过程结束时获得最终证书。根据Sui的说法,单独验证交易减少了网络延迟。因为交易是按对象分组的,验证者可以并行处理不同对象的交易,既相互关联又在自己的机器上(称为 "工作者")。由此产生的平行交易提交能够在大规模的情况下执行。
与其他网络相比,Sui还通过要求验证者之间更少的通信来减少延时。它将大量的通信重定向给用户。这些 "用户 "采取客户网关服务的形式,通常由被交互的应用程序运行(转移的钱包,交易的DEX实体等等)。虽然它可能看起来增加了一个额外的信任层,但它不一定增加信任假设。当在以太坊上使用像MetaMask这样的应用程序时,用户必须相信MetaMask正确地传达了他们想在区块链上做什么。这种对应用程序的信任程度同样存在于Sui上的客户端通信中,另外客户端在交易处理中发挥了作用。
由于Sui的以对象为中心的数据模型,任何执行交易的钱包或应用程序都可以以类似于安卓权限的方式向用户提出交易签署请求。也就是说,除了签名请求之外,钱包或应用程序还呈现了一个对象的列表,以及它们将如何被修改,显示了签名交易的下游后果。
所有交易都需要客户端通信。然而,一个交易是否经过Sui的排序和共识机制,取决于交易中的对象是共享的还是非共享的。
复杂交易(共享对象)
涉及共享对象的复杂交易,通过Sui的Narwhal和Bullshark协议进行排序和共识。Narwhal mempool维护提交的交易数据的可用性,并以有向无环图的形式提供一个结构化的路径来遍历(选择一个顺序)这些数据。Bullshark共识通过商定一个特定的DAG遍历(基于DAG结构的排序)来挑选这个结构化数据的具体排序。
复杂的交易在达到最终结果之前要经过五个步骤。
1.交易从各自的用户/客户端广播到节点。
2.验证者节点收到消息后,他们会对消息的有效性进行投票回应,投票的权重是他们的股权大小。
3.用户/客户收集这些投票中抗拜占庭的多数,产生一个记录的证书,并将证书广播回给验证者。
4.交易证书通过Narwhal和Bullshark进行排序,让抗拜占庭的大多数验证者同意交易数据的排序。
5. 验证器在用户收集“效果”证书时做出最后一次响应,该证书是状态更改的证明并确保交易的最终性。
简单交易(非共享对象)
简单交易,只涉及非共享对象,不需要通过Narwhal和Bullshark进行排序。换句话说,简单交易可以跳过上述交易处理管道的第四步。简单的交易只受制于一种叫做拜占庭一致广播的轻量级算法,这种算法比拜占庭共识的强度更低,可扩展性更强。广播确保所有节点收到来自用户/客户的相同消息;它不要求节点就网络的状态达成协议,这是共识算法的复杂部分之一。
Sui的数据模型允许验证者通过因果排序方法并行执行交易,而不是完全排序(按顺序排序交易)。基于因果关系的排序(一个交易如何影响一个特定对象的状态)允许Sui按对象对交易进行分组。因此,如果多个交易是不相关的(不接触同一对象),那么这些交易可以按任何顺序并行处理。然而,发生在同一对象上的交易需要在该特定对象的交易队列中进行总排序。所有简单的交易都绕过了共识。
Sui的最新测试显示,它已经达到了每秒297,000个简单交易的吞吐量,延迟不到半秒。这种速度加上订购/共识算法的模块化,吸引了像Celo和Sommelier这样的区块链,将Narwhal整合到他们的协议中。。
DPos
Sui使用委托权益证明来确定每个时期的验证集。分配给验证人的权益总量(包括从自身委托的权益和从其他SUI代币持有人委托的权益)决定了验证人在处理交易中的投票权。所有诚实的验证者都会得到gas费用的奖励(详见下文)和临时解锁补贴(Sui未指定确切的结束日期)作为奖励。
Sui向所有诚实的验证者付款的系统不同于只为他们处理的交易向验证者付款的系统。在这些系统中,较大的验证者在概率上增长较快,因为他们更有可能被选中,并比拥有较小权益的验证者更快得到奖励。在Sui中,所有诚实的验证者以同样的速度增长。委托人只得到计算gas费用和通货膨胀补贴的奖励,但要向他们所抵押的验证者支付佣金。
Sui的测试网有97个验证者,其中只有两个是由Mysten Labs运营的。建议验证者的硬件要求包括24核物理CPU或48个虚拟CPU,128GB内存和2TB的SSD存储(推荐NVMe)。
gas费
Sui的Gas费用由两部分组成:计算和存储。
计算gas费
计算性gas费用由gas定价机制决定,验证者为当前的每笔交易设定一个最低gas价格。然后向用户公布一个 "参考gas价格",即三分之二权益的百分位价格。Sui激励验证者保持低价,但最终让验证者市场决定gas价格。用户被允许在参考价格之上使用 "小费",以获得其交易的更高优先权。因此,计算的gas价格是参考价格和小费的总和。
存储gas费用和存储基金
验证者(但不是委托者)会得到存储基金的奖励,这取决于一开始在基金的区块大小。
Sui的存储基金是一种为网络上的数据存储提供资金的手段。通过增加存储任意数量数据的能力,Sui构建了一个常见的数据存储问题解决方案:在一个环境中,最初存储数据的验证者可能与未来维护该存储数据的验证者不同。Sui的存储基金接收存储gas费用和一部分网络的质押奖励(计算gas费用加上膨胀/解锁SUI)。存储基金所积累的质押奖励会立即重新分配给验证者。在Sui上存储文件的用户,当他们从存储中删除这些文件时,可以退还他们支付的所有存储gas费。存储gas费永远不会支付给验证者。
存储基金对SUI代币施加暂时的通缩压力。当有大量的存储需求时,费用会增加,并从流通中取出更多的SUI,以便以后分配。
可编程交易块 (PTBs)
Sui支持一种被称为可编程交易块(PTBs)的开发者基础。PTBs允许用户创建一个由多达1024个交易组成的可组合序列,这些交易可以原子式地失败或成功(一次完成)。在将交易打包成PTB时,Sui上的可执行1024个操作。这种方法增加了交易的吞吐量,降低了每个交易的平均成本。
PTB可以有多种形式。它可以用于同质化的批处理,如大量铸造NFT或一次向各方发送多笔付款。它也可以用于异质性的,使用早期交易的输出作为进一步的输入。例如,Sui的测试网有一个与DeFi相关的PTB,有12个操作:在3个不同的池子里进行了5次交换,在这个过程中变异了20个现有的对象并创造了7个新的对象。
抽象gas费
Sui还为用户提供了赞助交易的选项。赞助交易是指一个用户,通常是一个应用程序,为与赞助商的平台互动的消费者支付gas费用。联合创始人Evan Cheng认为,"支付gas的概念应该是无形的"。通过使任何人都能建立一个Sui gas站作为赞助交易的后台支持,Cheng的信念正在Sui上成为现实。
横向可扩展性
Sui的架构、数据模型和交易处理方法消除了Sui对交易总排序列表达成全球共识的需要。由于交易管道是为因果排序而建立的,其中交易是根据对象分组的,它可以在验证者之间,特别是在验证者机器(称为 "工作者")之间分配工作负荷。因此,可扩展性随着更多的工作者被添加到验证器组而增加。可扩展性可以表示为验证器或单个验证器增加更多的工作者或增加其硬件资源(CPU、内存、存储等)的总数。
为了衡量,Sui用24核AMD、256GB内存和25Gbps网卡的验证器硬件配置测试了其能力,并在各种工作负载上以半秒的最终结果每秒执行11000到297000个交易。简单的交易包括点对点传输、甲骨文信息传递、社交网络帖子等。由于其可扩展性,Sui可以支持众多的应用,如社交媒体、甲骨文网络、支付等,使其有可能比具有固定吞吐量上限的协议更加可行。
Sui的可扩展性不仅限于交易处理,它也是一个事实上的存储协议。用户将能够把复杂的资产发布到Sui上。例如,Sui将能够存储NFT的所有部分(视频、照片等),而不是仅仅支持重定向到链外存储位置的链接元数据值。Sui验证器不是在IPFS或集中式服务器上进行链外存储,而是在链上维护任意资产的存储。存储容量的扩展方式与交易处理的扩展方式相同,即增加更多的工作者。
05
竞争分析
概述
Sui的目标是创建一个可以扩展到互联网规模的智能合约平台。到今天为止,没有任何区块链具备这种能力。与Sui最恰当的比较是具有部分设计相似性的高通量区块链,如Aptos和Solana。Sui通过其独特的数据模型和存储能力将其系统设计与Aptos和Solana区分开来。
数据模型
Aptos和Solana使用一个基于账户的系统来记录全球账本状态。他们使用队头阻塞,完全顺序交易,并按顺序将块写入一个共享的数据结构。Sui的以对象为中心的数据模型功能不同:全局状态只是所有Sui对象的集合,交易单独记录。
这种设计选择支持可编程交易块(PTBs)、交易签名中的安卓式权限,以及稀疏重放。PTBs使用户能够批量处理多达1024个顺序交易,这些交易可以原子式失败或成功,这既可以提高交易吞吐量,又可以降低交易成本。当交易在Sui上被签署时,用户会看到一个列表,详细说明该交易将在下游突变哪些对象,使PTB的交易结果对用户或签署者可见。基于被查询的特定对象的链上数据可以通过一个称为 "稀疏重放 "的功能进行检索。与读取代表整个共享账本状态的Merkle树相比,稀疏重放更有效率,因为它允许感兴趣的一方直接从对象中查询。
共识和执行
此外,Sui的数据模型和它的交易处理方法允许Sui绕过简单交易的共识。相反,Aptos和Solana对每个交易都进行了共识。绕过特定交易的共识是Sui的独特之处,这也是允许吞吐量扩展的核心功能。关于存储,Sui有可能与Arweave和Filecoin等链上存储协议竞争,特别是考虑到其直接竞争对手Aptos和Solana还没有创建解决方案来解决任意数据的链上存储。
并行处理是每个协议中固有的。Aptos通过Block-STM(软件交易性内存)并行执行引擎采取了optimistic的方法。这种方法要求验证器在一台机器上的内存中容纳所有的交易,然后以并行和optimistic的方式执行成批的交易(没有预先声明的依赖关系),在执行后进行验证。在同一台机器的内存中检测冲突,但是当依赖关系被捕获时,交易就无法执行。尽管Block-STM能够在单台机器上实现并行执行,但其潜在的规模是有限的,因为它要求交易只存在于一台机器的内存中以检测冲突,抑制了其将并行执行管道一次扩展到多台机器的能力。
另外,Sui和Solana采取了一种悲观pessimistic的方法,即预先声明依赖关系。在Sui中,系统设计通过以对象为中心的数据模型促进并行处理,但Solana的并行处理遵循基于账户的抽象。这个模型需要预先声明一个交易将作用于的账户,以确定在哪里进行并行执行。Solana的方法不那么直接,而且更耗费人力,因为必须声明的账户比对象多。
06
主网牵引力
随着主网推出,Sui的开发网络和测试网络已经支持超过200个项目,包括游戏、金融、法律、商业等一系列类别。开发网的验证器集只包含四个验证器,所有这些验证器都是由Sui的核心贡献者和协议设计者Mysten Labs运行的,因为它优先考虑成为项目的安全执行环境,对应用开发进行压力测试。
Sui的测试网是分批建立的,测试协议的各个方面。测试网 Wave 1被设计成一个安全的环境,供验证者测试Sui节点或机器的运行。测试网Wave 2将参与范围扩大到应用建设者、终端用户和代表,同时测试存储基金、Sui的DPoS共识机制和gas机制。2023年3月下旬,Sui宣布其永久测试网,以测试赞助交易、零知识证明和其他未来发展。
下面列出了与Sui的永久测试网相关的统计数据。
-
交易总额:28623万笔
-
发布的总包:约125,949
-
Sui钱包:109万WAU和79.4万DAU
-
Sui 浏览器:117,000 DAU
-
当前TPS:约315
-
验证者总数:97(Mysten Labs 2个+其他实体95个)
-
权益委托操作总数:735万(Wave 2测试网)
07
路线图
Mysten Labs告诉 Messari,在2023年下半年,它将把开发工作的重点放在实现Sui的关键功能上,这些功能将包括可扩展性和Sui Move。
可扩展性
-
轻客户端/稀疏节点:轻客户端/稀疏节点将能够进行稀疏重放。
-
审定器内分片:Sui交易根据每个交易所属的组(对象)并行处理;扩展Sui吞吐量需要验证者添加更多机器(分片计算)来处理更多交易组。
Sui Move DevX
验证者:帮助Sui Move的开发者确保他们的应用程序能够正确和安全地工作。Move验证者检查开发者的新功能是否能在所有可能的交易和输入中正常工作。
改进的语言服务器:语言服务器是一个补充 "移动分析器 "的软件开发工具,它是Move的VSCode插件。它与Move编译器集成,为开发者提供了许多功能,包括代码理解和错误报告。
Linting:提示工具是一种代码分析工具,它可以捕捉错误并强制执行编码风格以提高组织性和可读性。Sui的linting工具很大程度上包含了前端项目开发的规则。
其他工具:作为Sui的最初贡献者和协议设计者,Mysten实验室计划更新添加其他开发工具来帮助Sui的开发,包括自动格式化、调试器和REPL(Read, Eval, Print, Loop)语言外壳。(REPL允许开发人员快速编写、执行和测试代码片段,而不需要一个完整的开发环境或创建整个应用程序)。
08
最后的思考
新的Layer-1区块链只有在能够提供新的用例和流畅的体验时才会成功。Sui以其以对象为中心的数据模型打破了规范,这种新颖的方法可以扩展绕过共识的简单交易,并授予存储任意数据值的能力。Sui在交易签名和PTB中实现了安卓式的权限,促进了原子式可组合交易的大规模批量化。它还包括用户友好的功能,如赞助交易,使gas对终端用户不可见。
为了获得主流的采用,Sui的主网和伴随的功能将需要像预期的那样运作,并为用户入驻区块链应用提供一个强大的基础。如果数字资产行业早于预期成为主流,开发者和消费者将寻求一个灵活和安全的智能合约平台,该平台可以随着全球吞吐量的增加而扩展,保持成本效益,并提供Web2风格的前端体验。