Sui 区块链作为一种新兴的第一层(L1)协议,利用先进技术解决了常见的第一层权衡问题。Cointelegraph Research 详细解析了这个区块链领域的新秀。
Sui 使用了 Move 编程语言,该语言的设计侧重于资产表示和访问控制。本文探讨了 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 毫秒的交易最终确定时间(time-to-finality)。这使得每秒超过 100,000 笔交易的吞吐量成为可能。下文将对 Sui 与其他主流第一层区块链进行比较。
区块链面临的最紧迫问题之一是扩展性、安全性和去中心化之间的著名权衡。分片作为一种解决方案,通过对区块链数据库进行分区来缓解这一问题。在账户模型架构中,分片是通过账户地址对状态进行分区。每个分片管理一个独立的地址范围,交易由持有相关账户数据的分片进行处理。
然而,这种方法面临许多问题。例如,Polkadot 需要每个账户的余额和状态在各个分片(平行链)之间进行更新和同步。在多个分片之间保持一致性非常具有挑战性,因为每个分片必须定期与全局状态同步,这引入了延迟和复杂性。
涉及不同分片账户的交易需要跨分片消息传递和协调,这增加了计算开销并延迟了交易的最终确定。在过去,这曾导致此类区块链的停机,例如 Zilliqa。
Sui 的面向对象模型通过将每个对象视为独立的状态单元,避免了许多此类问题。对象可以单独处理和管理,无需全局状态同步,并且可以同时处理多个交易,而无需跨分片同步。这减少了复杂的跨分片通信需求,使并行处理更为简单和高效。
并行化是指同时执行多个操作,并通过利用并发执行线程来提高处理速度。主要有两种并行化方法:状态访问方法(或称确定性执行)和乐观执行。在 Sui 和 Solana 使用的状态访问方法中,交易声明它们将访问状态的哪些部分,从而使系统能够识别可以同时执行的独立交易。
这种方法确保了结果的可预测性,并避免了重新执行交易的需求,从而支持动态的 gas 费市场来管理状态热点的拥堵。
另一方面,乐观执行方法(如 Monad 和 Aptos 网络所采用的)则假设所有交易最初都是独立的,并在发现冲突时重新执行相关交易。虽然这种方法对开发者更简单,但可能导致计算效率低下。
Sui 通过其面向对象模型实现了状态访问并行化。对一个对象的操作不会影响或延迟对另一个对象的操作,因此这些操作可以自然地同时进行处理。同样的结构特性也简化了交易数据库的分区,从而简化了在单个节点上的并行处理。
总之,Sui 区块链的面向对象模型结合 Move 编程语言,解决了传统第一层区块链的若干关键限制。其并行处理交易的能力显著提升了可扩展性,并减少了延迟。使用线性逻辑和基于能力的安全性,确保了稳健的资源管理和访问控制,可能降低错误和安全漏洞的风险。此外,Sui 在管理复杂资产(如 NFT)方面的方法,相较于传统的账户模型,简化了交互并提高了效率。这些特性使 Sui 成为区块链技术中一个值得关注的进步。
在我们的下一篇文章中,我们将探讨 Sui 区块链的共识机制,分析其演变过程及其带来的优势。Sui 采用了一种专为其面向对象模型设计的共识协议。我们将深入分析 Sui 共识机制的细节,包括其容错性和吞吐量优化方法,以了解这些元素如何促进其基础设施的发展。
此外,我们还将 Sui 的共识方法与其他主流区块链(如以太坊、Polkadot 和 Solana)进行比较,找出其独特之处以及可能在某些方面表现出色或面临挑战的领域。
Sui 区块链作为一种新兴的第一层(L1)协议,利用先进技术解决了常见的第一层权衡问题。Cointelegraph Research 详细解析了这个区块链领域的新秀。
Sui 使用了 Move 编程语言,该语言的设计侧重于资产表示和访问控制。本文探讨了 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 毫秒的交易最终确定时间(time-to-finality)。这使得每秒超过 100,000 笔交易的吞吐量成为可能。下文将对 Sui 与其他主流第一层区块链进行比较。
区块链面临的最紧迫问题之一是扩展性、安全性和去中心化之间的著名权衡。分片作为一种解决方案,通过对区块链数据库进行分区来缓解这一问题。在账户模型架构中,分片是通过账户地址对状态进行分区。每个分片管理一个独立的地址范围,交易由持有相关账户数据的分片进行处理。
然而,这种方法面临许多问题。例如,Polkadot 需要每个账户的余额和状态在各个分片(平行链)之间进行更新和同步。在多个分片之间保持一致性非常具有挑战性,因为每个分片必须定期与全局状态同步,这引入了延迟和复杂性。
涉及不同分片账户的交易需要跨分片消息传递和协调,这增加了计算开销并延迟了交易的最终确定。在过去,这曾导致此类区块链的停机,例如 Zilliqa。
Sui 的面向对象模型通过将每个对象视为独立的状态单元,避免了许多此类问题。对象可以单独处理和管理,无需全局状态同步,并且可以同时处理多个交易,而无需跨分片同步。这减少了复杂的跨分片通信需求,使并行处理更为简单和高效。
并行化是指同时执行多个操作,并通过利用并发执行线程来提高处理速度。主要有两种并行化方法:状态访问方法(或称确定性执行)和乐观执行。在 Sui 和 Solana 使用的状态访问方法中,交易声明它们将访问状态的哪些部分,从而使系统能够识别可以同时执行的独立交易。
这种方法确保了结果的可预测性,并避免了重新执行交易的需求,从而支持动态的 gas 费市场来管理状态热点的拥堵。
另一方面,乐观执行方法(如 Monad 和 Aptos 网络所采用的)则假设所有交易最初都是独立的,并在发现冲突时重新执行相关交易。虽然这种方法对开发者更简单,但可能导致计算效率低下。
Sui 通过其面向对象模型实现了状态访问并行化。对一个对象的操作不会影响或延迟对另一个对象的操作,因此这些操作可以自然地同时进行处理。同样的结构特性也简化了交易数据库的分区,从而简化了在单个节点上的并行处理。
总之,Sui 区块链的面向对象模型结合 Move 编程语言,解决了传统第一层区块链的若干关键限制。其并行处理交易的能力显著提升了可扩展性,并减少了延迟。使用线性逻辑和基于能力的安全性,确保了稳健的资源管理和访问控制,可能降低错误和安全漏洞的风险。此外,Sui 在管理复杂资产(如 NFT)方面的方法,相较于传统的账户模型,简化了交互并提高了效率。这些特性使 Sui 成为区块链技术中一个值得关注的进步。
在我们的下一篇文章中,我们将探讨 Sui 区块链的共识机制,分析其演变过程及其带来的优势。Sui 采用了一种专为其面向对象模型设计的共识协议。我们将深入分析 Sui 共识机制的细节,包括其容错性和吞吐量优化方法,以了解这些元素如何促进其基础设施的发展。
此外,我们还将 Sui 的共识方法与其他主流区块链(如以太坊、Polkadot 和 Solana)进行比较,找出其独特之处以及可能在某些方面表现出色或面临挑战的领域。