1、什么是智能合约
智能合约(smart contract)是由尼克•萨博(Nick Szabo)提出来的。他的定义是“一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议。”

数字形式
数字形式意味着合约不得不写入计算机可读的代码中。这是必须的,因为只要参与方达 成协定,智能合约建立的权利和义务,是由一台计算机或者计算机网络执行的。

更进一步地说明:
达成协定 智能合约的参与方什么时候达成协定呢?答案取决于特定的智能合约实施。一般而言,当参与方通过在合约宿主平台上安装合约,致力于合约的执行时,合约就被发现了。
合约执行 “执行”的真正意思也依赖于实施。一般而言,执行意味着通过技术手段积极实施。
计算机可读的代码 另外,合约需要的特定“数字形式”非常依赖于参与方同意使用的协议。
承诺
一套承诺指的是合约参与方同意的(经常是相互的)权利和义务。这些承诺定义了合约 的本质和目的。以一个销售合约为典型例子。卖家承诺发送货物,买家承诺支付合理的货款。
协议
协议是技术实现(technical implementation),在这个基础上,合约承诺被实现, 或者合约承诺实现被记录下来。选择哪个协议取决于许多因素,最重要的因素是在合约履行期间,被交易资产的本质。
再次以销售合约为例。假设,参与方同意货款以比特币支付。选择的协议很明显将会是 比特币协议,在此协议上,智能合约被实施。因此,合约必须要用到的“数字形式”就是比 特币脚本语言。比特币脚本语言是一种非图灵完备的、命令式的、基于栈的编程语言,类似 于 Forth。
2、智能合约与区块链的关系
尼克萨博关于智能合约的工作理论迟迟没有实现,一个重要原因是因为缺乏能够支持 可编程合约的数字系统和技术。区块链技术的出现解决了该问题,不仅可以支持可编程合约, 而且具有去中心化、不可篡改、过程透明可追踪等优点,天然适合于智能合约。因此,也可以说,智能合约是区块链技术的特性之一。
智能合约看上去就是一段计算机执行程序,满足可准确自动执行即可,那么为什么用传 统的技术为何很难实现,而需要区块链技术等新技术呢?传统技术即使通过软件限制、性能 优化等方法,也无法同时实现区块链的特性:1 是数据无法删除、修改,只能新增,保证了 历史的可追溯,同时作恶的成本将很高,因为其作恶行为将被永远记录;2 是去中心化,避 免了中心化因素的影响。
基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避 免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技 术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。同时,由区块链自带的共 识算法构建出一套状态机系统,使得智能合约能够高效地运行。
3、智能合约工作原理

智能合约系统根据事件描述信息中包含的触发条件,当触发条件满足时,从智能合约自动发出预设的数据资源,以及包括触发条件的事件;整个智能合约系统的核心就在于智能合约以事务和事件的方式经过智能合约模块的处理,出去还是一组事务和事件;智能合约只是 一个事务处理模块和状态机构成的系统,它不产生智能合约,也不会修改智能合约;它的存在只是为了让一组复杂的、带有触发条件的数字化承诺能够按照参与者的意志,正确执行。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。