区块链学习笔记:智能合约

一、什么是智能合约(smart contract)

 智能合约这个词首次出现的时间是在1994年由尼克萨博提出的概念。而尼克萨博所提出的智能合约的概念是这样描述:

一个智能合约是一套以数字形式定义的约定,包括合约参与方可以在上面执行这些约定的协议。智能合约的基本思想是,各种各样的合约条款可以嵌入到我们使用的硬件和软件中从而使得攻击者需要很大的代价去攻击。

 在生活中我们也会听到过‘合同’这个词,虽然‘合同’跟‘合约’感觉上会很相似,但是合同跟合约又不一样,合同比较像是一种类似保证书的东西,而合约则是如果满足合约的要求就会触发执行某些事件。当然满足合约则触发执行事件如果能自动触发就好了,抱着这样的想法,尼克萨博就提出了智能合约的概念。他设想一种能够自动执行的智能合约,而且这个智能合约的安全性要求要高。智能合约的原型类似于自动售货机,通过一系列程序设计实现共识并达到某种条件则予以执行。

这里智能合约里,智能却不是AI的智能,而是smart的智能,像smart phone 一样的的那个智能,表示灵活的意思。也就是说,智能合约是使用计算机语言编写出来的程序指令,其工作的基本原理类似于计算机程序的if-then语句,只要达成预先设定的条件,就会按程序自动执行相应条件的合同条款。这就会有一个强制性的特点,不需要中介的参与而自动执行,没有人可以阻止智能合约的执行,具有这样强制性的特点,为智能合约所在的环境系统提供了安全和可信任的保障。

智能合约是区块链的基石,区块链中的信任机制可以说是智能合约提供了部分。它这在计算机编程中相当于就相当于遵循IFTT(if -this then-that)逻辑编程。在自动贩卖机中当我们把钱投进机器里,然后按照一定的程序触动了机器等待投钱者选择哪一种饮料的程序,机器可以在显示屏上显示机器正在等待选择的信息,或者提示选择饮品的时间倒计,来体现机器触发了等待的机制。当投钱者选择了饮料之后,按照程序合约,机器就会执行下一个程序合约,即把选择的饮料出纳。这些过程是强制性的,只要满足条件了就一定会执行,所以投钱者不用担心钱投了进去却没有东西出来,这是投钱者对这机器的信任,当然除去机器损坏的情况。

在区块链中创建一份智能合约,这份智能合约做得足够详细,足够细心,考虑周到的话,可信任度就越高,因为智能合约事实上就是一堆代码实现的各种功能,凡是代码多多少少都对有漏洞,若漏洞被黑客发现了,那么在区块链的信任度也会受影响。所以智能合约做得越全面越有保障。

二、智能合约的工作原理

基于区块链的智能合约构建及执行分为:

1、多方用户共同参与制定一份智能合约;(构建)

2、合约通过P2P网络扩散并存入区块链;(存储)

3、区块链构建的智能合约自动执行。(执行)

1)智能合约由区块链内的多个用户共同参与制定,可用于用户之间的任何交易行为。协议中明确了双方的权利和义务,开发人员将这些权利和义务以电子化的方式进行编程,代码中包含会触发合约自动执行的条件。就相当于自动售货机给了钱并选择了哪种饮料后机器必须出纳对应的饮料。这里先把投钱者和自动售货机都当成是用户就好理解了,再举个例子,a发起一笔交易给b,交易内容是a要给b一枚比特币,之后然后完成各种合约条件,a,b用户双方都共同参与了这份智能合约的制定了。就等着a把一个比特币给b了。(构建)

2)一旦编码完成,这份智能合约就被上传到区块链网络上,即全网验证节点都会接收到a和b的交易合约。(存储)

3)智能合约会定期检查是否存在相关事件和触发条件;满足条件的事件将会推送到待验证的队列中。假设a给了一枚比特币给b了,这就触发了“给一枚比特币给b”的事件了。然后区块链上的验证节点先对该事件进行签名验证,以确保其有效性;等大多数验证节点对该事件达成共识后,智能合约将成功执行,并通知用户。成功执行的合约将移出区块。而未执行的合约则继续等待下一轮处理,直至成功执行。(执行)

 更多智能合约的知识等小二学得更深入了在讲。

你可能感兴趣的:(区块链,微信小程序)