Move 编程语言的工作原理

编程语言——“用于创建软件程序的一组命令、指令和其他语法。” Move 是 Diem 的编程语言,它支持加密货币的基本功能以及为 Diem 构建未来的应用程序。

了解 Diem 背后的软件

上个月,Meta 宣布将其 Diem 稳定币出售加密货币领域的顶级银行 Silvergate。(有关此次销售和 Silvergate 的详细信息,请查看我们最近的报告。) Silvergate 运营着Silvergate 交易网络 (SEN),这是一个被许多顶级加密货币交易所使用的 24/7 资产转移系统。Silvergate 计划使用他们收购的 Diem 基础设施为 SEN 引入美元支持的稳定币

Silvergate 支付近 2 亿美元购买的 Diem 软件包的一个关键部分是 Move 编程语言。Diem(以前的 Libra)项目在 Meta 上花了这么长时间的大部分原因是为加密货币创建了一种专有的编程语言。在本文中,我们将看看 Move 的亮点及其未来用途,因为 Silvergate 描绘了 Diem 的未来。

关键术语

在我们走得更远之前,我们需要定义一些关键词汇。请注意,这篇文章非常技术性。

编程语言——“用于创建软件程序的一组命令、指令和其他语法。” Move 是 Diem 的编程语言,它支持加密货币的基本功能以及为 Diem 构建未来的应用程序。

区块链——“一个包含信息(如金融交易记录)的数字数据库,可以在一个大型去中心化、可公开访问的网络中同时使用和共享。” 区块链为加密货币提供动力,为发生的交易创建不可变的账本。在将交易输入记录之前必须达成共识。

Blockchain Trilemma –实现区块链网络的安全性(抵抗攻击)、可扩展性(增长能力)和去中心化(分布在地理和用户之间)的困难。到目前为止,区块链一直在努力实现这三个目标。当今许多顶级区块链,例如以太坊,都是安全且去中心化的。但是,这会导致速度慢和交易费用高,从而对其可扩展性产生负面影响。与大多数区块链一样,Diem 旨在解决三难困境。移动是该解决方案的很大一部分

线性逻辑 – Jean-Yves Girad 在 1987 年创建的数学逻辑系统,强调公式作为资源,而不是完整的真理或需要完整的证明。关键的变化是资源只能使用一次,而不是永久真实。(即“如果你给我 A 一次,我就给你 B 一次”,而不是“A 可以交换 B”。)这使得线性逻辑在计算机科学中很有用,其中将公式限制在资源而不是处理作为一个普遍真理,它可以实现更通用的系统。

资源 – 线性逻辑系统的基本单位。在 Move 中,“资源永远不能被复制或隐式丢弃,只能在程序存储位置之间移动。” 对令牌、分类帐和其他区块链元素的永久化需求是为什么要使用线性逻辑,特别是资源来构建 Move 语言的原因。

什么是Move?

Move 是为 Diem 区块链设计的编程语言。Move 和 Diem 都是由 Meta 支持的技术联盟 Diem 协会创建的。最近,包括 Move 语言在内的 Diem 项目被卖给了 Silvergate

Move 的可执行格式是“字节码,比汇编高级,比源语言低。字节码由字节码验证器在链上检查资源、类型和内存安全,然后由字节码解释器直接执行。” 与以太坊相比,这种机制旨在最大限度地提高安全性,不增加交易的编译成本,最大限度地减少汽油费。这是 Move 试图通过其设计解决三难困境的一个例子。

资源:是什么让 Move 动起来

Move与其他编程语言的主要区别在于它对资源的使用,这是从线性逻辑的数学思想中提取的。在线性逻辑中,公式被视为只能使用一次的基本资源。之后,在 Move 中,“资源永远不能被复制或隐式丢弃,只能在程序存储位置之间移动。” Move 允许开发人员对被视为“一流”且无法复制或删除的自定义资源类型进行编码。

这是由Move 的静态类型系统启用的。这意味着编程语言中的变量必须定义为某种类型(即数字或单词)。在 Move 中,该系统保护了资源的一流性质。但是,资源仍然可以与任何其他受保护较少的元素类似地使用。它们可以存储在数据结构中或作为参数传递给过程(作为用于计算的值提供)。

这一切都意味着 Move 中的资源具有高水平的安全性和表现力。它们在代码中受到保护,但也可以自由地用于各种操作。这种组合非常适合区块链编程,因为它解决了三难困境的安全性和可扩展性方面。目前,“ Diem 币、交易处理和验证者管理”都使用 Move 编码为资源。  

Move的野心

Move 白皮书明确列出了该语言的设计动机。他们还注意到创建公共区块链系统的挑战,这不仅影响 Move,而且影响所有区块链编程语言。

他们主要指出,Diem(Libra)必须是一个“开放系统”,任何人都可以查看区块链的状态并提交交易。这与传统的资产管理软件(如数字银行服务)截然不同,因为它们是深度封闭的系统。只有具有特殊权限(其中有许多级别)才能访问,并且对于其他用户的透明度非常有限。

但在区块链中,“所有参与者都是平等的”。这带来了许多挑战。一个主要的问题是防止提交无效交易,例如一个用户试图转移另一个人的资产。此外,区块链必须捕捉到传统货币难以在软件中执行的两个方面。首先是稀缺;必须禁止复制资产,并应赋予创建新资产的特权。(在一个平等、开放的系统中实现这种特权尤其困难,并且极大地限制了这种系统的去中心化。)其次是访问;用户控制和保护其资产的能力至关重要。在 Move 中使用受保护的一流资源在很大程度上是为了解决这些稀缺性和访问问题。

工程团队列出了他们在现有区块链语言中发现的三个关键问题,特别是比特币脚本和以太坊虚拟机(分别是比特币和以太坊的主要编程语言)。

  1. 资产的间接编码

由于编程是以数学方式执行的,因此许多不同的元素都表示为整数。这包括像加密货币这样的区块链资产,比特币和以太坊就是这种情况。Move 的工程师认为这使得编写基于加密资产的程序变得“尴尬且容易出错”。这就是为什么 Move 将 Diem 表示为一种资源。

  1. 不可扩展的稀缺性

比特币和以太坊的语言在保护其主要加密货币的稀缺性方面做得很好。然而,这些语言并不适合创建具有稀缺品质的新资产。这是以太坊虚拟机的特殊问题,它允许基于以太坊区块链创建 ERC-20 代币。在这些情况下,开发人员必须在没有语言支持的情况下自行设计稀缺性。移动试图改变这一点。

  1. 不灵活的访问控制

与稀缺性一样,比特币和以太坊严格控制其主要加密货币的访问权限,从而使所有权和转让无法被篡改。然而,这并不容易扩展到其他元素,也不能自定义访问级别或方式。与稀缺性一样,Move 的工程师试图使这些功能更具可扩展性和可定制性,以使语言更具通用性和可扩展性。

关于pontem

Pontem NetworkDiem 的最佳实验平台,Diem是由 Meta 支持并由 Silvergate 拥有的许可区块链。我们的激励性测试网、Move VM 智能合约平台我们的低代码开发工具 Pontem Blocks使开始为 Diem 构建成为可能。Pontem 为希望为 Silvergate 交换网络和 Meta 的 metaverse 设计项目的开发人员提供了一个良好的开端。

原文链接:https://pontem.network/posts/how-the-move-programming-language-works

所有文章项目介绍

Pontem Network 和 Aptos Labs 合作开发将 Aptos Layer 1 带入主流的产品

2022-8-9 18:22:38

所有文章项目介绍

zCloak 会员凭证活动教程

2022-8-15 16:33:15

搜索