首页 > 今天的加密货币新闻
bitcoin
bitcoin

$96418.721981 USD

-2.05%

ethereum
ethereum

$2687.739314 USD

-2.74%

xrp
xrp

$2.588011 USD

-3.00%

tether
tether

$0.999825 USD

-0.04%

bnb
bnb

$656.326573 USD

0.40%

solana
solana

$171.386564 USD

-2.54%

usd-coin
usd-coin

$1.000043 USD

0.01%

dogecoin
dogecoin

$0.244077 USD

-3.80%

cardano
cardano

$0.767310 USD

-3.77%

tron
tron

$0.237868 USD

-4.90%

chainlink
chainlink

$17.505561 USD

-4.59%

sui
sui

$3.344930 USD

-4.57%

avalanche
avalanche

$24.939290 USD

-1.00%

stellar
stellar

$0.327623 USD

-3.46%

litecoin
litecoin

$129.677981 USD

-3.20%

移动(编程语言)

什么是 Move(编程语言)?

Move 编程语言最初用于构建 Diem 区块链。它是由 Diem Association 创建的,该协会是 Meta 支持的技术联盟。尽管区块链最终被废弃,Move至今仍在使用。

Move 编程语言是一种可执行的字节码语言。它实现智能合约和自定义交易。 Move 旨在解决其他区块链编程语言(例如 Solidity)引起的问题。然而,实现数字稀缺和对数字资产的控制的基本目标保持不变。特别是,它还旨在防止双重支出,并使数字资产持有者能够维护所有权信息。

在此过程中,Move 最大限度地提高了安全性,同时保持了精简的设计,并且比非 Move 构建的区块链显着降低了 Gas 成本。

Move 编程语言如何工作?

Move 使用线性逻辑,这意味着资源只能使用一次,并且永远不会复制或隐式丢弃。这允许开发人员对无法删除或复制的自定义资源类型进行编码,并且比其他资源类型得到更好的处理。

Move 的静态类型系统是变量必须定义为类型(数字/字)的地方。它保护优先资源。尽管如此,它们仍然可以像常规元素一样使用并存储在数据结构中或作为计算中的值提供。资源在模块中也是透明的,并且隐藏起来,不被外部资源调用。

此外,Move中的模块灵活且安全,因为模块、资源和过程之间的关系就像面向对象编程中类、对象和方法之间的关系。

Move还可以验证链上的所有安全特征,并支持链下静态验证工具。这大大降低了链上验证的复杂性。其设计基于三个核心决策:

  • 缺乏动态调度避免了调用图构建并实现了调用站点的静态确定。这使得 Move 能够更轻松地识别过程调用的效果,并且不会产生额外的复杂性。

  • 由于其模块化,可以隔离模块以进行功能验证,并且它们有助于抽象数据和本地化资源上的关键操作。通过将模块与语言的类型系统一起封装来保证安全性,这意味着模块外部的代码不能违反其类型。此外,通过检查孤立的模块,它将为重要的模块不变量提供彻底的功能验证。

  • 最后,其有限的可变性允许使用类似于 C++ 的引用类型。引用对于改变每个 Move 值至关重要,并且通常会在转录脚本中创建和销毁临时值。与 Rust 类似,Move 的字节码验证器“借用检查”来确认至少一个可变引用。

最后,Move 会拒绝不遵循类型安全、内存安全和资源安全的程序。相反,可以使用带有编译器的高级编程语言,负责检查属性。另一种选择是带有安全检查的低级无类型程序集。

Move 编程语言有何不同?

Move 编程语言在以下几个方面与其他区块链编程语言脱颖而出:

  • 它在定义过程的自定义数据类型方面没有限制。

  • 它将访问控制策略嵌入到语言语义中。

  • 它废除了数字资产的默认类型系统(与比特币或以太坊不同)。

  • 它允许查找具有编程语言表示的单个资产。定制资产应由其开发人员审查其安全属性。

这使得 Move 能够轻松创建稀缺的新资产,而无需强迫开发人员自行设计。此外,它允许开发人员修改和自定义访问控制,使编程语言比其竞争对手更加通用和可扩展。

Move 编程语言的组成部分

Move 编程语言具有构成其基础的多个组件。

类型

这些可以是布尔值、无符号整数(64 位)、固定大小字节数组和地址(256 位)数据类型。

结构体

两种具体类型:友善的和不受限制的。前者指资源结构,后者指一般结构。

程序

公共方法或内部方法。非循环模块依赖性有助于防止任何重新进入攻击。

字节码验证器

专注于在模块发布之前检查安全特征。在程序在网络上运行之前,它们会经过验证器并通过几个验证阶段,例如:

  • 类型检查

  • 堆栈平衡检查

  • 背景调查

  • 控制图开发

  • 参考链接

  • 资源检查

字节码解释器

它遵循验证,类似于以太坊使用gas。因此,它确保无限循环执行。

移动虚拟机

与其他区块链类似,区块包含多个交易,每笔交易的执行都会产生交易效果。该效果生成区块链的更新的全局状态,并且效果和状态转换之间是分离的。

哪些区块链使用 Move 编程语言?

Move被Meta用在废弃的Diem区块链中。当前构建在 Move 上的区块链包括 Aptos 区块链和 Sui 区块链。