详解Sui:快速且可扩展的Layer1

 2024-01-14 21:22:36发布 2024-01-14 21:23:00更新

Sui 区块链是一个 Layer1 平台,专注于即时交易担保、减少延迟和提高交易速度,通过以对象为中心的数据模型、Move 编程语言以及用户体验等创新,为区块链应用的开发和推广提供更多的可能性和发展空间。

Sui是什么

Sui 是由 Mysten Labs 开发的 Layer1 公有区块链网路(公链),其成立的目的是为了解决区块链网路有效性的问题,目前的区块链网路不够高效,无法满足市场现阶段快速增长的需求。而SUI 本身并不是Diem 的衍生产品。

2022 年 8 月,Sui 推出了激励测试网,并于 2023 年 5 月 3 日正式推出了主网。

Sui 是一个全新的项目,从最开始就将基础扩展性进行了规划,以实现即时转帐,同时也提供了高吞吐量、降低了延迟时间,减少了成本,为数十亿用户的应用程式提供动力。

简而言之,Sui 的目标是透过结合原生程式语言 Move、事务并行处理和委托权益证明共识机制,在不影响安全性的情况下提高其可扩展性。这样,Sui 就可以为每个人提供快速、私密且安全的加密货币所有权。

Sui和其他Layer1的区别

Sui 使用了一种名为“Narwhal and Tusk”的异步共识协议。准确地说,这两个名称意味着该系统确保提交给共识数据的可用性(Narwhal)和就数据的特定排序达成一致的责任(Tusk)。

由于这是在两层模块中完成的,所以 Narwhal 可以与 HotStuff、Istanbul BFT 或 Tendermint 等外部共识算法一起使用。目前,Narwhal 正被整合到 Celo 和 Sommelier 区块链中。

也就是说,Sui 和其他 Layer1 之间的主要区别之一是,Sui 对共识协议并不绝对依赖,其只在需要的时候运行共识来定期检查它的状态,并且处理需要大量订单的转帐。

与其他区块链不同,Sui 通过使用“因果排序”来放弃大多数交易的共识,这意味着 Sui 并不总是需要共识;它的交易是因果排序的,而其他通类区块链项目总是需要完整的排序。

这种共识架构极大地提高了性能,因为它使 Sui 能够同时执行许多事务。因此,也减少了延迟,同时允许验证器使用它们的所有 CPU 核心。

根据该团队的说法,该架构将使其成为“第一个也是唯一一个具有水平可扩展性且整个网络没有上限的无权限区块链”。

什么是Move语言

Move 的开发是为了服务于 Diem 区块链,打造全球化的金融和货币基础设施。所以 Move 必须有能力对构成金融基础设施的各种资产和业务逻辑进行编码。

这也造就了 Move 编程语言的定位:安全、模块化的数字资产展示、管理和转换。

安全

在 Solidity 等语言的设计下,资产是一个数值,通过在钱包中加/减完成资产转移,而非资产真正的移动,因此容易产生漏洞。

Move 的解决方式是把所有自定义资产(如代币)都视为一个资源(resource),存放在模块(类似于智能合约)中,且资源不能复制或者删除,只能移动和储存,且资源在模块内是透明的,但对模块外部的调用是不透明的。

也就是说,Move 通过将资产独立出来,并通过其移动来改变所有权,这也是 Move(移动)的命名而来。

在此之上,Move 内置字节码验证器验证,合约代码需验证后才能被执行;同时 Move Prover 允许开发人员为应用程序的关键正确性属性编写一个正式规范,然后使用 Prover 检查这些属性是否适用于所有可能的交易和输入,在代码未发布前就能进行第一次审核。

模块化

因所有合约都是一个模块,因此 Move 天生带有模块性,资产存属于模块中,合约通过传递资产完成交互(Solidity 等通过界面)。

更新合约也只需更新模块,所有使用过模块的合约都会自动更新到最新版本。

Sui的Move

基于 Sui 的白皮书,Sui Move 和 Move 最大的区别在于全局存储和 Key 能力。

简单来说,就是储存不在 Move,而是在 Sui 自己的链上,赋予每个可编程对象全局唯一 ID,同时对高效储存和快速调动数据进行了优化。

