☞ ░ 前往老猿Python博文目录 ░

一、智能合约的定义

通俗来说,智能合约就是一种在计算机系统上,当一定条件满足的情况下可被自动执行的合约,智能合约体现为一段代码及其运行环境。例如银行信用卡的自动还款就是一种典型的智能合约。

我们来看看智能合约概念的演进历史:

  • 智能合约概念于1994年由Nick Szabo首次提出,百度上关于智能合约的定义:智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合约的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
  • 1997年,Nick Szabo对智能合约的定义进行了完善:智能合约是一套以数字形式指定的承诺,包括合约参与方可以在上面执行这些承诺的协议。
  • 2016年,工信部在《中国区块链技术和应用发展白皮书》上是这样定义智能合约的:智能合约是一段部署在区块链上可自动运行的程序,涵盖范围包括编程语言、编译器、虚拟机、时间、状态机、容错机制等。

智能合约有狭义的智能合约和广义的智能合约两种定义:

  • 狭义的智能合约是涉及相关商业逻辑和算法的程序代码,把人、法律协议和网络之间的复杂关系程序化
  • 广义的智能合约是一种计算机协议,一旦部署就能实现自我执行和自我验证。

二、区块链+智能合约的融合发展

从上面智能合约的定义和发展历史来看,智能合约是先于区块链出现的,在区块链发展初期如比特币并没有引入智能合约的技术,同样在区块链之前,智能合约也并没有广为使用。智能合约是在区块链2.0阶段才引入的,或者应该反过来说,引入智能合约后的区块链标志着区块链2.0时代的开启。不少人认为,智能合约在区块链中的实现,是区块链能够被称为颠覆性技术的主要原因之一。区块链智能合约的主要特点可以简单地概括为:去中心化、智能高效(自动执行、无人为干预)、准确、低成本。

老猿认为区块链技术和智能合约融合发展的大致历程是这样的:

  1. 区块链1.0以比特币为代表,解决了货币和支付手段的去中心化问题。去中心化的区块链技术核心在于沿时间轴记录数据及合约,具有安全、透明、不可篡改等特点;

  2. 随着区块链技术的发展,利用区块链技术带动金融市场去中心化成为区块链2.0的内在驱动力;

  3. 解决了信任问题的区块链技术为智能合约提供了可信的的自动化执行环境:

    ※ 将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。智能合约的编程语言就是规束合约的法律条文,交易双方可完全放心的进行交易

    ※ 区块链共识算法构建的一套状态机系统,使得智能合约能够高效地运行。智能合约一旦触发就会立即执行,自动按照合约规范进行操作。整个过程智能高效,短时间快速完成更是体现了它的准确和经济。

    ※ 智能合约在去信任化环境下,按顺序触发设定的合约内容并完成系列安全的自动化操作,为智能合约的实践提供了技术保障

    ※ 区块链数据完备可追溯的属性,可支持事后审计以追踪合约动态

区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰,为智能合约提供了可信的自动化执行环境。

三、区块链中智能合约的创建和执行

智能合约需要经过合约起草和合约提交后,才能在区块链环境中进行合约执行。

四、智能合约的不足

如前所述,基于区块链的智能合约提供了一个可信的智能合约执行环境,保障了合约的高效、安全地执行,但智能合约并非完美,它也存在安全性等问题。具体问题如下:

智能合约的以上不足,老猿认为是由于智能合约是运行在特定环境的程序代码,我们知道BUG几乎是无法完全避开所有软件天生带来的,作为智能合约的运行环境和智能合约本身的编程语言以及实现代码都可能存在漏洞,再加上区块链金融本身所表征的财富带来的吸引力,可能遭遇攻击者大量攻击导致安全性风险、隐私泄露风险以及性能问题。

更多关于区块链的内容请见老猿专栏《零基础学区块链》或《零基础学区块链专栏文章目录》。

本文参考资料:

1、《区块链科普:为什么要用区块链技术实现智能合约?》
2、《百度百科:智能合约》

关于收费专栏

老猿的付费专栏《使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,付费专栏《moviepy音视频开发专栏》详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,两个专栏加起来只需要19.9元,都适合有一定Python基础但无相关专利知识的小白读者学习。这2个收费专栏都有对应免费专栏,只是收费专栏的文章介绍更具体、内容更深入、案例更多。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《专栏:Python基础教程目录》从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

跟老猿学Python、学5G!

☞ ░ 前往老猿Python博文目录 ░

