“智能合约”是如何部署的?

我们都知道,智能合约是区块链网络中各个节点共同遵守的合约,或者说是合同。那么智能合约是如何部署和发挥功能的呢?

————————

个人技术公众号:解决方案工程师

欢迎同领域的朋友关注、相互交流。

————————

智能合约是Nick Szabo在1994年所提出的概念,是一种计算机协议、位于以太坊中的代码和数据的集合。

区块链网络中的节点可以预先编写代码实现一定逻辑,然后通过以太坊虚拟机编译成字节码后存储在以太坊区块链平台以便执行,因此智能合约也拥有在区块链上的唯一地址,当网络中的节点向智能合约所在地址发送交易或满足某些条件后即会触发智能合约代码,智能合约将自动以规定的方式在网络中的每个节点上独立和自动地执行,完成区块链内数据的存储或是某些状态的变化以及账本余额的变化等功能,其自动执行的特点可以完全抛开需要人为维护的中心化数据管理模式。

另外,作为区块链2.0技术的代表,以太坊中的智能合约的最大特点即图灵完备性,理论上,智能合约通过以太坊虚拟机的编译可以完成所有逻辑工作等计算机能做的所有事情。

智能合约拥有以下几个特点:

(1)高效率处理交易

如上文所介绍,智能合约作为自动执行的计算机代码,不需要人为干预等第三方服务,在接收到满足条件的区块链中交易后可自动执行,无需长时间等待即可完成交易入链,因此具有较高的处理交易效率。

(2)可信度高

部署在区块链中的智能合约所有逻辑过程、代码都是事先编写好后才经以太坊虚拟机部署在区块链中,且执行结果都是计算机严格执行的结果,不会出现任何纰漏,不会出现不可意料的结果,因此区块链网络中的节点可以完全信任智能合约及其执行结果。

(3)避免人为干预

在合约部署成功后,任何节点及合约方都无法对智能合约进行更改,不存在有节点为了自身利益而更改合约的可能,若存在某个节点发生毁约事件,则会根据预先决定的规则对毁约人进行惩罚。

(4)监督仲裁分散化

由于区块链网络中所有节点皆是权限、地位平等的平等节点,不存在一个绝对权威的超级节点来监督合约的运行,相对地,智能合约的执行完全是由计算机监督,且网络中所有的节点都可以通过Pow等共识算法的帮助下监督合约的执行,避免了由单个集中的、权威的机构或组织来管理合约的集中化管理所带来的不可信、不透明等问题。

5)较低的执行成本

智能合约的执行完全靠计算机,不需要任何人力成本,且合约本身所产生的字节码并不会占用过多计算机内存资源。另外,合约的部署、执行、监督、仲裁等一系列过程都是由计算机代码自动执行,十分节约成本。

接下来,详细讲一下,智能合约的部署及调用流程。

如上所述,智能合约在编写完成之后不能直接部署在区块链上,而是首先需要由以太坊虚拟机将代码编译成字节码文件,然后将字节码文件保存在区块链

在节点触发智能合约条件需要使用合约时,区块链将调取智能合约字节码在本地运行,然后将运行结果再保存入区块链账本中。

另外,用户还可以通过web3接口调用智能合约,构建与之交互的Web应用,该应用由于完全构建于区块链之上,不需要第三方中介来提供服务,被称为去中心化应用(DAPP)。

总体来讲,在以太坊上部署及调用智能合约如图所示:

主要流程包括以下4个步骤:

(1)启动一个以太坊节点

(2)编写智能合约

(3)编写后的智能合约经以太坊虚拟机的编译,成为计算机可运行的字节码

(4)合约发起用户将编译好的字节码文件通过发起交易的形式广播到区块链网络中,由矿工挖矿确认后即可将智能合约存入区块链中,并得到智能合约所在地址及调用合约所需接口

以上就是智能合约的部署方式。

————————

个人技术公众号:解决方案工程师

欢迎同领域的朋友关注、相互交流。

————————

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值