当前位置:首页 > 企业新闻 >

【爱超联赛】Libra新编程语言 :Move 的所有权模型灵感来源原来是它……

编辑:爱超下注平台 来源:爱超下注平台 创发布时间:2020-11-21阅读75263次
  

【爱超下注平台】智能合同是管理有价值的数字资产所有权的独特软件。 现有的编程环境可以用于跟踪资产所有权,但不需要定义所有权,通常用于表示所有权。 智能合同的独特之处在于它们所代表的价值往往必须反映在它们所持有的状态中。

随着区块链的持续发展,代表所有权的机制也有了很大的发展。 比特币由“未使用的事务输入”或UTXO中定义的所有权模型构建。 UTXO模型非常高效,但非常复杂,可能会产生异常的边缘,因此Ethereum使用了更必要的Ledger模型。

Libra区块链发布时,围绕这个项目的主要关注点是Facebook创建的区块链的政治意义,但我们这些深入研究技术细节的人由此发现了有趣的新想法。 特别是,Libra团队根据新的所有权模型为他们的Move VM定义了新的编程模型。 这种所有权模型的启发源是线性类型(Linear Types ) :资源(Resources )。

爱超联赛app

“资源”是必须用编程语言应对资产所有权的新方法。 工程师们经常被用于术语“所有权”,即跟踪代码以管理数据结构和系统资源。 这在编程环境中特别少见,内存管理几乎不会从程序员中抽象独立国家,如果对象被写入代码中,则该代码必须管理和释放分配给该对象的内存。 Resources扩展了这个概念,我们可以利用一些机制来管理以前编程语言中的“所有权”,并使用它来管理当地数字资产的可靠所有权。

Move概述: https://developers.Libra.org/docs/move-overview # move-has-first-class-resource资源类型具有非常丰富的可编程性和安全性Move类型的系统为资源提供了同样的安全。 Move资源不能复制、重复使用或销毁。 资源类型不能通过定义该类型的模块来创建或归档. 这些保证由Move虚拟机静态继续。 Libra货币构建为资源类型,在语言中没有类似的地位,每个Move资源都有一定程度的维护。

最后两点是最重要的。 1. Resource对象的类似状态必须在运行时(“Move虚拟机”)强制执行。 如果只是编译器的抽象化,恶意代码是很棒的,可以超越障碍。 2 .但是! 如果需要继续正确执行这些规则,则可以将网络上最重要的资产——本机的代币3354安全地存储在由用户提交的代码管理的数据结构中。

爱超联赛

得意起来了! 1 .什么是资源? 我们可以用令牌(NFT )无法代替的例子(例如CryptoKitty )来解读资源。 每个CryptoKitty都是不可分割的,无法复制,有符合资源编程结构的必要所有者。