区块链学习5:智能合约Smart contract原理及发展历程科普知识相关推荐

  1. 【区块链DAPP】智能合约概述

    智能合约概述 智能合约是运行在区块链公链上的一种代码,该代码由Solidity编写,并通过区块链的智能合约虚拟机来执行,以达到对区块链编程的目标.可以将区块链公联理解为操作系统,Solidity是编写 ...

  2. 分享实录|区块链技术与智能合约入门(开发实例)

    2019独角兽企业重金招聘Python工程师标准>>> 1 什么是区块链 1.1白话讲解区块链 现在区块链特别火,可能大家都听说过区块链,听说过比特币,那到底什么是区块链? 前几天和 ...

  3. 区块链中的智能合约是什么?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. "智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机系统自动执 ...

  4. 行走在区块链上的智能合约

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 我和你打一个赌,我赌明天是雨天,你赌是晴天,赌注100大洋.假设明天是晴天,然后你跑过来管我要100大洋的赌金,我装疯卖 ...

  5. 区块链中的智能合约(Smart Contract)

    1994年,法律学者.密码学家Nick Szabo认识到智能合约的去中心化分类账的应用.他理论上认为,这些合同可以用代码编写,可以在系统上存储和复制,并由构成区块链的计算机网络进行监督.这些智能合约也 ...

  6. 区块链技术:智能合约入门

    什么是智能合约 一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议.一个合约由一组代码(合约的函数)和数据(合约的状态)组成,并且运行在以太坊虚拟 ...

  7. 区块链: 编译发布智能合约

    什么是智能合约?? 智能合约与平时的代码其实没有什么区别,只是运行于一个以太坊这样的分布式平台上而已.这个运行的平台,赋予了这些代码不可变,确定性,分布式和可自校验状态等特点.代码运行过程中状态的存储 ...

  8. 智能合约Smart Contract技术详解

    文章目录 合约编写 基本介绍 构造方法 ipfs mint 提现 白名单 合约 前端 部署 验证合约代码 前端和合约交互 准备工作 获取已经mint了的数量 mint 合约编写 建议读者先了解下sol ...

  9. 什么是智能合约(Smart Contract)?

    智能合约是什么? 在区块链上运行的程序,通常称为智能合约(Smart Contract)��.所以通常会把写区块链程序改称写智能合约.虽然比特币(Bitcoin)上也能写智能合约,但是比特币所支持的语 ...

最新文章

  1. WPS 2019 更新版(8392)发布,搭配优麒麟 19.04 运行更奇妙!
  2. 编程模板-R语言脚本写作:最简单的统计与绘图,包安装、命令行参数解析、文件读取、表格和矢量图输出
  3. Spring【AOP模块】就是这么简单
  4. hdu1010(小狗逃迷宫)
  5. iTunes 错误 -50
  6. iPhone 12蓝色版疑似翻车:眼前的蓝不是蓝......
  7. 004商城项目:ssm框架的整合之后的调试
  8. C语言删除字符数组中指定的字符(C笔记)
  9. Windows10如何安装windows terminal
  10. 如何将NCM转换成MP3 - NCM转MP3转换软件
  11. Win10系统给共享文件夹设置密码的操作步骤
  12. 显意识和潜意识话题引发的深入思考
  13. 各大电商平台API调用、上传图片到淘宝API接口
  14. 生物信息学反卷积论文阅读
  15. iphone 如何运行android,黑科技,如何在iPhone手机上运行安卓系统!
  16. 三菱fx5u modbus tcp fb块用法_FX5U强势来袭
  17. 美业企业如何实现自我蜕变?美业李依然腹有良策
  18. android devik进程,suckit后门程序的分析 (二)
  19. 【Matlab数学建模】灰色预测模型
  20. python分析b站_实战 | Python模型分析B站优质up主

热门文章

  1. Arduino开发教程汇总
  2. python散点图中如何添加拟合线并显示拟合方程与R方?
  3. SPSS打开问卷星下载的数据乱码解决办法
  4. 最新搜索引擎提交网站的入口及技巧
  5. android 主流机型排行榜,安卓手机排行榜
  6. docker安装与重装
  7. 【CloudCompare教程】001:CloudCompare中文版下载与安装图文教程
  8. 【HTML】常见的块元素,行内元素,行内块元素有哪些?
  9. PS多边形套锁工具在框选区的时候一按shift键PS
  10. OpenGL之glut、glfw、glew、glad等库之间的关系