Sui 区块链已成为一种新型第 1 层 (L1) 协议,它采用先进技术来解决常见的第 1 层权衡问题。Cointelegraph Research 揭秘了区块链领域这一新事物的细节。
Sui 使用Move 编程语言,该语言的设计重点是资产表示和访问控制。本文探讨了 Sui 以对象为中心的数据存储模型、其对交易处理的影响以及其相对于传统基于帐户的范式的潜在优势。
SUI 的面向对象范式
Sui 从 Diem 区块链中汲取了重要灵感,尤其是在智能合约中使用 Move 编程语言方面。Move 的设计采用了专门针对资产管理和访问控制实施的类型系统。Sui Move 在此基础上构建了以对象为中心的数据存储模型,该模型使用对象而不是帐户作为原语。
与传统的账户模型(交易改变余额)或UTXO 模型(交易具有简单的输入和输出)不同, Sui 的对象模型将资产(以及智能合约)视为复杂对象。Sui 中的交易将对象作为输入,并将这些输入转变为输出对象。每个对象都记录产生它的**一个交易的哈希值。这种方法在概念上类似于 UTXO 模型,但更通用、更强大。下面可以看到这些模型的比较。
Move 使用的线性逻辑与面向对象模型相联系,有助于开发安全软件。线性逻辑有时也称为资源逻辑,可确保代表数字资产的资源不会被**或无意中破坏。当执行涉及资产的交易时,Sui Move 的语义可确保以反映交易结果的方式更新资产的状态,消耗资产的先前状态并在新状态下生成资产。
Sui 中的对象还可以定义访问控制和权限,从而增强安全性并控制交易后的资产使用。这可以缓解基于账户的链上常见的漏洞,这些漏洞会导致重入攻击。在重入攻击中,函数在更新自身状态之前对另一个合约进行外部调用,从而使攻击者可以重复执行本应只发生一次的操作。
这可能导致合约状态发生未经授权的更改,例如提取超出允许范围的资金。由于所有权转移在 Sui 中是明确且原子的,因此不会发生此类错误。Move 的线性类型系统确保资源一旦移动,除非明确重新分配,否则无法重复使用。
另一方面,Solidity 使用的传统基于帐户的模型要求开发人员实施额外的检查以防止此类错误。例如,需要遵循检查-效果-交互模式来避免重入攻击。所有状态更改操作(效果)都必须在所有检查之后但在任何交互(外部调用)之前发生。这种模式通常称为乐观会计,可确保在执行任何外部交互之前更新状态变量。
虽然以对象为中心的模型本身并不能增强安全性,但它可以简化开发过程,使编写安全代码变得更加容易。虽然以太坊上的智能合约可以通过形式化验证来实现高水平的安全性,但这个过程可能很复杂,成本也很高。
Solidity 以其不直观的语义而闻名,这使得开发人员很难推断代码的行为。这增加了引入细微错误和安全漏洞的可能性。
SUI Move 属于一个语言家族,该家族试图通过从一开始就将合理的金融原语融入语言语义来简化安全智能合约的开发。另一个例子是 Algorand 区块链的交易执行批准语言 (TEAL),它使用无状态执行模型来确保交易的原子性和安全性。
Sui 以对象为中心的模型对于管理非同质化代币 (NFT) 等复杂资产特别有利。在以太坊中,NFT 与智能合约地址绑定,交互通常需要复杂的合约调用和状态更新,从而导致更高的成本和潜在的安全风险。例如,在以太坊中转移 NFT涉及调用 ERC-721 智能合约的函数,该函数会更新状态并发出事件。
此过程涉及多个步骤,并且每个操作都需要支付 gas 费。相比之下,Sui 的对象模型允许将每个 NFT视为具有内在属性和权限的独特对象。NFT 的行为与 Move 语言的原语紧密相关,而在以太坊中,需要实现此行为,这会增加开销并产生错误空间。
面向对象和区块链性能
面向对象模型使得 SUI 区块链上的分片和并行化变得更容易。结合 Sui 共识机制的**更新,SUI 的最终确定时间约为390 毫秒。
这可以实现每秒超过 100,000 笔交易的吞吐量。下面是 Sui 与其他**的第 1 层区块链的比较。
基于账户的链与 SUI 上的数据库分片
区块链最紧迫的问题之一是可扩展性、安全性和去中心化之间的权衡。分片技术有助于对区块链数据库进行分区,被认为是解决此问题的方法。
在基于账户的架构中,分片涉及按账户地址划分状态。每个分片管理不同范围的地址,交易由保存相关账户数据的分片处理。
然而,这面临许多问题。例如,Polkadot要求每个账户的余额和状态在分片(平行链)之间更新和同步。保持多个分片之间的一致性具有挑战性,因为每个分片必须定期与全局状态同步,这会带来延迟和复杂性。
涉及不同分片上的账户的交易需要分片间的消息传递和协调,这会增加计算开销并延迟交易的最终性。在过去,这会导致此类区块链出现停机,Zilliqa就是这种情况。
Sui 的对象中心模型通过将每个对象视为独立的状态单元,避免了许多此类问题。对象可以单独处理和管理,而无需全局状态同步,并且可以同时处理多个交易,而无需跨分片同步。这减少了对复杂的跨分片通信的需求,并允许更直接、更高效的并行处理。
SUI 上的并行事务处理
并行化是指同时执行多个操作,并利用并发执行线程来提高处理速度。
并行化主要有两种方法:状态访问方法(或确定性执行)和乐观执行。在Sui 和Solana使用的状态访问方法中,事务声明它们将访问状态的哪些部分,从而允许系统识别可以并发执行的独立事务。
这种方法可确保可预测的结果,并避免重新执行交易的需要,从而实现管理拥挤状态热点的动态 gas 费用市场。
另一方面,乐观执行(如 Monad 和 Aptos 等网络所使用的)最初假设所有交易都是独立的,并回顾性地重新执行冲突的交易。虽然对开发人员来说更简单,但它可能导致计算效率低下。
Sui 通过以对象为中心的模型实现了状态访问并行化。对一个对象的操作不会影响或延迟对另一个对象的操作,因此自然可以同时处理它们。相同的结构特征简化了事务数据库的分区,从而也简化了单个节点上的并行处理。
结论
总之,Sui 区块链以对象为中心的模型与 Move 编程语言相结合,解决了传统第 1 层区块链的几个关键限制。并行处理交易的能力显著提高了可扩展性并降低了延迟。
使用线性逻辑和基于能力的安全性可确保强大的资源管理和访问控制,从而降低错误和安全漏洞的风险。此外,与传统的基于账户的模型相比,Sui 管理复杂资产(如 NFT)的方法简化了交互并提高了效率。这些功能使 Sui 成为区块链技术中值得注意的进步。
在下一篇文章中,我们将研究 Sui 区块链的共识机制,探索其演变及其带来的好处。Sui 采用了一种旨在与其以对象为中心的模型配合使用的共识协议。
我们将分析Sui共识机制的具体内容,包括其容错能力和吞吐量优化方法,以了解这些元素如何为其基础设施做出贡献。
此外,我们将把 Sui 的共识方法与其他**区块链(如以太坊、Polkadot 和 Solana)的共识方法进行比较,以确定其独特功能以及可能擅长或面临挑战的领域。
文章链接:https://www.btchangqing.cn/659237.html
更新时间:2024年06月30日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。