Site Overlay

【彩票软件】Resources为区块链上的所有权编程

本文摘要:智能合同是管理有价值的数字资产所有权的独特软件。

智能合同是管理有价值的数字资产所有权的独特软件。现有的编程环境可以用于跟踪资产所有权,但通常不需要定义所有权,而是作为表示所有权的场景使用。

智能合同的独特之处在于它们所代表的价值往往必须反映在它们确保的状态中。随着区块链的发展,代表所有权的机制也在发展。比特币是根据“未使用的交易输入”或UTXOs中定义的所有权模型构建的。

UTXO模型非常高效,但非常复杂,可能会产生奇怪的边缘状况,因此Ethereum使用了更简单的分类模型。Libra区块链发布时,围绕这个项目的主要兴趣是Facebook创建的区块链的政治含义,但深入研究技术细节的人们发现了非常有趣的新想法。

特别是,Libra团队为MoveVM定义了新的编程模型。该模型是围绕新的所有权模型定义的,而不受到Linear Types:Resources的灵感。资源是必须用编程语言应对资产所有权的新方法。

工程师经常使用“所有权”一词来比喻性地跟踪哪些代码负责管理数据结构和系统Resources。这个比喻是编程环境中最罕见的,在内存管理几乎不从程序员那里抽象化的环境中,代码“享受”对象意味着代码必须管理和释放分配给该对象的内存。

由于Resources拓展了这个想法,我们可以利用以前编程语言中一些比喻性的管理“所有权”的机制,来管理当地数字资产的切实所有权。Move的主要特性是定义自定义资源类型的能力。Resources类型用于编码具有非常丰富的可编程性的安全数字资产。Move系统为Resources得到了同样的安全确保。

不能重复Move Resources,不能购物,不能废弃。资源类型不能通过定义该类型的模块来创建或归档. 这些保证由Move虚拟机静态强制执行【.】Libra货币构建为Resources类型,在语言上没有类似的地位,所有Move Resources都有完全相同的维护。

最后两点是最重要的。1.Resources对象的类似状态必须在运行时(“Move虚拟机”)强制执行。如果这些只是编译器抽象化,恶意代码就容易破坏值的确保。

2 .但是! 如果继续正确执行这些规则,网络最重要的资产——本地代币3354可以安全地存储在由用户提交的代码管理的数据结构中。多么强啊! 那么,Resources到底是什么呢? 最简单的方法是以非交换令牌(NFT )为例,例如加密猫。

各加密模块不可分割,不能复制,也可以有需要指定给Resources编程结构的所有者。在以太网坊这样的台帐模型中,所有的加密猫都存储在一个智能合同中,构成了一个大列表。每个猫的所有权通过将每个所有者的帐户ID存储在中央帐簿中来跟踪。

改变猫所有权的唯一方法是联系中央帐簿,拒绝改版与猫关联的帐户ID。contractkittyledger { struct kitty { } privletkitties : { int : kitty } fun transfer (kitty id 3360 int,newowner 3360 account id ) {0} 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 .注:分类帐和必要所有权模型的简单来说,把某个东西标记为“Resources”传达给编程环境。这个数据结构代表某种有形的价值,与该数据结构交互的所有代码必须遵循确保该数据结构价值的一系列类似规则。

那么,这些规则是什么呢? 1 .各Resources在任何等价的时间正好不存在于一处。由于编程错误和恶意代码,也不能复制资源或在交通事故中删除资源。

2 .资源所有权由其存储位置定义。确认所有权时,不需要查询中央总账。3 .对资源上方法的采访仅限于所有者。

例如,只有加密的猫的主人才能启动选育操作者,新的猫问世。为什么资源是最重要的? 如章所述,智能合同是唯一适合管理有价值资产所有权的,但许多编程语言3354甚至连专门为智能合同设计的编程语言——都没有本地抽象来管理所有权。在协议层面包括这种抽象化似乎是一大胜利。但是,Resources还有一些其他的次要好处。

每一个都是最重要的。州租金可以扩展的智能合同平台必须以某种方式支付“州租金”。

根据分类帐模型,很难告诉谁应该支付这个租金。例如,加密猫合同代表数万名玩家,约200万只小猫和最多111Mb的链上数据。以太坊不能公平地付给所有这些猫的主人房租。

通过Resources类型的必要所有权模型,每只小猫都保存在其所有者的帐户内,以及该人的其他资产中。谁必须为存储支付费用的责任是具体的。更重要的是,复制个人用户(在客户端软件的帮助下)未使用的资产,以增加成本和增加网络上的阻抗。柔性所有权帐簿模型展开所有权用于允许可用的所有者关系的种类。

例如,ERC-721定义了NFTs的所有权模型。这个模型假设只有以太网地址才能享受NFT。但是,在一些用例中,资产本身享受其他资产(例如加密猫享受可爱的太阳镜)的想法非常有趣,因此必须创立新的规范(ERC-998 )。

ERC-998非常强大,但比ERC-721简单得多。正确执行是非常困难的,实质上不可能追溯到现有的ERC-721资产上应用其特性。必要的所有权模型允许用于资源类型建模的所有资产安全地保存在系统中的任何地方。必要时还包括“内部”的其他资产。

运行时的系统确保了所有的安全和价值,同时为开发者释放创造性的灵活性、互联网新闻网络带来了不必要的复杂性。基于能力的安全资源类型获取构建基于能力的安全模型的“功能”概念所需的所有确保。能力是定义安全系统的强大机制,可以更容易地遵循安全系统中罕见的最佳做法——特权以上的原则。

有人指出,基于能力的安全性模型一般来说推理小说更容易(这提高了安全性),同时允许更大的灵活性。避免交接性缺损以太网史上最有名的智能合同的脆弱性来源于交接性问题,可靠的开发者为了避免引进容易受到交接性反击的逻辑流,必须大幅度提高警惕。幸运的是,在Resource对象中定义的方法不会成为交接的受害者。

这可能是大胆的主张! 但是,如何定义资源可以自然地得出结论。每个资源都有不同的所有者,只有资源的所有者才能调用该方法。

如果Resources方法是“在堆栈上”,则表明已经使用了对该对象的单一所有权提及。对于我们从该方法内部调用的代码——,无论多么间接的——,都不能获取对该对象的第二个引用来展开可继承的方法调用。当然,全局共享状态(超过Resources对象使用)需要的还是可以创建容易受到轻进错误影响的代码。所以,熟悉的Cadence样式是Resources用于所有共享状态的理由。

亲吻Resources的智能合同作者不再需要考虑交接性漏洞了! Flow的编程语言Cadence用于Resources,Flow研究开发小组去年对更智能的合同语言展开了学术研究后,调查了区块链环境中线性类型的使用。完全正确,Libra团队发表了他们的可行性声明,包括MoveVM的技术细节。我们对Resources类型的力量感到愤慨。

这是Cadence的定义特性之一,是Flow的智能合同编程语言。资源级别是比EVM和WASM更丰富的可人组选项,可以选择数字资产(特别是NFTs! Cadence舒适,遵循人体工程学的语法,因此容易阅读。它用于强大的静态系统,以最大限度地减少操作错误,允许所有方法、模块和交易包括实际条件和后续条件,从而强制建立预期的不道德行为。

他指出,这将使语言自学变得容易,核查变得容易,最终比现有的备选方案更有效率。

本文关键词:彩票软件

本文来源:彩票软件-www.trackatesla.com

网站地图xml地图