Move创始人揭秘:Sui Move如何助力Web3产品开发

专访Move语言创始人:为什么Sui Move智能合约语言适合构建Web3产品?

近日,我们与Mysten Labs的首席技术官、Move编程语言创始人Sam Blackshear进行了交谈,讨论了他为什么开发Sui Move这种新的智能合约编程语言、Sui能够扩展的功能以及去中心化技术对构建者的好处。

以下为本次采访内容:

Q1、首先,您能概述一下编程语言是什么,开发者在选择编程语言时最关注的品质是什么,以及是什么推动您开发自己的编程语言吗?

编程语言是一种与计算机进行友好、安全、高效和明确交互的工具。对计算机来说,这一点尤为重要。我们不能用自然语言与计算机交流,因为自然语言的整个意义在于丰富性和表达能力。当你用稍微不同的语气或选择细微不同的方式来表达词汇时,你的句子或段落意思就会完全不同。

而在编程语言中,最重要的是具备精确定义的语义。当你编写一个程序时,你清楚它将要做什么。如果你对它进行微小的调整,你知道这个变化会产生什么结果。这一点在多个层面上都需要保持,比如你可以用一种源语言编写代码,它有一种含义,然后被转换为其他形式表示,那它也应该具有相同的含义,直到触达机器的处理模块也是这样。

我认为,与自然语言不同,编程语言的本质是针对特定领域或特定任务的。否则只用一种编程语言,就可以完成所有任务。但之所以存在多种编程语言,是因为你不可能在所有领域都表现得很好。它们正在努力针对特定的问题领域进行目标定位,并且专注于解决这些问题。举个例子,如果你看看我们用来编写Sui区块链和在Mysten进行的大部分其他系统工作的Rust编程语言,它专注于编写既快速又高性能的代码,同时保证安全性。它让你能够接触到内存、线程结构或并发等底层细节,但不会像之前的语言(如C或C++)那样让你在其中犯错。

因此,Move的故事与此非常类似。当我创造它时,并不是为了创造一种新的语言。你之前提到开发者在一种语言中寻找什么。他们会问,"这个语言对我想要完成的任务是否适用?"但我认为可能更重要的是,"这种语言是否有一个庞大的社区?是否有很多可用的数据库?是否有很多程序员在使用?是否有良好的教育资源?"这些都非常重要,因此创造一种新语言的门槛必须非常高,即使这种语言本身更好,但是如果它没有这些因素,那么它的优势就没有意义。从零开始建立一个庞大而充满活力的社区是非常困难的。

Q2、您能分享更多关于Move的开发情况吗?

Move起源于Facebook的Libra项目。我当时的任务不是创建一种新的语言,而是"Libra需要有智能合约,所以找出我们应该做什么。"我看了各种各样的东西。我们能在EVM中使用Solidity吗?我们是否应该使用常规的通用语言,比如WASM或JVM,并将其用于Libra?还是应该创建我们自己的东西?

决定创建我们自己的东西是基于对现有智能合约的研究,了解程序员试图做什么,以及某些语言在帮助他们的地方和让他们失望的地方。我的结论是,在很多情况下,现有的智能合约语言确实让他们失望。

这一点可以从Solidity糟糕的安全记录中清楚地看出,但更基本的是,这些智能合约不是非常传统的程序类型。Solidity并不是为现在人们所做的事情而构建的语言。我不是要批评它,因为它是第一种智能合约语言,它还不知道人们想用它做什么。一旦你看到人们试图用它做什么,我认为很明显,你需要一组不同的抽象和编程工具,而Solidity语言提供不了。

所以这些智能合约非常简单,它们基本上做两件事情。它们定义了资产的类型,包括何时可以转移资产、你可以用它们做什么、谁可以读取它们、谁可以写入它们的规则。并且检查访问控制策略,确定谁拥有该资产,谁被允许使用它,谁被允许对其进行操作。一切都围绕着资产,你希望这些资产具有与物理资产相同的属性。如果我把东西交给你,那么你应该拥有它,我就不再拥有它了。

智能合约中有所有权和所有权转让的概念,但在计算机上,一切都只是数位和字节,并且可以自由复制。而且,你知道,这些概念在现实世界并不存在。因此,你希望有一种语言能够为你提供有关所有权和同质化的良好抽象。就像在现实世界中一样,但无需强迫程序员重新发明它。你希望获得基本的安全保证。

这就是Move的作用以及为什么我们最终创建了这种新的语言。这些任务对于智能合约编程来说是基本的。它们很难在其他语言中重新创建,包括现有的智能合约语言,我们希望围绕提供这些基本功能的整个语言进行设计,以便程序员可以安全高效地编写代码,而不必每次想编写一些代码时都重新发明轮子。

Q3、Sui使用了Move的一种变体,称为Sui Move。是什么促使了这些变化?Sui Move的哪些特点非常适合在Web3中构建产品?

以下几个因素促使了这些变化,其中一个是最初的Libra项目的目标是构建一个合规的支付网络。因此,我们试图设计Move作为一种通用的语言。但我们还有意识地做了一些事情,因为Libra希望具备限制条件。其中一个重要的事情是,他们不希望人们能够将某些资产发送到任何地方。他们希望人们明确地创建一个账户,并在账户创建时设置一些规则,比如账户的所有者必须进行KYC认证。或者可能需要支付费用来创建账户,或者只能由拥有创建账户权限的一小部分人来创建账户。由于整个目的是Libra希望进行合规支付和合规智能合约,所以存在这些限制。但在更通用的Web3领域,情况恰恰相反。你不希望在基础层面上进行合规,这是智能合约的概念。你希望事物尽可能自由,完全可以将某物发送到任何地址。然后你不应该进行显式的账户创建,因为这将阻塞各种用例。这是一个重要的因素。