主要有以下 5 点不同

  1. 资源不部署在Move中,而是以对象为中心(Object-Centric)的全局存储在Sui内
  2. 地址不再代表用户账户,而是代表对象的 ID
  3. Sui 对象具Key能力,则全局唯一ID,包含id和版本序号
  4. Sui 有模块初始化器 (init),帮助模块快速部署
  5. Sui 入口点(entry point)将对象引用作为输入

总之,Sui 充分利用了 Move 的安全性和灵活性,并通过对存储的改变从而极大地提高了吞吐量,减少了最终确定的延迟,并使 Move 编程更容易。

Sui的运作原理

Sui 的 TPS 能达到120,000,之所以速度快,要基于它对交易的分类以及共识系统:简单的交易走简单共识,复杂的交易走全套共识,同时共识层将信息的传递和共识执行分开,完成并行交易。

Sui的架构

简单说下Sui的架构,作为一个分布式账本,Sui的架构有三个组成部分:对象(Object)、交易(Transaction)、验证器(Validator)。

对象(Object)

Sui储存的基本单位,每个对象都有一个全球唯一的ID。每个对象都由一个地址拥有,而每个地址可以拥有任意数量的对象。

分类为所属对象(地址所有)、共享对象(多人共享)、不可变对象(任何人都可使用)。

交易(Transaction)

账本通过地址向地址发送交易(Transaction)进行更新。一个交易可以创建、销毁和写入对象(比如Token),也可以将它们转移到其他地址。

验证器(Validator)

通过拜占庭一致广播同意和并行执行交易,当我们拥有了对象后,就可以通过交易转移对象的所属地址,也就是资产交互,并通过节点进行验证。

Sui对交易的分类

Sui 使用 DPoS 进行共识证明,每个交易单独验证,而非像传统区块一样等多个交易绑在一起后验证,也就是说随着客户端发起交易马上就进行验证,因此无需等待。

同时,交易分两类,简单交易和复杂合约,由不同的方式执行交易,以达到高效率和速度。

简单交易:拜占庭一致广播

很多时候链上交易并没有复杂的依赖关系,比如资金转账,只需要更新资金的所有者,那么交易就可以跳过共识,只用基于拜占庭一致广播的算法即可。

交易过程:交易发起者向所有 Sui 验证者广播一个交易 → 每个 Sui 验证者都会对该交易进行单独投票,投票权重基于质押数量 → 发起者将多数投票收集到一个证书中,并将其广播给所有 Sui 验证者,完成交易,确定 finality。

复杂合约:Narwhal和Bullshark共识启动

复杂的智能合约通常为共享对象,则不只一个用户可以对其发起改变,因此则需要通过 2 次共识才能完成交易,这就涉及到 Sui 设计的共识协议 Narwhal 和 Bullshark 。

交易过程:交易发起者向所有 Sui 验证者广播一个交易 → 每个 Sui 验证者都会对该交易进行单独投票,投票权重基于质押数量 → 发起者将多数投票收集到一个证书中,并将其广播给所有 Sui 验证者,但证书需要通过拜占庭协议完成共识 → 一旦交易成功排序,发起者再次将证书广播给验证者以结算交易。

Sui的共识

Sui 的共识是 DPoS,由基于 DAG 的拜占庭容错 Narwhal 和 Bullshark(Tusk)实现,该设计能够允许 Sui 并行处理交易,并快速达成共识。

传统区块链的顺序是线性的,则 T1 链接 T2 链接 T3 直到 Tn,因此必须一个一个地完成交易,速度慢,Sui 通过引入 DAG 解决并行交易。

传统的 BTF(拜占庭容错)共识数据传播和共识是同时达成的:在普通领导制的协议中,一个领导节点发出提议并广播其提议,然后将收集到的投票放到一个证书中,再将证书广播出去,从而证明交易完成。

基于这样的设计,只有领导节点的工作量是最大的,其他节点只需投票,但由于领导随机生成,每个节点都需要大量的算力储备,最终导致网络算力的浪费。