在Ledger模型(如Ethereum )中,所有CryptoKitties都作为巨大的列表存储在智能合同中。 更改Kitty所有权的唯一方法是通过在中央帐簿中存储每个所有者的帐户ID来跟踪Kitty的所有权,从而联系中央帐簿,拒绝修订与Kitty相关的帐户ID。 contractkittyledger { struct kitty { privletkitties : { int : kitty } fun transfer (kitty id 3360 int ),newowner 3360 account id ) {2} tellsthecentralledgertoassignownershipof//mykittyidtoadifferentaccountcentralkittyledger.transfer (mykittyid,mykittyid ) 就像现实世界一样,通过占有来回应所有权。

你需要通过中央分类帐调查自己是否享受着什么。 你可以不在自己的账户里,也可以不留下。 如果你享受它,你就可以展开和控制它。 如果你不享受它,就不能捕捉或改变它。

contractcryptokitties {//accountsstoreacollectionintheiraccountstorageresourcekittycollection {//eachcollectionh movestoredresourcesinandoutfunwithdraw (kitty id : int ) : cryptokittyfundeposit (kitty 3360 crypto kitty ) }//theresourceobjectsthatcanbestoredinthecollectionresourcecryptokitty { } } transaction (signer : account ) {//removesthekittyfroms andstoresit//temporarilyonthestack.letthekitty-signer.kitty collection.withdraw (kitty id 3360 mykittyid ) movesthekittyintothereceiver ' saccountletreceiver=get account (receiver account id ) receiver.kitty collection.3360是分类帐和必要所有权模型简单来说,将某个东西标记为Resource代表了这个数据结构所具有的有形价值,与该数据结构相互作用的所有代码为了确保该数据结构的价值,必须遵循一系列类似的规则那么,这些规则有什么呢? 1 .各资源在某个时刻不能不存在于一个地方。 Resources不能用编程错误或恶意代码展开复印或交通事故。 2 .资源所有权根据其存储场所的不同而要求。

爱超联赛app

要确认所有权,必须查询中央总账。 3 .只有所有者才能采访资源上的方法。 例如,只有CryptoKitty的所有者才能生成新的Kitty。

2 .为什么资源是最重要的? 正如概述中所述,智能合同特别适合管理宝贵资产的所有权,但许多编程语言(甚至是专门为智能合同设计的编程语言)都是用于管理所有权的本机抽象(native abstractions ) 把这种抽象化纳入协议层面似乎有根本意义。 但是,除了用于Resources之外,还有一些优点。 状态可租赁的智能合同平台需要以某种方式支付状态租金,以便向存储在区块链中的数据支付费用或从工作中集中删除。 在分类帐模型中,很难告诉谁应该支付这些租金。

例如,CryptoKitties协议代表数万名用户,约有200万Kitties和最多111MB的链上数据。 Ethereum不能公正地向所有这些Kitty所有者支付租金。 资源类型的必要所有权模型允许每个Kitty (连同该用户的其他资产)存储在该所有者的帐户中。 支付存储费用的责任非常明确。

此外,个人用户(在客户端软件的帮助下)可以记录未使用的资产,以降低成本和提高网络阻抗。 “灵活所有权”(Flexible Ownership )使用分类帐模型作为所有权不可用的所有者关系类型。 例如,ERC-721定义了NFT的所有权模型。 在这个模型中,我们假设只有Ethereum地址可以使用NFT。

但是,在一些用例中,资产本身享受其他资产(例如CryptoKitty拥有可爱的墨镜)的想法非常有趣,因此必须创立新的规范(ERC-998 )。 ERC-998非常强大,但比ERC-721简单得多。 正确地继续执行该规范非常困难,实质上不可能有效地适用于现有的ERC-721资产。

必要的所有权模型必须将用于资源类型部署建模的所有资源安全地保存在系统中的任何位置. 还包括其他资产的“内部”(如果受限制)。 所有安全和价值的确保都可以通过运行时的系统部署来确保。

为开发者提供灵活性,同时带来不必要的复杂性。 基于能力的安全(c爱超联赛apability-basedsecurity )资源类型获得了构建基于能力的安全模型的“功能”概念所需的所有保证。 Capabilities是定义安全系统的强大机制,比安全系统中罕见的最佳做法principleofleastprivilege (principleofleastprivilege )更传统一般来说,基于能力的安全模型获得了更强的灵活性,同时容易展开推理小说(这增强了安全)。 交接性bugs (Eliminatingreentrancybugs ) Ether EUM史上最有名的智能合同bug是交接性问题引起的,Solidity开发者为了避免引进容易受到交接性反击的逻辑流而大幅提高警惕Ethereum史上最有名的智能合同BUG:https://www.Wired.com/2016/06/50-Million-Hack-Just-Showed-DAO -。

这可能是非常大胆的主张! 但是,这意味着每个:Resources的所有者很自然地按照Resources的定义,只有该所有者才能调用Resources上的方法。 如果Resources方法位于“堆栈上”,请告诉该对象的各个所有者已经在使用中。 我们不能获取从该方法内部调用的任何代码(间接)对该对象的第二个引用,展开可继承的方法调用。

爱超联赛

当然,全局共享状态(跨资源对象)需要的可能是创建容易受到继承可能性错误影响的代码。 这就是惯用的Cadence style将所有共享状态用于资源的理由,熟悉资源的智能合同制定者需要担心交接性错误的问题! Flow的编程语言Cadence被用于Resources,在去年对更好的智能合同语言展开学术研究后,Flow研究开发小组调查了Linear Types在区块链环境中的使用。 完全正确,Libra的团队宣布了它的第一次发布。

其中包括MoveVM的技术细节。 学术研究:~balzers/Publications/digital _ contracts _ as _ session _ tyPes.PDFresourcetyPes的强大功能使我们感到愤慨。 资源级别是比EVM和WASM更丰富的可分组选项,是数字资产的极其自由的选择(特别是NFT! )人员组合性: https://hacker noon.com/software-composability-in-crypto-a 705700 c 3816 cadence通过符合人体工程学的语法强大的静态类型系统运行然后允许所有方法、模块和事务包括前置条件和后置条件,强制执行预期的不道德行为。 他指出,这并不容易自学和审查语言,最终并不比所有现有的自由选择更有效率。

|爱超下注平台。

本文来源:爱超下注平台-www.androgan.com

0224-53976864

联系我们

Copyright © 2010-2014 阿勒泰地区爱超下注平台股份有限公司 版权所有  新ICP备83351612号-9