智能合约就是运行在以太坊上的程序

讨论 我不是赌鬼
Lv5 宗师级炼丹师
发布在 综合   1058   3
讨论 我不是赌鬼   1058   3

    undefined
    接触过区块链的朋友估计都听过智能合约,最开始往往会将其与以下情节联系起来:

    张三和李四拟定了一份合约,合约内容是“张三完成李四给的外包任务后,李四会自动给张三1000块RMB 并且由于合约是被打包在区块链里面的,区块是不可修改的,所以合约是非常安全的。”

    简直就是合约未来的发展方向是不是?但问题来了,系统如何评判张三是否完成任务,系统怎么又是怎么给张三转钱的?想法总是优秀的,

    undefined
    智能合约并不是我们想象的样子,它即不智能,也并非传统意义上的合约。它仅仅是一个码农部署在区块链上的程序。 他与我们传统的程序最大的区别是在,传统的程序是在我们的PC上或是在服务器上跑的,而智能合约是在区块链上跑的。 而且在区块链上,我们显然不能进行RMB转账,那么作为报酬,我们只能发送代币。如果合约在以太坊上跑,那我们发送的就是以太币。

    下面,我们来谈一下智能合约的工作方式:

    1. 张三写的一个关于投票的智能合约:

      有函数1:vote(elected_person),合约会检测调用者是否已经投过票, 再检测参数elected_person是否在被选举人的列表中,如果有,则该被选举人的选票+1.

      函数2:view(),可以查看所有被选举人当前的选票数,(像发钱一样把返回值发到对应账户上)。

    2. 张三把合约以二进制文件部署到以太坊(区块链)上,以太坊会给这个合约(程序)一个地址。

    3. 李四或其他任何人(除非合约中有其他声明)可以通过合约的地址调用vote和view两个函数(和转钱一样转函数),(同样以二进制编码发送到链上)。

    有些人有疑惑了,区块链不就是交易的吗,为啥还能跑代码和调用函数。这就是以太坊比BTC更优秀的地方,他在设计之初就考虑到了 智能合约的问题,链上不仅可以保存交易数据,还可以保存与运行二进制文件,详细内容可以搜索EVM以太坊虚拟机。

    值得注意的是虽然智能合约是“图灵完备”的,可以完成任何的复杂计算。但是当下区块链运行速度很慢,所以对程序会有限制, 以太坊有一个GAS的感念,调用函数要使用合约账户的GAS,越复杂的函数使用的GAS越多,这是要花钱的。(合约也具有交换代币的功能)

    版权声明:作者保留权利,不代表意本站立场。如需转载请联系本站以及作者。

    参与讨论

    回复《 智能合约就是运行在以太坊上的程序

    EditorJs 编辑器

    沙发,很寂寞~
    反馈
    to-top--btn