当你说智能合约,你说的到底是什么(EOS篇)

当前位置:首页 > 币圈百科 > 当你说智能合约,你说的到底是什么(EOS篇)

当你说智能合约,你说的到底是什么(EOS篇)

2022-12-28币圈百科210

虽然现在很流行“智能合约”这个词,但是如果你问我智能合约到底是什么?我确实不能马上给出准确的答案,所以查了一下维基百科关于智能合约的词条(http://t.cn/RVQQ1Ja):

a?智能合约?计算机协议是用来数字化的吗?促进、核实或执行合同的协商或履行。智能合约允许执行可信的交易?没有第三方。这些交易是?可追踪且不可逆。智能合同的支持者声称可以制定多种合同条款?部分或全部自动执行、自动实施或两者兼有。智能合同的目的是提供优于传统合同法的安全性。降低其他交易成本?与承包有关。

如你所见,所谓智能契约中的智能,其实和人工智能中的智能有很大的不同。或许被称为智能契约是因为它比传统契约更高级,主要体现在以下几个方面

你可以信任契约,不需要第三方的参与就可以追踪。不可逆,可以自动执行

。不要小看这些功能。智能合约的普及可以让人们在交易过程中更加透明。当你和一个陌生人交易的时候,就不会再是游戏关系,而是若干个游戏,因为所有的交易记录都是有迹可循的。想象以下情况。如果事先知道将来会和这个人交易,你会选择合作还是背叛?当然是合作。因此,与传统契约相比,智能契约可以降低交易成本(http://t.cn/RDjUw0D),从而提高社会整体效率。

什么是EOS智能合约

在EOSIO开发者文档(http://t.cn/RDjUT09)中,有这样一段描述

现实世界的合约,简单地说,就是在给定一组输入的情况下,支配行动结果的协议。合同的范围可以从正式的法律合同(例如,金融交易)到简单的游戏“规则”。典型的动作可以是资金转移(在金融合同的情况下)或游戏移动(在游戏合同的情况下)。

现实世界的合同,简单来说就是一组协议。如果你赋予它某种行为,它就会产生相应的结果。从正式的法律合同(如金融交易)到简单的游戏“规则”都属于合同的范畴。典型的行为可以是转会(金融契约)或球员的移动(游戏契约)。

EOSIO智能合同是在区块链上注册并在EOS io节点上执行的软件,它实现了“合同”的语义。操作请求的整个分类帐都存储在区块链上。

EOSIO智能合约软件在区块链上注册,在EOSIO节点上执行。它实现了“契约”的语义,并将契约的请求行为存储在区块链上,也就是请求账本上。

EOS定义的智能合约包含两个元素:代表合约的程序和执行合约时的行为。同时,当你读到上面这段话的时候,你很可能会将其对应到比特币系统。实际上,比特币是智能合约的一个特例:它只定义了转移合约,即接收UTXO(未用完的交易输出),验证签名,创建新的UTXO;这个契约只有一个行为:3354转移(发送UTXO)。

就像比特币在区块链上记录了UTXO一样,EOS也记录了区块链上的所有行为数据。唯一不同的是,EOS是一个智能合约平台,不仅支持转让合约,现在还可以看到CPU、带宽抵押、RAM人机交易行情、投票等。可见智能合约平台是很有想象力的,它提供了多样性。即便如此,也可以看出。 从这个角度来说,EOS仍然只是比特币的一个扩展,所以在学习的时候牢记这两个要素,有助于你在学习的过程中不至于迷失。

如何开发一份EOS智能合约

开发一份EOS智能合约,需要完成合约对应的程序,上传到EOS平台。用计算机语言来说,现在的智能合约只能用?c?开发,并编译成?WebAssembly?兼容的可执行程序,因为?去吗?语言支持吗?WebAssembly,这样以后就能用了?Golang?要写智能合约,除此之外,还有一些开发者在连接EOS?JavaScript?然后呢。Python?虚拟机,所以在不久的将来,开发智能合约将不再受影响?c?这座山的边界。

即使现在只能用?c?在语言开发中,实现一个EOS智能合约并不复杂。其实你只需要养成契约提供的行为。从这个角度来看,契约和行为之间的关系就像WebService和它提供的接口之间的关系一样。假设目前?eosio.token?这个契约是不存在的,你需要实现它。你会怎么做?eosio.token?这个契约主要完成EOSIO平台中各种代币的创建、发行和转账功能,所以你要先定义它的三个行为:

create:用于创建新的代币issue:用于发行代币,有点像银行打印的转账功能:允许用户转账

同时,像应用提供的接口,你需要暴露所有行为,让用户可以调用。EOSIO提供统一的行为入口——申请每份合同?函数,你可以理解为WebService中的路由。同时为了开发的方便,EOSIO提供了一个宏,只需要增加一行代码就可以实现?申请?函数,如下:

EOS IO _ ABI (EOS IO: token,(create) (issue) (transfer)) 蓑衣网小编2022

上面的代码会?创建、发布?然后呢。转学?这三种行为都暴露在外面。也就是说,要执行合同,用户必须先输入?申请?功能,然后根据具体行为,输入不同的?创建、发布?还是?转学?跑进去。

为了完成?eosio.token?智能契约,我们意识到了它所拥有的行为,并采纳了这些行为?申请?该功能对外公开。按照EOSIO对智能合约的定义,这里似乎少了点什么。的确,在实现的过程中,我们错过了最关键的一步:在区块链上存储用户对智能合约的请求。

大家都知道区块链是时间序列的链表数据库,也就是以事务为单位的数据结构,按照时间顺序以链表的形式存储,链表的特点是检索困难,所以通常区块链系统都配有KV数据库来加快检索,EOSIO也不例外。它提供了一种模仿?boost:multi_index(Boost?是扩张吗?c?强大的函数库)数据结构,也叫?多指数?与传统的KV数据库相比,该数据库的优点是可以对同一数据建立多级索引,检索效率更高。EOSIO中的

,multi_index?除了有助于加快检索速度,数据库也是智能合同写区块链的桥梁,所以智能合同要写好,对吧?多指数?学习是必不可少的,相信你猜到了,multi_index?使用的资源是EOSIO系统中最重要的——RAM,进一步说明了它的重要性。

下图说明了EOS处理智能合约的流程。从上到下,系统将从左到右依次执行每个合同。对于每个合同,系统将分配一个?申请?上下文,不同契约之间的上下文是孤立的,不会互相影响。以上

2是你写一份EOS智能合同的要点。如果看完这些内容,你觉得写一份智能合同并不难,那么这篇文章的目的就达到了。接下来,你应该能看懂了吧?contracts/eosio.token?根据法典。

综上所述,本文主要讲什么是智能合约,EOS智能合约具体指什么,写一份EOS智能合约的关键。它们是:

实现包含在已建立的契约中的行为,并将这些行为暴露给外部学习?多指数?数据库蓑衣网小编2022接口

相关文章:

教你如何使用EOS多重签名——保护你的资产|源代码解读5行代码帮你理清EOS的脉络。超正析象管(Image Orthicon)
当你说智能合约,你说的到底是什么(EOS篇) | 分享给朋友: