探索Sui的面向对象模型和Move编程语言

news2024/11/25 19:37:44

Sui区块链作为一种新兴的一层协议(L1),采用先进技术来解决常见的一层协议权衡问题。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与其他主要第一层区块链的比较。

基于账户的链上数据库分片与Sui

区块链最紧迫的担忧之一是可扩展性、安全性和去中心化之间的权衡。分片被认为是解决这一问题的方法,它有助于区块链数据库的分区。

在基于账户的架构中,分片涉及按账户地址分区状态。每个分片管理一系列不同的地址,交易由持有相关账户数据的分片处理。

然而,这面临许多问题。例如,Polkadot要求每个账户的余额和状态在分片(平行链)之间更新和同步。维护多个分片之间的一致性具有挑战性,因为每个分片必须定期与全局状态同步,这会引入延迟和复杂性。

涉及不同分片上账户的交易需要跨分片消息传递和协调,这增加了计算开销并延迟了交易确认。在过去,这导致了某些区块链的停机,如Zilliqa所遇到的情况。

Sui的面向对象模型通过将每个对象视为独立的状态单元,避免了许多这些问题。对象可以独立处理和管理,而无需全局状态同步,多个交易可以在不需要跨分片同步的情况下并行处理。这减少了复杂的跨分片通信的需求,并允许更简单高效的并行处理。

Sui上的并行交易处理

并行化指的是同时执行多个操作,并通过利用并发执行线程来提高处理速度。

有两种主要的并行化方法:状态访问方法(或确定性执行)和乐观执行。在Sui和Solana中使用的状态访问方法中,交易声明它们将访问的状态部分,使系统能够识别可以同时执行的独立交易。这种方法确保了可预测的结果,避免了重新执行交易的需要,支持动态的gas费用市场来管理拥堵的状态热点。

另一方面,乐观执行(如Monad和Aptos网络所使用的)初始假设所有交易都是独立的,随后重新执行冲突的交易。尽管对开发人员来说更简单,但它可能导致计算效率低下。

Sui通过其面向对象的模型实现了状态访问并行化。对一个对象的操作不会影响或延迟对另一个对象的操作,自然地允许它们同时处理。同样的结构特性简化了交易数据库的分区,从而也简化了单节点上的并行处理。

结论

总之,Sui区块链的面向对象模型结合Move编程语言,解决了传统一层区块链的若干关键限制。并行处理交易的能力显著提高了可扩展性并减少了延迟。

使用线性逻辑和基于能力的安全性确保了稳健的资源管理和访问控制,潜在地降低了错误和安全漏洞的风险。此外,Sui对复杂资产(如NFT)的管理方法简化了交互并提高了效率,相比传统的基于账户的模型更为优越。这些特点使Sui成为区块链技术中的一个显著进步。

在我们的下一篇文章中,我们将探讨Sui区块链的共识机制,研究其演变及其提供的优势。Sui采用了一种旨在与其面向对象模型配合的共识协议。

我们将分析Sui共识机制的具体细节,包括其容错和吞吐量优化方法,以了解这些元素如何贡献于其基础设施。

此外,我们将把Sui的共识方法与其他主要区块链(如Ethereum、Polkadot和Solana)的共识方法进行比较,以确定其独特功能以及可能的优势和挑战。


关于Sui Network

Sui是基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。获取更多信息:https://linktr.ee/sui_apac

官网|英文Twitter|中文Twitter|Discord|英文电报群|中文电报群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1897988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

滑动窗口(C++)

文章目录 1、长度最小的子数组2、无重复字符的最长子串3、最大连续1的个数 Ⅲ4、将x减到0的最小操作数5、水果成篮6、找到字符串中所有字母异位词7、串联所有单词的子串8、最小覆盖子串 通常,算法的主体说明会放在第一道题中。但实际上,不通常。 算法在代…

Solr安装IK中文分词器

Solr安装IK中文分词器 如何安装Solr与导入数据?为什么要安装中文分词器下载与安装IK分词器1.1、下载IK分词器1.2、安装IK  第一步:非常简单,我们直接将在下的Ik分词器的jar包移动到以下文件夹中  第二步:修改Core文件夹名下\c…

代理设计模式和装饰器设计模式的区别

