<100 subscribers
Share Dialog
Share Dialog


目前,区块链语言场景的主要参与者是Solidity。作为最早的区块链语言之一,Solidity旨在使用众所周知的数据类型(例如字节数组、字符串)和数据结构(如哈希图)实现基本的编程语言概念,并能够使用众所周知的基础构建自定义抽象。
然而,随着区块链技术的发展,区块链语言的主要目的是使用数字资产进行操作,这些语言的主要质量是安全性和可验证性(这是额外的安全层)。
Move是专门为解决这两个问题而设计的:数字资产的代表性和对它们的安全操作。为了提供额外的保护,它与Move Prover验证工具共同开发。这允许Move开发人员为其应用程序的关键正确性属性编写正式规范,然后使用证明器检查这些属性是否适用于所有可能的事务和输入。
EVM和Move之间的一个根本区别是资产的数据模型:
EVM资产被编码为owner_address -> 哈希映射中的条目。资产通过更新此地图中的条目来更新和传输工作。没有代表资产的类型或值,因此资产不能作为参数传递,不能从函数返回,也不能存储在另一个资产中。只有非结构化的字节才能跨越合同边界,因此每项资产都永远被困在定义它的合同中。 移动资产是任意用户定义的类型。资产可以作为参数传递,从函数返回,并存储在其他资产中。此外,由于Move内置的资源安全1 2保护,资产可以自由跨越合同边界,而不会失去完整性。 Sui大量利用Move数据模型来提高性能。Sui的持久状态是一组可编程的Move对象,可以通过事务更新、创建和销毁。每个对象都有所有权元数据,允许Sui验证器使用对象与因果无关的事务并行执行和提交事务。Move的类型系统确保了跨执行的所有权元数据的完整性。结果是一个开发人员编写普通Move智能合同的系统,但验证者利用数据模型尽可能高效地执行和提交交易。 对于EVM数据模型来说,这根本不可能。由于资产存储在动态可索引的地图中,验证器将无法确定交易何时可能触及同一资产。Sui的并行执行和承诺方案需要像Move这样的语言来描述可以在合同之间自由流动的结构化资产。坦率地说:即使我们更喜欢EVM/Solidity to Move,我们也无法在Sui中使用它们而不牺牲使Sui独一无二的性能突破。 Move的主要优势之一是数据可组合性。总是可以创建一个新的结构(资产)Y,其中将持有初始资产X。更重要的是,通过添加泛型,可以定义泛型包装器Z(T),该包装器将能够包装任何资产,为包装资产提供额外的属性或将其与其他资产相结合。 参考文献: https://github.com/MystenLabs/sui/blob/main/doc/src/learn/why-move.md
目前,区块链语言场景的主要参与者是Solidity。作为最早的区块链语言之一,Solidity旨在使用众所周知的数据类型(例如字节数组、字符串)和数据结构(如哈希图)实现基本的编程语言概念,并能够使用众所周知的基础构建自定义抽象。
然而,随着区块链技术的发展,区块链语言的主要目的是使用数字资产进行操作,这些语言的主要质量是安全性和可验证性(这是额外的安全层)。
Move是专门为解决这两个问题而设计的:数字资产的代表性和对它们的安全操作。为了提供额外的保护,它与Move Prover验证工具共同开发。这允许Move开发人员为其应用程序的关键正确性属性编写正式规范,然后使用证明器检查这些属性是否适用于所有可能的事务和输入。
EVM和Move之间的一个根本区别是资产的数据模型:
EVM资产被编码为owner_address -> 哈希映射中的条目。资产通过更新此地图中的条目来更新和传输工作。没有代表资产的类型或值,因此资产不能作为参数传递,不能从函数返回,也不能存储在另一个资产中。只有非结构化的字节才能跨越合同边界,因此每项资产都永远被困在定义它的合同中。 移动资产是任意用户定义的类型。资产可以作为参数传递,从函数返回,并存储在其他资产中。此外,由于Move内置的资源安全1 2保护,资产可以自由跨越合同边界,而不会失去完整性。 Sui大量利用Move数据模型来提高性能。Sui的持久状态是一组可编程的Move对象,可以通过事务更新、创建和销毁。每个对象都有所有权元数据,允许Sui验证器使用对象与因果无关的事务并行执行和提交事务。Move的类型系统确保了跨执行的所有权元数据的完整性。结果是一个开发人员编写普通Move智能合同的系统,但验证者利用数据模型尽可能高效地执行和提交交易。 对于EVM数据模型来说,这根本不可能。由于资产存储在动态可索引的地图中,验证器将无法确定交易何时可能触及同一资产。Sui的并行执行和承诺方案需要像Move这样的语言来描述可以在合同之间自由流动的结构化资产。坦率地说:即使我们更喜欢EVM/Solidity to Move,我们也无法在Sui中使用它们而不牺牲使Sui独一无二的性能突破。 Move的主要优势之一是数据可组合性。总是可以创建一个新的结构(资产)Y,其中将持有初始资产X。更重要的是,通过添加泛型,可以定义泛型包装器Z(T),该包装器将能够包装任何资产,为包装资产提供额外的属性或将其与其他资产相结合。 参考文献: https://github.com/MystenLabs/sui/blob/main/doc/src/learn/why-move.md
No comments yet