网站大量收购闲置独家精品文档,联系QQ:2885784924

《区块链:技术与应用》 课件 第五章 智能合约.pptx

《区块链:技术与应用》 课件 第五章 智能合约.pptx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

杜玮陈润宇许伟编著第五章智能合约新编21世纪数据科学与大数据技术系列教材区块链:技术与应用

智能合约概述0102智能合约编程语言与运行环境03智能合约平台与部署目录Contents区块链:技术与应用

明确学习目标理解智能合约的原理及安全性问题。掌握Solidity编程语言基础。理解以太坊智能合约的编译与部署过程。了解Fabric国密改造涉及的主要模块。本章导读00

本章需要掌握的基本概念本章导读00智能合约SolidityERC代币智能合约虚拟机以太坊超级账本Fabric联盟链国密改造

熟悉本章结构与主要内容本章导读00智能合约概念智能合约智能合约编程语言与运行环境智能合约概述智能合约平台与部署智能合约运行机制安全性问题Solidity编程语言ERC接口与代币智能合约虚拟机以太坊合约编译与部署Fabric联盟链…

智能合约概述PART0101区块链:技术与应用

智能合约概述01智能合约(SmartContract)可以被定义为在区块链上数字化地促进、验证和执行双方或多方之间签订的合约的计算机协议,它是一段运行在区块链网络中的代码,完成用户所赋予的业务逻辑。与传统纸质合约不同,智能合约是由计算机生成的,合约的参与方通常是互联网上的陌生人,受制于有约束力的数字化协议,智能合约作为数字合约,除非满足要求,否则不会产生结果。区块链不仅可以支持可编程合约,而且具有去中心化、不可篡改、过程透明可追踪等优点,天生可以为智能合约提供可信的执行环境,智能合约的使用也成为第二代区块链技术与第一代的显著区别。区块链智能合约执行环境技术革新

智能合约概述01智能合约具备代表性特征ABC即智能合约的执行无需依赖第三方机构的参与或介入,合约的监督和仲裁都由计算机完成。去中心化由于智能合约不需要第三方中介监督,一旦发生毁约,代码强制执行,与传统合同相比,具有更低的成本。低成本性即智能合约一旦部署完成,所有内容无法修改,任何一方都无法干预合约的执行。不可篡改性D智能合约一旦部署成功,将按照设计代码运行,任何人均可查看,具有很高的透明度。公开透明

智能合约概述01智能合约由区块链内的多个用户共同参与制定,可用于用户之间的任何交易行为构建存储指的是智能合约通过P2P网络扩散至每个节点,并存入区块链中存储区块链上的验证节点先对该事件进行签名验证,以确保其有效性;等大多数验证节点对该事件达成共识后,智能合约将成功执行,并通知用户执行当智能合约在公共区块链中执行时,任何一方都无法阻止交易的发生。即使没有第三方监督执行,交易的完成也能得到保障。目前智能合约要消耗加密数字货币,智能合约的逻辑越复杂,消耗的加密数字货币则越多。

智能合约概述01由于智能合约容错率较低,迅速发展的同时,也频频出现了一些针对智能合约攻击的安全案件。智能合约的开发工作主要由软件从业者来完成,所编写的智能合约不可避免地会出现错误和缺陷,因此相比传统合约,更容易产生逻辑上的漏洞Golang,Java语言等高级语言可被用于编写智能合约,而这类高级语言不乏一些具有“不确定性”的指令,可能会造成执行智能合约的节点的某些内部状态发生分歧,从而影响整体系统的一致性

智能合约编程语言与运行环境PART0202区块链:技术与应用

智能合约编程语言与运行环境02智能合约为一种在满足一定条件时就自动执行的计算机程序,一般运行在独立隔离的运行环境中,目前主流的智能合约运行方式有虚拟机(EVM)、Docker、WASM等。以太坊虚拟机(EVM)是一个完全独立的沙盒环境,可以保证智能合约与外界环境隔离。智能合约的编程语言包括Solidity、Serpent、Vyper和LLL,其中Solidity是智能合约开发的最热门、最流行的编程语言。在EVM中运行的智能合约主要以Solidity编写,语法接近JavaScript,是一种面向对象的语言。Solidity支持三种类型的变量:1.状态变量;2.局部变量;3.全局变量。Solidity数据类型分为值类型和引用类型两类。其中,对变量命名时需要注意:1.不应使用Solidity保留关键字作为变量名;2.不应以数字开头,必须以字母或下划线开头;3.变量名区分大小写。更多关于Solidity语言的内容可参考/en/latest/

智能合约编程语言与运行环境02编译开关:Pragmasolidity^0.4.0,表明编译器版本需要高于0.4.0才可以编译。如需指定编译器版本范围,可写:Pragmasolidity=0.4.220.6.0代码注释:Solidity代码注释有两种方式,单行(//);多行(/*…*/)文档注释:表示为三个斜杠(///)或/**…*/如需引入其他源文件

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档