接下来的的一些文章从应用层智能合约方面给大家做一下简单的介绍。
1.什么是智能合约。
智能合约(Smart contract)本质是能跑在区块链上的代码,是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。数字形式意味着合约不得不写入计算机可读的代码中。这是必须的,因为只要参与方达成协定,智能合约建立的权利和义务,是由一台计算机或者计算机网络执行的。
具体过程:达成协议 -> 合约执行 -> 计算机可读的代码
协议是技术实现,在这个基础上,合约承诺被实现,或者合约承诺实现被记录下来。选择哪个协议取决于许多因素,最重要的因素是在合约履行期间,被交易资产的本质。
2.智能合约语言
我们主要介绍基于以太坊的智能合约,智能合约的编写语言在区块链技术的发展中主要出现了4种。
(1)Mutan
Mutan是个静态类型语言,由Jeffrey Wilcke 开发设计的C类语言。目前已经不再维护。
(2)Lisp Like Language(LLL)
Lisp Like Language 是与 Assembly 类似的低级语言,它是直接对以太坊虚拟机的包装,不够灵活、智能。
(3)Serpent
Serpent 是与 Python 类似的脚本语言,可以用于开发合约编译成以太坊虚拟机字节码。它将低级语言在效率方面的优点和编程风格的操作简单相结合,同时合约编程增加了独特的领域特定功能。Serpent 使用 LLL 编译成字节码。
(4)Solidity
Solidity 是与 JavaScript 相似的语言,可以用它来开发合约并编译成以太坊虚拟机字节码。Solidity 目前是以太坊最受欢迎的智能合约开发语言。
我们使用 Solidity 作为智能合约的开发语言来讲解。