解决这个问题的关键点在内存池(mempool)。如果能在池内将数据传播和共识协议拆开,内存池解决数据传播,共识协议结局数据共识,那么速度就会大幅提升。

Sui 的设计正是如此:Narwhal 是 mempool 层,Bullshark 是共识层,分开工作。

下面将分析 DAG 和 Narwhal 和 Bullshark(Tusk)的运作方式。

区块链顺序:DAG

DAG 是有向无环图,由点与边组成,一个点到另一个点可能存在多种路线,但路线无法形成闭环。

传统区块链网络是线性的,每个块都要等上一个处理完毕后再进行下一个验证,且所有节点要保存所有账簿。

DAG 不以区块为单位,交易各自为链上的点,由不同的节点储存和认证,没有领导,因此各自处理各自的交易,实现平行处理消息。

这样一来,交易之间的关系并非总顺序(Total Order),而是因果排序(Causal Order),只看它从哪个交易来,又被哪个交易所使用,因此大幅增加了 Sui 的处理速度以及实现平行交易处理。

 

如果 DAG 没有领导,就需要 Narwhal 与 Bullshark 确认共识。

区块链共识:Narwhal与Bullshark(Tusk)

简单来说,基于 DAG 的设计,Narwhal 将 mempool 的信息进行拆分,完成数据可用性,让信息能够更快地传播,再发送给 Bullshark 进行共识确认。

具体运作方式

Narwhal 的 mempool 在每个节点内运行,由无数个 worker 和一个 primary 组成(可以理解为工人和包工头)。

每个 worker 都会从客户端收到交易,并将所有的交易捆绑一起后广播给其他节点的同序号 worker,同时将digest(摘要)发给 primary。

在这一步,大量的冗余信息都在 worker 项目之间传递,pimary 的工作就是从不同 worker 中收取各个小单位的 digest,成立轮次制的 DAG mempool。

这些 Digest 就是区块头,集合起来成为元数据(Metadata),primary 再与其他节点的 primary 沟通区块头的信息,就能够快速完成第一次投票收集证书的共识。

Protocol Labs

Protocol Labs

基于DAG的设计,每一次的交易产生和共识传播都分轮次。Sui 链上的所有节点都会与 12+1 个创世区块所连接,并开始第一轮验证过程。

各个节点收到的信息不一定是一致的,这也就是非线性区块链的最大区别。

只要节点收到交易,primary 就会向所有节点里的 primary 广播信息,得到投票(如果这是本轮次中你看到该验证器发布的第一个的区块头,就可以投票),形成证书。

每个节点都在同时广播信息,获取其他节点的投票,因此交易确认并行执行。

上图示例是 r1(轮次1),我们的视角是节点 1 的本地信息图。

3 个示例创世区块产生了交易,出现了第一个区块头节点,第一个区块头便向下面三个节点广播了信息,并得到了 2 个投票,只要有 f 值个节点投票了,就可以得到证书,然后证书广播给所有节点,节点进行储存,完成第一次共识。

除了节点 1 以外,节点 2 到节点 n 都在同时做同样的事情,因此把每一轮的传递连起来就会得到 DAG。

现在 Narwhal 已经把 mempool 的数据整理好,内容共识已经达成,下一步则是把信息传到 Bullshark,让它完成共识执行。

在 2022 年 8 月以前 Bullshark 的前身为 Tusk,因此我们下面了解 Tusk 的运作方式,并可视 Bullshark 为升级版 Tusk。

Tusk的运作方式

Tusk 是一个零信息异步共识协议,只要看 DAG 模型就能得到所有交易顺序,并完成排序共识。

首先,因为 DAG 没有领导,Tusk 要随机为轮次找一个领导作为锚定点,并确认所有连着领导的交易和节点。

因此,每个奇数轮次时会随机生成一个 coin,随机任命前 r-2 轮次的节点为领导,找到节点后看,r-1 轮次中有多少节点验证了它、与它连接在一起,如果有 f+1 节点都与它相连,那么它就是一个领导。

如果不满足条件则跳过这个轮次,找到下一个奇数节点的领导,直到满足条件的轮次领导出现。

上图中,第一轮的领导 L1 没有得到大部分投票(只有 1 个节点相连),因此跳过,直到符合条件的 L2 出现。出现后 Tusk 开始回倒,确保 L2 与之前的领导能够相连,然后所有之前与 L2 所连接的区块都被确认。

Tusk 不断重复找领导过程,把交易顺序进行最终确定,Sui 的区块链就跑起来了。

基于这样的一个共识系统,Sui 完成了平行交易、将数据与共识分开,完成了区块技术的搭建。

SUI代币

SUI 是 Sui 网络的原生代币,可以支付 Gas 费、执行链上交易以及为网路提供安全保障。此外,持有者还有权为专案的未来治理做出贡献。

在 Sui 的经济中,有三个角色:用户、持有者,和验证节点。用户提交交易,与智能合约、应用进行互动,持有者将Token委托给验证节和治理,节点负责处理与执行交易。

代币经济学

SUI 代币总供应量为 100 亿枚,将分配给 50% 社区储备,20% 早期贡献者,14% 投资者,10% Mysten实验室金库,6% 社区访问计划 IEO 和应用测试人员。

也就是说,Sui 基金会控制着 50% 的代币供应。虽然这听起来很多,但这些资金用于授权计划、拨款计划、研究和开发以及验证者补贴。

SUI储存基金(storage fund)

作为 SUI 代币经济学中最独特也最重要的部份,储存基金是一种验证者奖励机制。防止发生未来因区块链数据量随时间增长,用户无法负担巨额的 Gas fee 的情况。

具体来说,用户在支付 Gas fee 时会同时支付一笔储存费,储存费会存放于储存基金中,该基金会支付验证者储存用户数据的成本,用于补贴未来随着网路发展和成熟而增加的储存成本,确保数据储存的定价准确,且储存的数据不会给未来的用户带来负担。

值得一提的是,此储存模型中还有一个“删除选项”,当用户删除链上数据时,能获得储存费的返还,让链上仅留存着真正重要且需被保存的资料,避免资料储存无限扩张。

用途

SUI 代币主要有四个应用场景:网络质押,交易费用,储存费用,治理投票,以及 SUI 原生资产交易工具。

  • 质押 SUI 以参与平台的工作量证明机制。
  • SUI 是用于支付执行和存储交易或在平台上进行各种操作所需的 Gas 费用的资产。
  • SUI 代币持有者有权就协议升级等影响 Sui 平台的各种问题参与链上治理投票。

质押代币可以获取更高等级的权益,使用 Sui 网路的各种服务时,需要支付 Gas fee,而治理代币则可用于投票决定平台的未来方向。

未来,随着 Sui 网络的发展,SUI 代币将被广泛应用于多个场景,如应用商店、DeFi 等领域。Sui 网路可望成为区块链领域内的重要玩家之一,SUI 代币也将有更多的价值体现。

Sui的生态应用

DeFi领域

DEX Cetus是TVL为基准最大的协议,KriyaDEX、FlowX Finance、Turbos和Aftermath是Sui上其他受欢迎的流动性DEX。

除DEX外,类似 Mole 的收益项目和像 NAVI Protocol、Scallop 的借贷平台也是 Sui 生态的头部项目。

NFT赛道

Wizard Land 和 Baby Apes Society 成功地吸引了广泛的社区支持,而 Sui 先进的功能,例如实时更新的动态 NFT,上线后就引起了 NFT 收藏者的狂热。

动态 NFT 也驱动 GameFi 玩家加入 Sui,包括竞争卡牌游戏 Final Stardust、社交种植游戏 Cosmocadia 和免费的格斗游戏 Rushdown Revolt。

SocialFi项目

开发人员还在构建 SocialFi 项目,例如 Read2N、Peeranha 和 ComingChat,以及 Oracle、Launchpad、Bridge 和域名。

总的来说,相比于 Solana 等专注于 DeFi 的 Layer1 平台,Sui 专注于提供即时交易确定性、减少智能合约部署延迟,并提高整体交易速度,致力于打造数字艺术、游戏和收藏品市场的需求,并呈现出在该领域的优势和潜力。

推荐阅读