另一个因素是,尽管我们在Move中专注于资产,但当时在Libra中我们并没有考虑如何将资产的关注点引入交易本身。因此,当你到达交易层级时,你仍然只有这个API,其中你输入数字和布尔值等不是资产的东西,然后在Move中,你使用这些数字来从账户中提取资产并进行其他操作。事实证明,你运行的大部分代码都是这种令人讨厌的记簿工作,其中包括取出这个东西,取出那个东西,取出其他东西,好的,我拥有了所有我想要的资产。它们在这里,在我的工作室里,现在我可以开始做一些有意义的事情了。然后在此过程的末尾,你可能会说:"好的,将这些资产放回这个账户,将它们放回那个账户,重新组织它们。

在Sui中,我们经过深思熟虑,如果每个程序都以这种方式开始和结束,我们是否可以将其抽象出来?因此,用于处理交易的逻辑将为程序员完成此操作,从程序员的角度来看,他们只需准备好所需的资产,立即开始进行有趣的工作。这就是存在于Sui中的以对象为中心的数据模型。在原始的Move中,我们拥有基于账户的数据模型,资产存储在账户下,并且程序员必须明确地提取它们。而在Sui中,它们在进入交易的Move部分时,已经被Sui运行时获取到资产。这对程序员来说更方便,因为他们不需要进行所有这些之前和之后的记簿工作,而且这也是允许我们在不实际执行的情况下确定是否可以将一个交易与另一个交易并行运行、将Sui进行水平扩展以及更高效地进行其他一些操作的秘密武器。

我们还进行了其他一些非常有趣的工作,比如利用基于对象的数据模型进行可编程的交易块。这是一个偏技术性的话题,我很乐意深入讨论。但这两个因素是导致与原始Move的分歧的主要动力。

Q4、能请您能分享更多关于可编程交易区块及其功能的信息吗?

我喜欢使用一个类比来解释,其他区块链就像一个购物中心的美食广场。你想吃一份冰淇淋,你去冰淇淋摊位,拿出你的信用卡付款。但是如果你决定还想吃一个汉堡,然后你去汉堡摊位,再次付款。我不是个贪吃的人,但是如果我想吃八样东西,我就必须进行八次单独的交易。而Sui更像是一个自助餐,每个交易不只是一件事。一旦你支付了自助餐的费用,你可以做很多事情而无需额外花费。你可以吃冰淇淋,你可以吃汉堡,你可以将它们混在一起。

为了让这个概念更具体一点,在简单的情况下,如果你要发送100个交易来铸造100个NFT,你可以发送一个铸造100个NFT的交易。这样的成本与铸造一个NFT的成本几乎相同。你还可以进行异构交易打包,比如区块中的第一个交易从你的多签钱包中取出一个马里奥角色,而第二个交易则请求一个马里奥,然后允许你玩游戏。如果你赢得游戏并获得奖杯,也许第三个交易会将奖杯放入一个与朋友共享的奖杯柜中。很酷的是,可编程交易区块允许程序员以这样的方式编写代码,游戏不必知道多签钱包或马里奥的存储方式,它也不必知道你的奖杯柜或其实现方式。

可编程交易区块由具有输入和输出对象的交易组成。如果你需要一个输入对象,可以获得该对象,而无需关心它来自哪里,然后将其输出传递给需要它的对象,同样也无需关心它将传递给哪里。在其他区块链中,耦合性更强,因此游戏必须与多签钱包和奖杯柜进行集成,或者它们都必须实现一些共同的接口并具有更强的耦合性。Sui使得所谓的临时组合变得更加容易。就像,如果管道匹配,我们可以在一个交易中完成。

Q5、那可编程交易区块对于用户来说有什么好处呢?

对于用户来说,可编程交易区块的好处包括更低的gas费用,因为你可以将所有操作打包到一个交易中,而不是进行单独的交易。此外,需要批准的次数也会减少。如果你使用的系统需要交易批准,你只需要进行一次批准,然后它就会一次性完成所有操作。另外一个好处是原子性,如果你想做三件不同的事情,并且希望只有在前两个操作成功后第三个操作才能成功,如果这些操作必须是独立的交易,那么你无法实现这一点。但是,如果你可以将它们都放在一个交易中,那么你就可以轻松实现这一点。

Q6、我听过您和其他人谈论,在Sui上进行开发对于程序员来说是一次很棒的体验,而且这很重要。对于有经验的和新的Web3程序员开始使用Sui Move时,您有什么轶事可以分享吗?

对于那些来自其他Web3编程语言的开发者来说,他们在Move和Sui Move上的开发体验确实更加高效,而且更安全。我刚刚参加了一个关于Bucket Protocol的播客节目,他们正在Sui上构建一个非常酷的

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 分享
评论
0/400
Gas_Optimizervip
· 9小时前
move搞起来!
回复0
GasOptimizervip
· 07-17 16:03
tps 会比 ETH 快 8.64 倍 已算完
回复0
空投猎手vip
· 07-15 22:08
又一个噱头营销,谁研究过早期合约代码?
回复0
Hodl熊本熊vip
· 07-15 22:04
看数据不对劲哦Move爹爹
回复0
Crypto冒险家vip
· 07-15 22:02
梭哈就完事 太久没看move了
回复0
Degen4Breakfastvip
· 07-15 21:57
move又来吹牛了
回复0
NFT慈善家vip
· 07-15 21:54
嗯,又一个Web3创始人想用他们的技术堆栈拯救我们
查看原文回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)