链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。

什么是智能合约?

智能合约又称智能合同,是由事件驱动的、具有状态的、获得多方承认的、运行在区块链之上的、且能够根据预设条件自动处理资产的程序,智能合约最大的优势是利用程序算法替代人仲裁和执行合同。

简单说,智能合约是一种用计算机语言取代法律语言去记录条款的合约。智能合约可以由一个计算系统自动执行。简单地说,智能合约就是传统合约的数字化版本。

如果区块链是一个数据库,智能合约就是能够使区块链技术应用到现实当中的应用层。智能合约是在区块链数据库上运行的计算机程序,可以在满足其源代码中写入的条件时自行执行。智能合约一旦编写好就可以被用户信赖,合约条款不能被改变,因此合约是不可更改的。

区块链智能合约有三个技术特性:

  1. 数据透明

区块链上所有的数据都是公开透明的,因此智能合约的数据处理也是公开透明的,运行时任何一方都可以查看其代码和数据。

  1. 不可篡改

区块链本身的所有数据不可篡改,因此部署在区块链上的智能合约代码以及运行产生的数据输出也是不可篡改的,运行智能合约的节点不必担心其他节点恶意修改代码与数据。

  1. 永久运行

支撑区块链网络的节点往往达到数百甚至上千,部分节点的失效并不会导致智能合约的停止,其可靠性理论上接近于永久运行,这样就保证了智能合约能像纸质合同一样每时每刻都有效。

智能合约的应用

如果能够通过区块链来发行法币,那么也可以通过智能合约技术,将代码嵌入到法币发行的行为中,则这部分法币可以被称为“可编程货币”。

比如,如果央行指定某一部分资金是发放到农业相关的账户,那么则可以对这部分资金写入相应程序,指定该部分资金只能进入到农业相关的账户中,那么这部分资金在任何情况下也不可能会被挪用到其他的账户中。

再比如,与房屋租金协议相关的智能合约只有当业主收到租金才会触发自动执行,并将公寓的安全密钥发送给租户。这个合约可以确保租金的定期支付,并且每个月重启。

智能合约在其他领域都可以广泛的应用,这里只略举两例。

智能合约的工作原理

开发人员会为智能合约撰写代码。智能合约可用于交易和(或)两方/多方之间的任何交换行为。该代码包含一些会触发合约自动执行的条件。

一旦编码完成,智能合约就会被上传到区块链网络上,即它们被发送到所有连接到网络的设备上。从另一种区块链应用——比特币——的情况来说,这就好像把关于比特币交易的网络更新上传到区块链上。

一旦将数据上传到所有设备上,用户就可以与执行程序代码的结果达成协议。然后更新数据库以记录合约的执行情况,并监督合约的条款以检查合规性。

这样一来,单独一方就无法操纵合约,因为对智能合约执行的控制权不在任何单独一方的手中。

与传统合约相比,智能合约有很多优势:

一、智能合约与传统合约相比,最大的特点和优势就是其解决了“信用”的问题。传统合约达成前,参与者先要了解各方的信用背景以选择合适的对象,合约达成后的阶段,也要依赖于各方的诚实信用,或者引入第三方(如支付宝)来担保合约履行。

二、智能合约因为链上的资源是真实透明的,合约的内容确定后就无法更改,执行更是不用依赖任何额外操作。最终,“匿名信用”成为现实,合约缔结前无需进行信用调查,缔结后也不用第三方进行担保履行,从而实现交易成本大大降低,交易效率则大幅提高。

三、智能合约的数据无法删除、修改,只能新增,而智能合约的历史可追溯,同时篡改合约或违约的成本将很高,因为其作恶行为将被永远记录并广为人知。

四、去中心化的智能合约,不依赖第三方执行合约。因此,智能合约的潜在好处包括降低签订合约、执行和监管方面的成本;因此,对很多低价值交易相关的合约来说,这是极大降低人力成本。合约验证和执行的整个过程随着用户间的直接交易而变得快速。

五、智能合约不容易出现断电、节点故障、水灾火灾等问题。智能合约保存在区块链分布式账本上时,不存在放错或丢失的风险。这意味着连接到网络的每个设备都有一份合约副本,并且数据会永远保存在网络上

