《区块链技术原理与实践》课件-4第4章智能合约_第1页
《区块链技术原理与实践》课件-4第4章智能合约_第2页
《区块链技术原理与实践》课件-4第4章智能合约_第3页
《区块链技术原理与实践》课件-4第4章智能合约_第4页
《区块链技术原理与实践》课件-4第4章智能合约_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

同济区块链研究院各参与方共同执行的计算机协议4智能合约目录CONTENTS01SMART

CONTRACTS智能合约02CORE

ELEMENTS智能合约框架04Hyperledger

Examples超级账本示例03Hyperledger超级账本智能合约09ASSIGNMENT课后习题07课程总结06以太坊示例05以太坊智能合约08参考资料EthereumEthereum

ExamplesREVIEWREFERENCE

0引导部分合约和智能合约合约是指两方面或几方面在办理某事时,为了确定各自的权利和义务而订立的共同遵守的条文。如何保证合约能够在不受外界相关方干扰的条件下自动执行?智能合约是一种通过计算机程序描述的承诺。知识目标掌握智能合约的基本定义;掌握智能合约的应用架构;理解智能合约的数据架构和集成架构;熟悉超级账本和以太坊智能合约的核心要素;熟悉超级账本智能合约的参考数据架构;技能目标掌握超级账本的智能合约代码示例;(1学时)熟悉用Solidity编写的以太坊合约代码;(1学时)学习重点智能合约应用架构的结构;超级账本和以太坊智能合约的技术架构和代码实现;学习难点超级账本和以太坊智能合约的核心要素学习目标Learning

Objective1智能合约与传统合约智能合约由20世纪90年代尼克萨博(NickSzabo)提出承诺它是一种通过计算机程序描述的承诺操作合约可以由合约条例或者是基于规则的一组执行规则的操作组成合约这种承诺可以以合约的形式出现实现智能合约由程序代码和规范合约条件及结果的软件组成智能合约与传统合约的对比比较内容智能合约传统合约触发条件自动判断人工判断适应场景适合客观性佳的请求适合主观性佳的请求成本低成本高成本执行模式事前预防事后执行违约成本依赖于抵押品或保证金高度依赖于法律的执行适用范围可以是全球性的受限于具体辖区智能合约与区块链区块链区块链的分布式账本技术为智能合约提供了底层技术基础保证其能够不被篡改、按照预定的设定执行合约条款超级账本部署在超级账本Fabirc网络节点上可被调用与分布式账本进行交互的一段程序代码以太坊运行在相互不信任参与者之间的协议2参考应用架构、参考数据架构、参考集成架构智能合约框架参考应用架构呈现层、应用层和业务层没有可持久化的数据,可持久化的数据在数据层。参考数据架构数据架构设计准则1由商业网络生态圈企业间业务逻辑而产生和需要使用数据,整个数据生命期应该全部在区块链上实现2在商业网络中与其他企业无关的数据只存储在传统数据库系统里3传统数据库系统可以保留在区块链超级账本上的数据的复制4应用程序及数据迁移期间,数据逐个案例单独分析应用系统产生数据后,会同时发给链码和备份数据库,保存两份一样的数据。数据的备份过程1当外部应用调用还原操作后,读取备份数据库内容;2进行Restore处理;3将数据插入到区块链中,增加一条记录;4同时改变世界/账本状态。数据的还原过程超级账本智能合约的参考集成架构区块链系统与传统系统之间的交互:区块链网络向传统系统发出请求,以扩展智能合约的业务逻辑;传统系统将交易事务发给区块链网络;区块链系统通过事件触发传统系统的一系列操作;传统系统通过事件触发区块链系统的一系列操作。3超级账本的智能合约超级账本智能合约的核心要素3超级账本嵌在交易中,所有验证节点在确认交易时都必须执行它5链码中需要持久化的状态(State),可以存储在世界状态(WorldState)中2交易通过链码执行业务逻辑(Logic)=链码(Chaincode)=智能合约(SmartContract)4执行环境是一个定制化、安全的“沙箱”(Docker)智能合约是通过链码来实现的1超级账本的技术架构超级账本的三种链码公开链码通过公开的交易来部署的链码能被网络中任意成员调用机密的链码通过机密的交易来部署的链码只能被网络中指定的做验证的成员调用访问受控的链码通过内置令牌的加密交易来部署的链码能被网络中持有对应令牌的成员调用(即使这些成员不是校验者)链码的3种操作类型部署链码通过交易部署新的链码调用链码通过交易调用已经部署的链码也可以在链码中调用其他的链码可以修改链码中的变量信息查询链码通过交易查询已经部署的链码也可以在链码中查询其他链码不能修改链码中的变量信息1验证节点在执行调用链码时,超级账本框架会自动创建VM,为其加载链码,根据情况启动或停止链码;2链码接口会与验证节点建立反向连接,接收链码消息,来完成智能合约的调用。链码操作流程4超级账本的智能合约案例Run函数:智能合约的运行接口,分别调用智能合约的各个不同的方法;init函数:初始化账户A和B,分配给账户A和B一个地址,并且给其账户赋予一定的初始额度;invoke函数:转账,它可以从一个账户转移一定金额到另一个账户delete函数:删除一个用户超级账本智能合约示例:转账实现一个账户A和B之间相互转账的智能合约读代码4.3.2