代理设计模式: 作用:为目标(原始对象)增加功能(额外功能,拓展功能) 三种经典应用场景: 1:给原始对象增加额外功能(spring添加事务,Mybatis通过代理实现缓存功能等等) 2:远程代理(网络通信,输出传输(RPC,D…

Motion Guidance: 扩散模型实现图像精确编辑的创新方法

在深度学习领域,扩散模型(diffusion models)因其能够根据文本描述生成高质量图像而备受关注。然而,这些模型在精确编辑图像中对象的布局、位置、姿态和形状方面仍存在挑战。本文提出了一种名为“运动引导”(motion gui…

图书馆数据仓库

目录 1.数据仓库的数据来源为业务数据库(mysql) 初始化脚本 init_book_result.sql 2.通过sqoop将mysql中的业务数据导入到大数据平台(hive) 导入mysql数据到hive中 3.通过hive进行数据计算和数据分析 形成数据报表 4.再通过sq…

如何取消闪迪Micro SD卡的写保护?这个技巧很有效!

由于受写保护影响,无法格式化闪迪Micro SD卡?别担心!通过本文你可以学习如何解除闪迪Micro SD卡的写保护。 我的闪迪SD卡有写保护怎么办? “我打算格式化我的闪迪SD卡。但当我进行格式化时,提示我磁盘被写保护。我想用…

Linux配置固定ip地址

虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的 DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更。 一般系统默认的ip地址设置都是自动获取,故每次系统重启后ip地址都可能会不一样&a…

数字化产科管理平台全套源码,java产科电子病历系统源码

数字化产科管理平台全套成品源码,产科电子病历系统源码,多家大型妇幼专科医院应用案例。源码完全授权交付。 数字化产科管理平台(智慧产科系统)是为医院产科量身定制的信息管理系统。它管理了孕妇从怀孕开始到生产结束42天以内的一…

欢乐钓鱼大师攻略:西沙群岛攻略,内置自动辅助云手机!

《欢乐钓鱼大师》是一款以钓鱼为主题的休闲游戏,玩家可以在虚拟的钓鱼世界中体验真实的钓鱼乐趣,并通过捕捉各种珍稀鱼类来提升自己的钓鱼技能和成就。在这篇攻略中,我们将重点介绍如何在西沙群岛区域有效地捕捉各种典藏鱼类,并提…

数据结构之顺序表专题

在学习数据结构之前我们要先了解什么是数据结构? 1.数据结构相关概念 1.什么是数据结构? 数据结构是由“数据”和“结构”两词组合而来。 什么是数据?常见的数值1、2、3、4.、教务系统里保存的用户信息(姓名、性别、年龄、学历等等)、网页里肉眼可以…

Qt项目:基于Qt实现的网络聊天室---注册模块

文章目录 基本页面设计创建登录界面创建注册界面优化样式完善注册类界面 客户端逻辑完善客户端增加post逻辑客户端配置管理 邮箱注册服务认证服务读取配置邮箱验证服务联调设置验证码过期封装redis操作类封装redis连接池注册功能Server端接受注册请求封装mysql连接池封装DAO操作…

传统视觉Transformer的替代者:交叉注意力Transformer(CAT)

传统视觉Transformer的替代者:交叉注意力Transformer(CAT) 在深度学习的世界里,Transformer架构以其在自然语言处理(NLP)领域的卓越表现而闻名。然而,当它进入计算机视觉(CV)领域时,却面临着计算成本高昂和推理速度慢的双重挑战。现在,一项革命性的创新——交叉注意…

【Linux】—VMware安装Centos7步骤

文章目录 前言一、虚拟机准备二、CentOS7操作系统安装 前言 本文介绍VMware安装Centos7步骤。 软件准备 软件:VMware Workstation Pro,直接官网安装。镜像:CentOS7,镜像官网下载链接:https://vault.centos.org/&#x…

[SAP ABAP] 子例程

子例程 示例1 主程序(Z437_TEST_2024) INCLUDE文件(Z437_TEST_2024_F01) 输出结果如下所示 示例2 主程序(Z437_TEST_2024) INCLUDE文件(Z437_TEST_2024_F01) 输出结果如下所示 补充扩展练习 主程序(Z437_TEST_2024) INCLUDE文件(Z437_TEST_2024_F01) 输出结果如下所示 提示…

使用Rough.js库在画布上绘制一只毛毛虫

本文由ScriptEcho平台提供技术支持 项目地址:传送门 代码应用场景介绍 本代码使用Rough.js库在画布上绘制一只毛毛虫。 代码基本功能介绍 初始化画布: 使用Rough.js库创建画布,并设置画布尺寸。 绘制毛毛虫身体: 使用椭圆形和…

【C++】 解决 C++ 语言报错:未定义行为(Undefined Behavior)

文章目录 引言 未定义行为(Undefined Behavior, UB)是 C 编程中非常危险且难以调试的错误之一。未定义行为发生时,程序可能表现出不可预测的行为,导致程序崩溃、安全漏洞甚至硬件损坏。本文将深入探讨未定义行为的成因、检测方法…

上千套源码分享免费(师哥师姐毕设分享)

项目管理平台详解 项目管理平台是专为项目管理者设计的系统软件,旨在在有限的资源约束下,通过系统的观点、方法和理论,对项目涉及的全部工作进行有效管理。这种平台不仅有助于项目从投资决策到结束的全程计划、组织、指挥、协调、控制和评价…

html纯原生网页引入vue3版本的quill editor

效果图 版本 vueup/vue-quill v1.2.0vue3.3.8Element Plus v2.4.2 引入流程 找一个vue3的项目, 然后安装插件vue版本的quill: vue-quill npm install vueup/vue-quill --save官方地址:https://vueup.github.io/vue-quill/ 安装完成之后,把vue-quil插件下…

[单master节点k8s部署]18.监控系统构建(三)Grafana安装

Grafana是一个跨平台的开源的度量分析和可视化工具。支持多种数据源,比如OpenTSDB,Prometheus,ElasticResearch,Cloudwatch等。 Grafana安装 通过yaml配置grafana的pod和service,grafana工作在kube-system的命名空间…

小学英语语法

目录 a和an的用法名词的单复数be动词和人称代词(主格)指示代词形容词物主代词名词所有格双重所有格方位介词some,any和no的用法How many和How much的用法情态动词can的用法祈使句人称代词(宾格)常见实义动词的用法一般…