区块链之智能合约详解相关推荐

  1. 区块链之智能合约入门

    区块链之智能合约入门 第一步 安装环境 首先这里写的合约是指solidity合约,使用Remix IDE.所以我们第一步就是安装Remix IDE.remix ide是开发以太坊智能合约的神器,支持网 ...

  2. BC之SC:区块链之智能合约——与传统合约的比较以及智能合约模型部署原理、运行原理相关配图

    BC之SC:区块链之智能合约--与传统合约的比较以及智能合约模型部署原理.运行原理相关配图 目录 SC与传统合约的比较 SC模型部署原理.运行原理 SC与传统合约的比较 1.传统合约VS智能合约  特 ...

  3. 质押智能合约详解|手把手教你玩转质押合约|Defi质押

    本文介绍通过质押底层币(以太坊)资产获取收益的一般逻辑及其实现方法,该方案在很多defi项目得到应用:本文中的收益为ERC20通证,收益获取也可以理解为行为. 开发环境:chrome + metama ...

  4. python区块链开发_Fabric区块链Python开发详解

    Hyperledger Fabric是最流行的联盟区块链平台.Fabric区块链Python开发详解课程 涵盖Fabric区块链的核心概念.Fabric网络搭建.Node链码开发.Python应用开发 ...

  5. 智能合约重构社会契约(11)天德区块链智能合约系统

    智能合约是可以运行在区块链上的合约代码,是一种运行在区块链之上的电子协议,它允许在没有第三方的情况下进行可信执行. 1. 设计原则 智能合约数据来源于链上. 智能合约的输人是从区块链的数据库里出来的. ...

  6. 论述《区块链智能合约的合同效力认定》去中心化金融的钞能力赛道

    | 没有喧嚣,没有问候的"沉默",请安静听完这段征途故事! 摘要 智能合约是自动执行合同条款的代码协议,其以代码替代传统人为执行合同,本质上是运用代码"编译"传 ...

  7. 区块链 智能合约应用

    随着区块链技术的普及与应用,智能合约作为区块链技术的底层技术之一,不论是在学术界还是产业界都引起了极大的关注.智能合约之所以被普遍关注,毛球科技技术研究部认为,主要归功于智能合约的去中心化.去信任.自 ...

  8. android区块链 钱包_区块链研究实验室|从Android调用区块链智能合约

    本教程将展示如何直接从Android开发环境-Android Studio中调用智能合约. 环境要求 我们将使用Tezos区块链.为了使我们的Android java代码与现有的.部署的智能合约交互, ...

  9. C++ 智能指针详解

    智能指针内容很多,重点是基本用法. #include <boost/shared_ptr.hpp> class CBase: public boost::enable_shared_fro ...

最新文章

  1. java(十)IO流
  2. #6164. 「美团 CodeM 初赛 Round A」数列互质-莫队
  3. curl模拟多线程抓取网页(优化)
  4. python语言怎么输入-python如何用input输入数组
  5. java判断一个单向链表是否有环路
  6. 课程学习:程序设计与算法
  7. SpringBoot和JPA使用SQLServer2008数据库搭建后台的时候排序报错
  8. matlab混合编程 mex,求教:matlab混合编程关于mex内自定义函数的输出
  9. git配置取消代理_「高手」如何优雅的解决 git 超时
  10. [转载] python中list的方法有哪些_Python 列表(list)中的方法
  11. 【18.40%】【codeforces 631D】Messenger
  12. vue学习-路由router
  13. Python安装Tensorflow
  14. 接收机IQ不平衡:估计和纠正 (Rx IQ imbalance: Estimation and Correction)
  15. 会议室管理前端页面_12个非常不错的免费HTML后台管理模板
  16. 用手机打开word图表位置很乱_干货 | 论文格式调半天?Word攻略帮你统统都搞定...
  17. 做SEO优化第十二步:网站优化推广方案
  18. python用smtp发邮件怎么抄送_Python发送邮件并抄送
  19. 企业上云,安全合规如何进阶 ——一文拆解亚马逊云科技云安全理念与实践
  20. C++ 模板中的类型获取(一)

热门文章

  1. java反射用在哪里_Java反射
  2. spark编程基础--2.4函数式编程基础
  3. nodejs 中间件 反向代理 接口转发
  4. 右滑手势导航返回的相关设置
  5. 框架模式与设计模式之区别
  6. 卡片右上角三角形效果,按钮点击变色
  7. iOS 关于Blocks
  8. web架构之mysql服务器
  9. 解决Error response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifests/
  10. 图片基础知识梳理(3) BitmapBitmapFactory 解析