20分钟画流程图注意!!!:异常和错误处理超级账本智能合约的示例(续):读代码,画流程图读文档:链码的生命周期https://hyperledger-fabric.readthedocs.io/en/release-2.0/chaincode_lifecycle.html观看视频:fabric1.4.4链码运行环境运行示例/video/BV13J411E7Dj?from=search&seid=14040535205664524250Fabric源码讲解系列:链码执行以及背书流程解析/video/BV1z7411R75k第四讲不依赖于Docker的链码启动方式(IBM开放技术*微讲堂超级账本Fabricv2/video/BV1wQ4y1T7YF超级账本智能合约的示例(续):看视频,理解链码5以太坊智能合约3.2以太坊智能合约核心要素账户包括外部账户和合约账户合约账户以太坊的智能合约账户即为合约账户,是以EVM字节码的形式存储的代码和数据的集合体账户结构所有账户以其20字节的地址为索引组织账户(Balance,Nonce,Contract_root)RLP编码值。调用流程启动节点;编译;部署;调用。(见下页)账户:构建Patricia

Tree启动以太坊节点编译智能合约部署合约到网络:消耗以太币,给合约签名,获得地址和ABI调用合约,例如使用web3.js提供的JavaScript

API调用,以太坊合约部署和调用流程6以太坊智能合约的案例以太坊智能合约的示例编译后的文件案例演示:Remix开发投票/完成智能合约的过程描述问题和分析问题使用类图设计合约数据结构初始化方法合约方法开发合约在IDE上开发数据机构、初始化方法合约方法测试和部署合约案例演示:用Remix

Web

IDE开发投票/Solidity延伸学习:改善Ballot合约中的事件状态变量定义事件函数修改器modifier7课程总结学习内容汇总添加你的副标题文字说明及简要标题文字概述什么是智能合约智能合约架构智能合约核心要素超级账本智能合约要素超级账本智能合约示例以太坊智能合约核心要素以太坊智能合约示例密码学领域的挑战密码学解决以下问题:账本的完整性交易的真实性交易的隐私性参与者身份的可辨识性同态加密

第六章零知识证明

第六章如何提出实用、有效和经济的解决方案?软件工程领域的挑战业务需求以及IT需求的易变性和不确定性敏捷开发多方谈判多次迭代保证合约系统的模块性和层次性存在知识不对称问题跨领域跨企业合作制定需求规范合约需求工程师:公共关系学和谈判技能智能合约的应用方向数字加密货币人工智能+区块链物联网应用智能合约的广泛应用快速回顾选择题1谁发明了“智能合约”这个词?A维塔利克布特林B尼克·萨博C哈尔·芬尼D中本聪2设计智能合约的最好做法是A简单的B连贯的C可审计的D以上都是判断题根据EthereumMetropolis版本,一旦部署了智能合约,它是不可变的。对还是错?

8参考资料参考资料SmartContract:BuildingblocksfordigitalmarketsHowtoLearnSolidity:TheUltimateEthereumCodingGuideStructureofaContractChaincode开发手册https://hyperledgercn.github.io/hyperledgerDocs/chaincode_developers_zh/IntroductiontoSmartContractsAccountTypes,Gas,andTransactionsEthereum,Tokens,andSmartContractsDecodingtheEnigmaofBitcoinMiningVotingEthereumSmartContractSecurityBestPracticesBeyondSmartContractBestPracticesforUXandInteroperabilitySoliditySmartContractSecurityBestPractices参考资料视频:第二讲Hyperledger项目概览社区介绍(IBM开放技术*微讲堂超级账本Fabricv1.4第七讲Fabric应用开发指南(IBM开放技术*微讲堂超级账本Fabricv1.4LTS系列课第八讲Fabric部署实践(IBM开放技术*微讲堂超级账本Fabric

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论