版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章:智能合约Chapter5:SmartContract作者:北京大学汇报时间:2024/07/03目录1.智能合约概述013.智能合约的组件032.智能合约的执行024.智能合约的开发04思考题051.智能合约概述1.OverviewofSmartContracts011.1智能合约定义1.智能合约的定义智能合约是一种自动执行的合约,基于区块链技术,无需第三方干预即可确保交易的可信性和安全性。2.智能合约的用途智能合约广泛应用于金融、供应链管理、房地产等领域,通过自动化执行降低成本和提高效率。3.智能合约的优势智能合约具有透明性、不可篡改性和去中心化等特点,有效减少了欺诈和违约风险。4.智能合约的挑战尽管智能合约有诸多优点,但安全漏洞、法规不完善和缺乏专业人才等问题仍是其发展面临的主要挑战。1.2智能合约架构智能合约架构
智能合约的核心组件:共识模块:完成交易的排序后发送给执行模块。执行模块:验证并执行智能合约。存储模块:存储执行结果和合约相关数据。1.3智能合约生命周期1.智能合约部署流程智能合约部署涉及编写、编译、测试和部署到区块链网络等多个步骤,确保合约逻辑正确无误。合约部署:智能合约首先被部署到区块链平台上,并与某个账户地址绑定。部署后,合约会在链上等待用户的交互。2.合约执行效率据研究表明,优化的智能合约代码执行效率可提高30%,显著降低交易成本和处理时间。调用:用户指定要调用的合约地址及相关参数,发起智能合约交易。执行:区块链平台通过以下步骤处理交易:
1、广播:交易通过共识模块在网络中广播。
2、执行:由智能合约引擎负责执行合约代码。
3、结果存储:执行结果通过存储模块记录在区块链账本中。3.合约更新与升级随着业务需求变化,智能合约支持在线升级功能,确保合约逻辑与业务同步发展,减少重新部署成本。
成功解冻智能合约冻结智能合约销毁
调用
冻结状态升级
正常状态升级智能合约调用智能合约销毁智能合约智能合约部署
智能合约的生命周期
2.智能合约的执行2.Executionofsmartcontracts02智能合约执行效率智能合约执行效率通过每秒交易数(TPS)衡量,高效的合约能显著提高区块链网络吞吐量。智能合约执行成本智能合约执行涉及gas费用,合理的费用设计有助于激励矿工参与,并降低用户成本。智能合约执行安全智能合约的安全性是重中之重,据统计,由智能合约漏洞导致的资金损失占区块链安全事件的60%以上。2.1执行引擎基于区块链技术的P2P电能交易平台智能合约执行流程图栈式执行引擎核心:通过栈数据结构实现智能合约指令编译:将智能合约编译成字节码执行:通过数据入栈和出栈操作执行智能合约逻辑辅助结构:局部变量表和栈帧安全控制:通过限制指令执行次数和禁止系统调用实现代表应用:以太坊虚拟机(EVM)和Solidity语言2.1执行引擎智能合约执行引擎的职责运行用户编写的智能合约提供执行上下文环境访问账本数据获取外部数据解释型执行引擎差异:每笔交易包含一个执行脚本,而非智能合约账户下的逻辑灵活性:为每笔交易自由制定逻辑执行:根据脚本中的逻辑执行交易代表应用:Move语言,用于Facebook的区块链平台Diem容器化执行引擎核心:通过栈数据结构实现智能合约指令编译:将智能合约编译成字节码执行:通过数据入栈和出栈操作执行智能合约逻辑辅助结构:局部变量表和栈帧安全控制:通过限制指令执行次数和禁止系统调用实现代表应用:以太坊虚拟机(EVM)和Solidity语言2.1执行引擎智能合约执行引擎的优缺点栈式执行引擎优点:易于实现停机和安全控制缺点:可能存在性能瓶颈解释型执行引擎优点:交易执行灵活性高缺点:可能需要更多的开发工作来编写和维护脚本容器化执行引擎优点:提供了一个独立安全的执行环境,易于实现交易逻辑与账本数据的分离缺点:可能需要更多的资源来维护容器环境比较智能合约引擎3.智能合约的组件3.Componentsofsmartcontracts033.1去中心化应用(DApp)1.组件的多样性智能合约的组件包括触发条件、执行逻辑和存储数据,确保了合约的灵活性和可定制性。2.安全性的重要性智能合约组件的设计和部署需高度注意安全性,避免漏洞被利用,确保合约执行的安全与可靠。3.1去中心化应用(DApp)1.DApp的定义和作用定义:DApp是去中心化应用,类似于App在Android和iOS系统中的作用,但是建立在区块链技术上。基础设施:DApp依赖于区块链,不依赖任何中心化服务。优势:去中心化:没有单一控制点。开源:代码完全公开,可由社区审核和改进。自主运行:应用逻辑由智能合约自动执行。2.DApp的劣势安全隐患:开源智能合约代码容易被攻击者分析,增加了安全风险。监管难度:去中心化和自主运行的特点使得监管审查更加困难。3.DApp与App的关系并存关系:DApp和App不是相互取代的关系,而是根据不同网络场景发挥各自优势。互补性:DApp能解决App无法解决的市场与技术矛盾,反之亦然。4.DApp的市场应用热门领域:去中心化交易所、游戏等与交易数据、资产直接相关的应用。特性优势:基于区块链,DApp具有数据不可篡改和可追溯性,增强了用户对资产管理安全性的信任。5.知名的DApp实例CryptoKitties:基于以太坊的虚拟养猫游戏,玩家可以通过游戏赚取以太币。Oasis:基于以太坊的Dai电子货币交易所,提供去中心化的金融交易服务。飞洛印:基于趣链区块链平台,聚焦于司法领域的企业级联盟链应用。6.DApp的未来发展DApp的发展将继续依赖于区块链技术的进步和创新,以及社区和开发者的积极参与。安全性和监管问题将是DApp发展中需要重点关注和解决的挑战。3.2去中心化组织(DAO)1、DAO是一种基于智能合约的组织形式,通过预先设定的规则自动化管理和决策,减少了人为干预。2、DAO的成功案例包括TheDAO和MolochDAO,展示了智能合约在治理和管理领域的潜力。DAO组织的八种模式:1.投资型DAO:成员一起管理某些资源,类似于大家把钱放在一个共同的钱包里。2.开放型DAO:所有决策都由成员投票决定,没有中心化管理层,就像是一个自动化的投票系统。3.代币持有者型DAO:成员持有代币,代币数量决定了在组织中的投票权和分红权,就像是一种基于代币的股权制度。4.创作者型DAO:Web3.0的集合,专注于构建Web3.0的未来5.生态型DAO:成员共同经营某个生态系统业务并分享利润。6.社区型DAO:以共同的兴趣或价值观为基础,成员共同管理某些社区资源,类似于一个由志同道合的人组成的组织。7.治理型DAO:专注于治理其他DAO组织,提供决策和管理支持,就像是一个专门的管理咨询机构。8.混合型DAO:根据需要灵活调整的多种DAO的组合,以适应不同的组织形式和结构,类似于一种组合式的DAO。3.2去中心化组织(DAO)8种DAO组织的特点:1.投资型DAO:成员向DAO投资并共享收益。2.开放型DAO:允许任何人参与且没有成员限制的DAO。3.代币持有者型DAO:成员可以投票决定组织的事务。4.创作者型DAO:旨在支持新项目和想法的DAO。5.生态型DAO:旨在促进某个生态系统的DAO。6.社区型DAO:基于共同利益,共同愿景和共同价值观的DAO。7治理型DAO:专注于管理其他DAO的DAO。8.混合型DAO:拥有多种功能的DAODAO的价值何在?1、给社区成员提供身份认同大家加入DAO组织就是为了同样的目的,所以大家很能找到自己的身份认同感。2、解决了中心化环境下部分成员权力过大的问题DAO完全是去中心化的,所有决策由社区成员共同投票决定,这样能够有效避免决策的中心化,满足大多数人的意见,而不是少数人集权专制。3、组织运转高效化由于DAO是依靠智能合约的,所以DAO的运转规则、职责权利以及奖惩机制等均公开透明、自动运行。4、有效激励组织运转DAO治理过程中以通证代币作为重要激励手段,将组织中的各个元素(例如人、组织、知识、事件、产品等)通证化,从而使得货币资本、人力资本以及其他要素资本充分融合,更好实现组织的价值流转。预言机的重要性预言机作为智能合约与外部数据源之间的桥梁,对确保合约准确响应市场变化至关重要,提高合约执行效率。预言机的应用广泛性预言机在DeFi、NFT、保险等多个领域得到应用,为智能合约提供实时、准确的数据支持,促进区块链技术的商业化发展。3.3智能合约的组件:预言机预言机的安全挑战预言机面临着数据篡改、延迟等安全风险,需要采用多重签名、去中心化等技术手段来确保数据的安全性和可靠性。
请求消息
预言机
回调交易
智能合约
执行引擎
定时器
用户
调用消息通信组件请求预言机调用发送
回调
交易
模拟用户
预言机服务回调函数智能合约
交易生成器外部数据源请求外部数据外部数据签名
签名交易
预言机的模型
3.3智能合约的组件:预言机1.预言机的必要性区块链的封闭性:区块链是一个封闭的沙箱环境,无法主动获取外部数据。智能合约的需求:智能合约需要与外部数据交互,这与区块链的封闭性产生矛盾。预言机的作用:允许智能合约主动获取并处理外部数据。2.预言机的工作原理独立模块:预言机作为区块链系统中的独立或第三方服务模块。信息交互:单独与智能合约执行引擎进行信息交互,不参与交易过程。服务请求:用户可以通过智能合约发起对预言机服务的请求。数据获取:预言机向外部数据源获取数据,生成特殊交易并签名后发送回智能合约执行引擎。3.预言机的设计要素内外数据获取:预言机需要能获取区块链上数据,并提供外部数据获取服务。数据可信度:在获取外部数据时,需要筛选数据源,保证可信度。数据交互格式:标准化数据获取流程和数据交互格式。数据可靠性:提供不同模式的可靠保证机制,确保数据未被篡改。3.3智能合约的组件:预言机4.预言机的分类中心化预言机:依赖第三方机构,如政府或大型企业。代表:Oraclize。去中心化预言机:秉承区块链的去中心化理念,不依赖第三方机构。实现较为困难,需要多机并行和相互验证。代表:Chainlink。5.中心化与去中心化预言机的差异数据处理:中心化预言机:单机负责数据获取。去中心化预言机:多机并行,通过相互验证保持一致性。第三方机构:中心化预言机:需要第三方机构背书。去中心化预言机:不需要第三方机构。6.预言机的重要性预言机在区块链系统中扮演着桥梁的角色,连接智能合约与外部世界,确保智能合约能够安全、可靠地获取和使用外部数据。4.智能合约的开发4.Developmentofsmartcontracts044.1开发语言1.比特币脚本语言类型:基于堆栈的简单脚本型语言功能:不具备循环和复杂流程控制,不图灵完备用途:用于比特币的逻辑控制2.以太坊智能合约语言背景:为了解决比特币脚本语言的局限性创始人:维塔利克·布特林(VitalikButerin)语言:SoliditySerpentVyper3.Solidity语言使用情况:以太坊中最常用的智能合约编程语言语法:类似JavaScript,具有面向对象特性类型系统:弱类型,支持继承、库和用户定义类型编译:编译为字节码在EVM(以太坊虚拟机)上运行内容:状态变量声明、函数、修饰符、构造函数等存储结构:主要采用栈式数据结构,适应EVM的栈操作4.Serpent语言特点:类似Python的合约编程语言编译:编译为EVM字节码优势:低级语言的效率,降低编程难度,提高易用性5.Vyper语言来源:由Serpent语言升级而来特点:简单和安全改进:针对Solidity的复杂性和安全性问题进行语言层面的优化特性:抛弃了Solidity的一些复杂特性6.其他平台的开发语言Pact:运行在Kadena区块链平台上受比特币脚本语言启发,非图灵完备设计保证安全性介于比特币脚本和以太坊图灵完备语言之间HyperledgerFabric链码:智能合约称为链码主要由Go(Golang)编写,也支持Java等其他语言Java开发的合约体系庞大,Go语言开发的难度较高4.2执行环境1.以太坊的运行环境以太坊节点架构:自底向上包括操作系统、区块链节点程序、EVM和智能合约。以太坊虚拟机(EVM):基于栈的虚拟机,无寄存器,提供栈、临时内存和永久存储三种存储空间。2.EVM的技术架构存储空间:栈(Stack):临时存储,32字节访问粒度,用于保存临时数据。临时内存(Memory):临时存储,单字节访问粒度,用于保存大型临时数据如数组、字符串。永久存储(Storage):永久保存重要全局变量。代码执行:智能合约代码存储在区块链世界状态中,EVM从交易数据中读取函数签名和参数列表执行代码。3.以太坊智能合约的程序特性Gas机制:计算智能合约执行开销,防止资源滥用,保证可终止性。代码不可修改:一旦部署,合约代码无法修改,保证安全性和唯一性。全局状态与调用序列:永久存储区域用于跨函数的全局变量状态,导致程序分析困难。4.其他平台的智能合约运行机制HyperledgerFabric:联盟链,由IBM牵头,适用于商业组织。使用模块化架构,支持可拔插的共识机制和加密算法。智能合约称为链码,Peer节点在Docker容器中运行链码。EOS:公有链,采用并行链和DPoS共识算法。智能合约由一系列行为(Action)组成。事务内行为原子性执行,保证事务完整性和一致性。5.主流智能合约平台比较以太坊:开放共享,性能较低。超级账本:联盟链,性能较高,交易延迟短。EOS:高吞吐量,低交易延迟。平台名称链类型吞吐量交易延迟开发语言隐私保护以太坊公有链约100笔/秒约15秒Solidity不支持超级账本联盟链约100笔/秒约1秒Go/Java支持EOS公有链约10000笔/秒约0.5秒C++不支持4.3智能合约的部署1.Solidity开发部署工具代码编辑工具:可以使用多种平台,如VisualStudioCode、Notepad++、Sublime等。合约编译器:如SOLC,用于编译Solidity编写的合约代码。集成环境:VisualStudioCode已集成部分Solidity编译环境。基于浏览器的IDE:RemixSolidityIDE,推荐用于开发以太坊智能合约,无需安装和配置环境。2.Solidity语法规则编译指示:指定Solidity版本,如pragmasolidity^0.8.5。导入指令:使用import关键字导入其他文件,如import"filename"。注释:支持单行(//)和多行(/**/)注释。SPDX许可标识符:指示源代码的许可证,如//SPDX-License-Identifier:MIT或//SPDX-License-Identifier:UNLICENSED。3.合约定义合约结构:类似面向对象语言的类定义,包含状态变量、函数、修饰器、事件等。继承:合约可以继承其他合约。特殊类型:包括Library和Interface。数据类型:简单数据类型:布尔值、整型、定点型、地址、字节数组、Unicode文字、十六进制文字。复杂数据类型:结构(struct)、枚举(enum)、引用(reference)、映射(mapping)。地址类型:表示账户地址,具有balance属性和transfer()函数。4.3智能合约的部署4.函数修饰器和事件函数修饰器:改变函数行为,如onlyCaller修饰器确保只有特定调用者执行函数。事件(Event):作为EVM日志记录工具的接口,用于日志记录和监听执行过程。5.Solidity代码示例:简单数据存储器//SPDX-License-Identifier:UNLICENSEDpragmasolidity>=0.5.0<0.7.0;contractSimpleStorage{uintprivatestoredData;addressprivatecaller;//构造函数
constructor(uintdata)public{storedData=data;caller=msg.sender;//msg.sender表示调用者的地址
}//定义函数修饰器,只有调用者才可使用
modifieronlyCaller(){require(msg.sender==caller);_;}//定义函数,用于向调用者发送存储数据
functionget()publiconlyCallerreturns(uint){returnstoredData;}}跨链智能合约跨链智能合约技术旨在实现不同区块链之间的互操作性,促进资产和信息在不同区块链之间的流通。Polkadot和Cosmos是实现跨链智能合约的代表项目,通过跨链桥接技术,实现了跨链智能合约的互操作。人工智能与智能合约的结合人工智能可以为智能合约提供更高的智能化水平,例如自动判定合约条件的满足情况,提高合约的自动化执行能力。探讨人工智能在智能合约中的应用前景和潜在挑战,如隐私问题和算法透明性。4.4智能合约的未来发展方向去中心化金融(DeFi)DeFi是智能合约的主要应用领域之一,通过去中心化的方式提供金融服务,如借贷、交易和保险。具体案例包括Compound、Aave和Uniswap,展示了智能合约在金融领域的巨大潜力。供应链管理智能合约在供应链管理中应用广泛,通过自动化合同执行,提高了供应链的透明度和效率。案例:沃尔玛使用智能合约跟踪食品供应链,提高了食品安全和供应链效率。4.5智能合约的实际应用案例知识产权保护智能合约在知识产权保护中的应用,可以实现版权的自动管理和交易,减少侵权行为。案例:Mycelia项目通过智能合约管理音乐版权,确保艺术家权益。思考题Reflectionquestions05智能合约安全性重要智能合约的安全性至关重要,据统计,因合约漏洞导致的经济损失已超数百万美元,必须严格审计和测试。合约优化提升性能优化智能合约能显著提升其执行效率和降低成本,据研究,经过优化的合约相比未优化版性能提升可达30%。1、什么是智能合约?它与区块链技术之间存在何种联系?2、智能合约运行所依赖的环境是什么?以堆栈结构机器实现的虚拟机环境在其中起到了何种作用?1.智能合约依赖区块链环境智能合约运行于区块链平台之上,通过去中心化、不可篡改的环境保障合约执行的公正性和安全性。2.虚拟机作用关键堆栈结构机器实现的虚拟机环境如EVM(以太坊虚拟机)提供了合约的执行环境,通过沙箱模式隔离合约运行,确保合约与平台安全交互。Whatistheenvironmentonwhichthe5-2smartcontractoperates?Whatroledoesavirtualmachineenvironmentimplementedwithastackstructuremachineplayinit?PART01智能合约的生命周期智能合约从部署到执行、再到结束,经历了初始化、触发条件、执行操作、结果记录等阶段,确保合约逻辑的执行与监控。PART02销毁不影响不可篡改性智能合约销毁是删除其在区块链上的可访问状态,不影响历史交易记录,区块链的不可篡改特性依然保持。PART03生命周期行为可观察通过区块链浏览器等工具,可实时查看智能合约的生命周期行为,包括创建、交互、执行结果等,增强透明度。PART04生命周期影响交易成本智能合约的复杂度和生命周期长度影响交易成本,高效的合约设计能够降低部署和执行成本。3、
什么是智能合约的生命周期?智能合约的销毁是否影响了区块链技术不可篡改的属性?如何理解智能合约生命周期中的行为?4、智能合约的执行引擎主要有哪几种实现方式?请比较各种方式的优缺点。1.以太坊虚拟机(EVM)以太坊虚拟机是智能合约的主要执行引擎,它提供了图灵完备的字节码运行环境,但执行效率相对较低。2.WebAssemblyWebAssembly作为一种二进制指令格式,用于在现代Web浏览器中安全、快速地运行代码,提高了智能合约的执行效率。3.eWASMeWASM(以太坊WebAssembly)是EVM的潜在替代者,它支持高级语言编译,具有更高的安全性和执行效率。5、
在智能合约应用中,预言机具体指的是什么含义?为智能合约的执行提供了哪些帮助?1.预言机作为数据输入源预言机为智能合约提供外部实时数据,如股票价格、天气预报等,确保合约执行基于准确信息。2.增强合约灵活性通过预言机引入的外部数据,智能合约能够根据不同的市场情况做出调整,提高合约的灵活性和适应性。3.保证合约安全性预言机服务由可靠的数据源提供,经过验证的数据能够防止欺诈行为,确保智能合约执行的安全性。4.扩展合约功能预言机技术扩展了智能合约的功能范围,使其能够执行更多基于外部数据触发的复杂业务逻辑。6、以太坊智能合约的执行环境定义了两种存储环境,即内存(Memory)和存储(Storage),两者之间具体的区别是什么?1.存储持久性内存存储是临时的,随合约执行结束而消失;而存储则持久保存于区块链中。2.成本差异内存操作成本低,适用于临时数据;存储操作成本高,适合长期保存的重要数据。3.数据访问内存访问速度快但容量有限;存储访问相对较慢但容量大,可存储大量数据。4.安全性考虑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件企业项目文档管理与规范实践指南【课件文档】
- 2025-2026学年练习颜色英文教学设计
- AI赋能合同全生命周期管理:从起草到审查的智能化实践【课件文档】
- 国际诉讼程序协议
- 中班教案我会做8篇
- 中班科学活动变变变
- 育才实验学校八年级下学期地生中考倒计时家长会上年级主任讲话
- 运动干预对改善患者饮食与排便功能的效果
- 《汽车起动用锂离子电池》标准征求意见稿
- 第十一章 章节复习与检测(原卷版)
- 洗浴中心承包合同协议书
- 2023年民航机场消防战斗员岗位技能试题库(含答案)
- 试验室试剂管理制度
- 机场跑道照明系统方案
- 电子技术基础练习题库(含参考答案)
- 统编版四年级下册语文《绿》 课件完整版
- 量子计算与量子通信
- 破产管理人保密制度
- 2024年业主门窗合同协议书模板
- 药品法律法规知识竞赛考试题库(含答案)
- 盐城中南大有境、宝龙广场调研报告
评论
0/150
提交评论