关于智能合约,你可能还不知道这些

在之前介绍以太坊账户与图灵完备的文章中,肖恩简单提及了智能合约的概念,今天肖恩就跟大家具体来讲解下以太坊的智能合约。

智能合约最早是在1995年由一个名为尼克•萨博的法律学者(Ni ck Szabo)提出的,他当时给出的定义是:“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”

但由于运行条件的局限,智能合约在当时并没有得到太大的应用。区块链基于分布式系统,具有去中心化、透明、不可篡改等特点,恰好是智能合约运行所需的条件。2014年,以太坊团队将其引入以太坊区块链系统中。

本文讲解智能合约是主要围绕以太坊来讲,但实际智能合约不是以太坊专有的。继以太坊之后很多公链都有智能合约的概念,如EOS也有了智能合约的概念。

什么是智能合约

合约,是指事件参与各方就某一方案达成一致的约定。如常见的劳动合同、租房合同等都是合约。智能合约也是一种合约,只不过它是智能的,是自动执行的。

普通合约的执行通常由法律来执行,如劳动合同就是靠法律来保护员工与老板的利益,当其中一方违反规定时,违规方需要根据合同的规定给另一方相应的赔偿。由于劳动合同具有法律效应,出于对法律制裁的敬畏,参与者不得抵赖。

但是这种“不得抵赖”也不是绝对存在的,还是可以“抵赖”的。如有些破产公司的老板拖欠员工工资,通过跑路来躲避法律的制裁。姑且先不其论跑路是否会成功,就这种可能性来看,现有的法律合同的参与者还存在着是否执行合同的选择权,这种合同的安全性还是不够的。

智能合约一旦启用,合约的执行选择权不在用户手上,而是遵照智能合约的规定执行下去。老板想要跑路,钱也不会跟着他跑,钱还是会给到员工的。

智能合约的运行

产生

以太坊智能合约是开发者基于以太坊区块链开发的,以太坊就是一个底层系统,智能合约就运行于以太坊之上。具体说来其运行的环境我们称之为以太坊虚拟机(Ethereum Virtual Machine,简称EVM)。EVM也是以太坊提出的一个新概念,主要起到隔离作用,运行于其中的智能合约代码无法访问本地的网络、文件系统或其他进程。

语言

目前,编写以太坊智能合约最常用的编写语言是Solidity,这是一种类似js语言的高级语言。

运行流程

1. 开发者先创建一个外部账户;2. 外部账户采用Solidity语言编写智能合约;3. 编译器将写好的智能合约代码编译以太坊虚拟机专用的二进制格式(EVM bytecode);4. 将第三步生成的二进制格式文件上传到以太坊虚拟机上运行。

以太坊智能合约案例

1CO。2017年在全球风靡一时的1CO其实就是智能合约的一个案例。以太坊存在着一个名为ERC-20的标准,是一个用于规范发币的智能合约,这个智能合约又称代币合约。发放的这些代币,我们称之为ERC-20代币。也就是说,ERC-20代币是应用智能合约产生的。项目方就是采用这些ERC-20代币进行1CO的。当然1CO采用的不一定是ERC-20代币,少数采用的是ERC223 标准进行发币。

关于智能合约,你可能还不知道这些


分享到:


相關文章: