小白快速理解智能合约

时间:2024-07-08  分类:电子


当小白学习区块链的时候,有一个叫智能合约的词会反复出现。可什么是智能合约呢?今天树哥尝试用自己的语言说清楚啥叫智能合约。


一、什么是智能合约?


最初的概念:智能合约(smartcontract):是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。-1995年尼克萨博(NickSzabo)(跨领域法律学者)


请注意两个关键点:


1、这是1995年提出来的,那会儿还只是互联网的早期阶段,区块链的概念远未诞生。


2、提出的人是一个跨领域法律学者,是想通过计算机解决法律问题。


可以看出,当初智能合约的概念是通过计算机解决法律合约执行的问题。


那么,当前大家谈的智能合约还是当初的这些含义吗?


当区块链世界引入了智能合约这个概念时,它的概念已经发生了种种变化!


1、当前谈的**智能合约,都在区块链范畴内讨论。


2、智能合约已经不局限在合约本身了,其它类的应用都可以称之为智能合约!


谈到第一点,我们现在智能合约因为是部署到区块链上,所以需要很具有区块链特色。


谈到第二点,智能合约可以是合约,当然也可以不是合约。当前很多描述智能合约的文章还把智能合约局限在合约上,是不准确的。


当前的定义是:


智能合约:是区块链系统上的应用,是可执行的代码。


二、区块链上的智能合约


我们既然谈到是区块链上的智能合约,因此区块链本身的特性也会决定智能合约的相应特性。我们用一张图,来进行比较说明,部署在中心化的传统互联网上与部署在分布式的区块链上有何不同。见下图:


互联网与区块链网络智能合约


最直接显著的区别有两点:


1、在中心化的互联网上,智能合约(代码)只需要部署在中心节点服务器上就可以。


而区块链网络上,由于没有中心化的节点,所以智能合约必须部署在所有的节点上。


2、在中心化互联网上,智能合约(代码)可以比较随意、限制比较少的创建、执行、升级或终止。


而在区块链网络上,由于体系是采用按时间出区块,一个区块链接一个区块的方式,决定了智能合约必须打包入区块之中,并且复制到全网的节点之中。决定了智能合约代码会有一些要求,智能合约的创建、执行、升级、终止也会复杂得多,必须符合区块链本身的技术要求。


也是由于这两点,决定了区块链上的智能合约有如下的特色:


1、代码即法律:不同于中心化节点,区块链上的智能合约一经部署便复制到全网节点,满足条件会自动执行,所有人都可以看到但无法修改,即使代码的创始人也无法终止。


2、机器信任:不同于传统信任中心或第三方(例如淘宝信任的是第三方支付宝),智能合约的履行完全靠机器代码完成,不依赖任何第三方或权威中心机构,因此变中心信任为机器信任。


3、升级困难:不同于中心化互联网发现问题修改代码非常容易,区块链网络中的智能合约一经部署,修改完善过程就比较复杂。这点也是区块链本身的特色,区块链的网络本身升级就很困难,容易导致分叉,比特币现金就是比特币网络想把区块从1M改成8M后导致硬分叉而来的。


3、决策靠共识:不同于中心化服务器的任何决策都可以有权威中心直接负责,区块链由于是布局到全网节点上的,没有了权威中心,很多决策都是靠全网共识来达成,所以就有了社区、技术开发者、矿工、交易所等等多方利益的博弈过程。


4、功能相对弱:不同于中心化服务器的软件功能强大,在区块链上的智能合约受限于区块大小、出块速度和区块链本身的网络带宽等多种因素,在功能上远没有中心化服务器的那么强大;当然,由于每个区块都需要全网同步,所以并发的交易速度也远不如传统中心化互联网那么强大(双十一淘宝的并发量是极其可怕的)。


5、外部数据交互难度大:区块链本身就是要保证在网的数据不可篡改、可以溯源;就会面对如何保证上链的数据是可信数据,如果源数据不准确那上链就没有了意义。另外,数据上链的时间、花费、储存都是一些复杂的问题。所以相对来讲,区块链的智能合约和外部数据交互难度大一些,与传统互联网的方式不同。


小结:智能合约就是一段代码,需要实现的一些应用。由于部署在区块链上,区块链的多方存储、多方计算、规则透明、不可篡改等特性,恰好为智能合约提供了安全可靠的记录载体和执行环境。智能合约变得不可篡改,陌生人都可以信任机器而不再关心合约的对方是谁,当然同时也就存在了区块链固有的一些问题,例如升级困难,功能目前还没有那么强大等问题。



-->> 1/2 文章未完,请继续阅读

以上就是小白快速理解智能合约的全部内容,望能这篇小白快速理解智能合约可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。