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

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|英文电报群|中文电报群

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python从0到100(三十七):数据提取的概念和数据分类

1. 爬虫中数据的分类 在爬虫开发过程中,我们会遇到多种类型的数据。了解这些数据的类型对于有效地提取和解析信息至关重要。 结构化数据 结构化数据是指具有固定格式和模式的数据,常见的结构化数据格式包括JSON和XML。 处理方式:可以直接转换为Python的字典或列表等数据类…

【UML用户指南】-27-对体系结构建模-制品

目录 1、组成结构 2、制品的种类 2.1、部署制品 (deployment artifact) 2.2、工作产品制品 (work product artifact) 2.3、执行制品 (execution artifact) 3、标准元素 4、常用建模技术 4.1、对可执…

Redis 7.x 系列【17】四种持久化策略

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 案例演示2.1 无持久化2.2 RDB2.3 AOF2.4 混合模式2.4.1 方式一:…

LLM - 神经网络的组成

1. 一个神经元的结构:即接受多个输入X向量,在一个权重向量W和一个偏执标量b的作用下,经过激活函数后,产生一个输出。 2. 一层神经网络的结构:该层网络里的每个神经元并行计算,得到各自的输出;计算方式是输入…

CISAW证书考完有什么用?值得投资吗?

CISAW证书,在信息安全领域内被公认为具有高价值的一种职业资格认证,它象征着持有者在该领域的专业技能和知识水平。 因此,CISAW证书不仅具有实质性的价值,还能为持有者带来诸多益处。 首先,拥有CISAW证书的专业人士更…

简过网:教师编制报考要求和条件,都给你汇总好了!

如果你想要考教师编,那么在考试之前你先要明白这些知识! ​ 一、什么是教师编? 在编教师拥有的编制为事业编,即在编老师为事业单位工作人员 二、考教师编需要什么条件? 1、普通话 语文学科普通话要求达到二级甲等及…

5.基于SpringBoot的SSMP整合案例-数据层开发

目录 1.新建项目 2.实体类开发: 2.1在pom.xml中增加Lombok坐标: 2.2添加Book实体类 3.数据层开发: 3.1 配置MyBatisPlus与Druid 3.2创建数据层接口 3.3写测试类 3.4点击运行: 4.数据层快速开发: 4.1配置MyB…

Camera link(学习笔记)

Camera Link协议是一种专门针对机器视觉应用领域的串行通信协议,它使用低压差分信号(LVDS)进行数据的传输和通信。Camera Link标准是在ChannelLink标准的基础上多加了6对差分信号线,其中4对用于并行传输相机控制信号,另外2对用于相机和图像采…

植物学(书籍学习资料)

包含观赏植物学、植物学、植物学百科图鉴等多本植物学方面的书籍学习资料。 图2、3为观赏植物学截图; 图4、5为植物学百科图鉴截图; 图6、7为植物学学习指南截图。

YOLO V7项目使用

YOLO V7项目使用 根据官方论文中提供的项目地址:使用git clone将项目下载到本地。 https://github.com/WongKinYiu/yolov7 git clone https://github.com/WongKinYiu/yolov7 使用pycharm打开项目,根据官方提供的requirement.txt文件下载项目启动所需要的…

ERROR | Web server failed to start. Port 8080 was already in use.

错误提示: *************************** APPLICATION FAILED TO START ***************************Description:Web server failed to start. Port 8080 was already in use.Action:Identify and stop the process thats listening on port 8080 or configure thi…

ubuntu下后台启动程序

1.启动 nohup python detect_mq.py > output.out 2>&1 & 这个命令是用来在后台运行一个 Python 脚本 detect_mq.py,并将脚本的输出重定向到文件 output.out。下面是这个命令的详细解释: nohup:这是一个命令,它告诉…

【东奥会计-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

有哪些有效的策略可以提升独立站的外链数量?

有哪些有效的策略可以提升独立站的外链数量?提升独立站的外链数量并不难,难得是不被谷歌惩罚把你的网站判定为作弊,正因如此,了解并应用GNB自然外链策略是个不错的开始,GNB外链的核心价值在于它提高了网站外链资源的自…

2024亚太赛(中文)数学建模B题Python代码+结果表数据教学

B题题目:洪水灾害的数据分析与预测 完整论文也写完了 第二问代码(1、3、4问、还有论文见文末) import pandas as pd from sklearn.cluster import KMeans import matplotlib.pyplot as plt import seaborn as sns from matplotlib import rc…

2024年软件测试岗必问的100+个面试题【含答案】

一、基础理论 1、开场介绍 介绍要领:个人基本信息、工作经历、之前所做过的工作及个人专长或者技能优势。扬长避短,一定要口语化,语速适中。沟通好的就多说几句,沟通不好的话就尽量少说两句。举例如下: 面试官你好&…

.net core 的 winform 的 浏览器控件 WebView2

在.NET Core WinForms应用程序中,没有直接的“浏览器控件”,因为WinForms不支持像WebBrowser控件那样的功能。但是,你可以使用WebView2控件,它是一个基于Chromium的浏览器内核,可以在WinForms应用程序中嵌入Web内容。 …

Science Robotics 麻省理工学院最新研究,从仿真中学习的精确选择、定位和抓放物体的视触觉方法

现有的机器人系统在通用性和精确性两个性能目标上难以同时兼顾,往往会陷入一个机器人解决单个任务的情况,缺乏"精确泛化"。本文针对精准和通用的同时兼顾提出了解决方法。提出了SimPLE(Pick Localize和placE的仿真模拟)作为精确拾取和放置的解…

昇思25天学习打卡营第9天|MindSpore使用静态图加速(基于context的开启方式)

在Graph模式下,Python代码并不是由Python解释器去执行,而是将代码编译成静态计算图,然后执行静态计算图。 在静态图模式下,MindSpore通过源码转换的方式,将Python的源码转换成中间表达IR(Intermediate Repr…

电气-伺服(6)脉冲控制

一、脉冲模式原理: 运动控制器输出脉冲信号给伺服驱动器 伺服驱动器工作于位置模式 伺服驱动器内部要完成三闭环(位置闭环 、速度闭环、电流环) 脉冲和伺服控制环:脉冲的个数作用于位置环。脉冲的频率作用于速度环 二、脉冲的两…