《计算机应用基础教程》课件08区块链技术_第1页
《计算机应用基础教程》课件08区块链技术_第2页
《计算机应用基础教程》课件08区块链技术_第3页
《计算机应用基础教程》课件08区块链技术_第4页
《计算机应用基础教程》课件08区块链技术_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

项目12区块链技术信息技术(Windows10+Office2016)COMPUTER目录12.2

区块链基本概念及特征CONTENTS12.1区块链技术起源与发展信息技术(Windows10+Office2016)12.3区块链核心技术12.4区块链开源技术介绍12.5区块链应用场景12.1

区块链技术起源与发展中本聪,日裔美国人。中本聪于2008年11月1日发表了一篇名为《比特币:一种点对点式的电子现金系统》的论文,描述了一种被他称为“比特币”的电子货币及其算法。2009年,他发布了首个比特币软件,并正式启动了比特币金融系统。2016年,中本聪逐渐淡出并将项目移交给比特币社区的其他成员(比特币的诞生)。2016年1月20日,中国人民银行数字货币研讨会在北京召开,会议肯定了数字货币在降低传统货币发行、流通成本,提高经济活动的便利和透明性等方面的价值。2016年10月,工业和信息化部发布《中国区块链技术和应用发展白皮书(2016)》,总结了国内外区块链发展现状和典型应用场景,介绍了我国区块链技术发展路线图以及未来区块链技术标准化方向和进程。12.1

区块链技术起源与发展2016年12月,“区块链”首次被作为战略性前沿技术写入《国务院关于印发“十三五”国家信息化规划的通知》。2017年1月,工信部发布《软件和信息技术服务业发展规划(2016-2020年)》,提出区块链等领域创新达到国际先进水平等要求。2017年8月,国务院发布《关于进一步扩大和升级信息消费持续释放内需潜力的指导意见》提出开展基于区块链、人工智能等新技术的试点应用。2017年10月,国务院发布《关于积极推进供应链创新与应用的指导意见》提出要研究利用区块链、人工智能等新兴技术,建立基于供应链的信用评价机制。12.1

区块链技术起源与发展2017年11月底,国内共有浙江、江苏、贵州、福建、广东、山东、江西、内蒙古、重庆等9个省份,将区块链列入本省“十三五”战略发展规划。2018年3月,工信部发布《2018年信息化和软件服务业标准化工作要点》,提出推动组建全国信息化和工业化融合管理标准化技术委员会、全国区块链和分布式记账技术标准化委员会。目录12.2区块链基本概念及特征CONTENTS12.1区块链技术起源与发展信息技术(Windows10+Office2016)12.3区块链核心技术12.4区块链开源技术介绍12.5区块链应用场景12.2.1区块链概念区块链:是一种去中心化、去信任、分布式账本技术,并由网络节点集体维护可靠、安全数据库技术。从数据的角度来看区块链是一种几乎不可能被更改的分布式数据库。这里的“分布式”不仅体现为数据的分布式存储,也体现为数据的分布式记录(即由系统参与者共同维护)。从技术的角度来看区块链并不是一种单一的技术,而是多种技术整合的结果。这些技术以新的结构组合在一起,形成了一种新的数据记录、存储和表达的方式。12.2.2区块链特征开放,共识任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点间基于一套共识机制,通过竞争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。去中心,去信任区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。节点之间数据交换通过数字签名技术进行验证,无需互相信任,只要按照系统既定的规则进行,节点之间不能也无法欺骗其它节点。12.2.2区块链特征交易透明,双方匿名(公有链)区块链的运行规则是公开透明的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与的节点都是匿名的。不可篡改,可追溯单个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能控制整个网络中超过51%的节点同时修改,这几乎不可能发生。区块链中的每一笔交易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易的前世今生。所以,区块链只有增加、查询两种操作。12.2.3区块链分类公有链无官方组织及管理机构,无中心服务器,参与的节点按照系统规则自由接入网络、不受控制,节点间基于共识机制开展工作。自由加入与退出(如比特币、以太坊)。私有链建立在某个企业内部,系统的运行规则根据企业要求进行设定,修改甚至是读取权限仅限于少数节点,数据的访问有着十分严格的权限控制。联盟链由若干机构联合发起,介于公有链和私有链之间,兼具部分去中心化的特性。通过授权加入与退出(如超级账本Fabric)。目录12.2

区块链基本概念及特征CONTENTS12.1区块链技术起源与发展信息技术(Windows10+Office2016)12.3区块链核心技术12.4区块链开源技术介绍12.5区块链应用场景12.3区块链核心技术区块链涉及的综合技术分布式技术(P2P应用)身份认证与权限控制PKI

CA

技术同态加密算法智能合约共识算法(共识机制)虚拟化技术(Docker

容器)12.3区块链核心技术P2P网络又称点对点技术,是没有中心服务器、依靠用户群来交换信息的互联网体系。P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其它部分的影响很小。实际就是我们经常下电影的BT技术。12.3区块链核心技术身份认证与权限控制身份认证身份认证,在Fabric中主要用于各节点的成员身份管理和权限的控制。主要有三种证书,身份证书、交易证书、通信证书。身份证书:颁发给用户或节点,用于表明节点身份(注册凭证)。交易证书:用于控制每个交易的权限(如交易签名)通信证书:控制对网络层的接入访问,可对远端实体进行身份校验(TLS证书)。权限控制对通道内数据的各种操作权限进行管理,读身份(读取通道的数据、区块)、写身份(如向通道发起交易)、管理员身份(修改通道配置信息)等权限进行控制。12.3区块链核心技术PKI与CA知识科普密码算法分类:对称算法、非对称算法、哈希(杂凑、散列)算法。常用经典算法:AES、SM4、RSA、SM2、ECC、SM3、SHA256描述对称算法:用来对敏感数据等信息进行加密。特点:加密解密密钥是相同的。非对称算法:用来保护和交换对称密钥及签名应用。特点:加密解密密钥是不相同的。哈希算法:相同的明文数据经过同一种哈希算法得到相同的密文。特点:不需要密钥。12.3区块链核心技术PKI与CA知识科普数字签名数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。数字签名有两个作用,一是能确定消息确实是由发送方签名并发出来的。二是数字签名能确定消息的完整性(算法ECDSA)。工作原理:发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私钥对摘要进行加密,加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。12.3区块链核心技术PKI与CA知识科普SHA256(或Ripemd160)一种求Hash值的加密算法。工作原理将任何一串数据输入到SHA256将得到一个256位的Hash值(散列值)。其特点:相同的数据输入将得到相同的结果。输入数据只要稍有变化(比如一个1变成了0)则将得到一个千差万别的结果,且结果无法事先预知。正向计算(由数据计算其对应的Hash值)十分容易。逆向计算(俗称“破解”,即由Hash值计算出其对应的数据)极其困难,在当前科技条件下被视作不可能。12.3区块链核心技术PKI与CA知识科普数字证书数字证书是PKI标准基于公钥密码体制,用于标志通讯各方身份的一种证书。一般是由权威的CA认证机构颁发,用于在网络流通中让别人识别自己的身份。公开密钥数字证书是一种将客户的身份(证书主体)与某个公开密钥值安全地联系在一起的数据结构。数字证书由认证机构颁发,包含公开密钥持有者信息、公开密钥文件、认证机构的数字签名、密钥的有效时间、认证机构的名称及证书序列号等信息。12.3区块链核心技术数字证书样例12.3区块链核心技术PKI与CA知识科普MerkleTree一种哈希二叉树,使用它可以快速校验大规模数据的完整性。在比特币网络中,Merkle树被用来归纳一个区块中的所有交易信息,最终生成这个区块所有交易信息的一个统一的哈希值,区块中任何一笔交易信息的改变都会使得使得Merkle树改变。工作原理非叶子节点value的计算方法是将该节点的所有子节点进行组合,然后对组合结果进行hash计算所得出的hashvalue。12.3区块链核心技术PKI与CA知识科普MerkleTree一种哈希二叉树,使用它可以快速校验大规模数据的完整性。在比特币网络中,Merkle树被用来归纳一个区块中的所有交易信息,最终生成这个区块所有交易信息的一个统一的哈希值,区块中任何一笔交易信息的改变都会使得使得Merkle树改变。时间戳服务器大多用来进行比对以及验证处理,时间戳服务器是一款基于PKI(公钥密码基础设施)技术的时间戳权威系统,对外提供精确可信的时间戳服务。它采用精确的时间源、高强度高标准的安全机制,以确认系统处理数据在某一时间的存在性和相关操作的相对时间顺序,为信息系统中的时间防抵赖提供基础服务。12.3区块链核心技术同态加密同态加密是一种特殊的加密方法。对密文直接进行处理,跟对明文直接处理后再对处理结果加密,结果是一样的。经过同态加密后的密文,再经过特定的运算生成新密文;新密文与相应的明文进行特定的运算后生成的结果再加密是一致的。T(E(123))新密文等于E(T(123))全同态:同时满足加法同态与乘法同态称做全同态。12.3区块链核心技术共识算法POW(ProofOf

Work)工作量证明共识算法,在比特币中被首次提出。数字货币矿工们通过随机哈希计算获得当前区块的记账权,从而获得区块奖励。PoW的特点是哈希计算随机,难以弄虚作假,且容易被验证。但另一方面,矿工们间的哈希计算竞争浪费了大量资源。(耗费算力获取记账权)PoS(ProofOfStake)&

DPoS权益证明共识算法,PoW的替代方案。根据节点所占权益比重,决定其获得区块记账权的概率,权益越多,越有机会获得区块记账权。DPoS在PoS的基础上更近一步,节点将权益委托给其他节点,由其代表自己行使权力。12.3区块链核心技术零知识证明零知识证明:证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。例子:A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天两个人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B,有2个方法。①B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。②A给出一个随机值,并使用B的公钥对其加密,然后将加密后的数据交给B,B用自己的私钥解密并展示给A,如果与A给出的随机值相同,则证明对方是B。方法②属于零知识证明12.3区块链核心技术智能合约智能合约是一个由计算机处理的、可执行合约条款的交易协议。其总体目标是能够满足普通的合约条件,例如支付、抵押、保密甚至强制执行,并最小化恶意或意外事件发生的可能性,以及最小化对信任中介的需求。智能合约所要达到的相关经济目标包括降低合约欺诈所造成的损失,降低仲裁和强制执行所产生的成本以及其它交易成本等。智能合约(以太坊)智能合约是以太坊一个重要的概念,以计算机程序的方式来运行各种合约。以太坊以图灵完备的高级语言(Solidity、Serpent、Viper)来开发智能合约。智能合约运行在以太坊虚拟机(EVM)中,它可以接收来自外部的交易请求与事件,通过触发运行提前编写好的代码逻辑实现业务规则。以太坊客户端要接入以太坊网络需要安装客户端程序或调用SDK开发库(标准的JSON-RPC协议),实现账户管理、交易、挖矿、智能合约方面的操作。12.3区块链核心技术智能合约部署(以太坊)12.3区块链核心技术区块链技术架构12.3区块链核心技术区块结构(比特币为例)12.3区块链核心技术区块头数据项版本号,标示软件及协议的相关版本信息。前一区块哈希值,引用区块链中前一区块头的哈希值,通过这个值每个区块才首尾相连组成了区块链Merkle根,这个值是由区块主体中所有交易的哈希值再逐级两两哈希计算出来的一个数值,主要用于检验一笔交易是否在这个区块中存在。时间戳,记录该区块产生的时间,精确到秒。难度值,本区块头哈希值小于或等于难度值才能被网络所接受,难度值越小,产生的新区块难度越大。(该值由区块链系统根据产生新区块时间调整)随机数,用来尝试产生满足本区块哈希值小于或等于难度值的随机参数。12.3区块链核心技术比特币区块参数区块头:80字节版本号:4字节上一区块哈希值:32字节(256位)Merkle根节点:32字节(256位)时间戳:4字节难度值:4字节随机数:4字节比特币区块链平均产生块/10分钟(通过调整难度值实现)1比特=约15000

RMB截止2017.7,区块数47万个,1个区块约1MB大小12.3区块链核心技术区块链结构(比特币为例)12.3区块链核心技术新区块形成过程在当前区块加入区块链后,所有矿工就立即开始下一个区块的生成工作把在本地内存中的交易信息记录到区块主体中在区块主体中生成此区块中所有交易信息的Merkle树,把Merkle树根的值保存在区块头中把上一个刚刚生成的区块的区块头的数据通过SHA256算法生成一个哈希值填入到当前区块区块头中的前一区块哈希字段中把当前时间保存在时间戳字段中难度值字段会根据之前一段时间区块的平均生成时间进行调整以应对整个网络不断变化的整体计算总量,如果计算总量增长了,则系统会调高数学题的难度值,使得预期完成下一个区块的时间依然在约10分钟内12.3区块链核心技术区块链运行机制12.3区块链核心技术分叉同一时间段内全网不止一个节点能计算出随机数,即会有多个节点在网络中广播它们各自打包好的临时区块(都是合法的)。某一节点若收到多个针对同一前续区块的后续临时区块,则该节点会在本地区块链上建立分支,多个临时区块对应多个分支。该僵局的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。其他分支将会被网络彻底抛弃。BLOCK1BLOCK2BLOCK3BLOCK4BLOCK5BLOCK612.3区块链核心技术双花双花,即二重支付,指攻击者几乎同时将同一笔钱用作不同交易。每当节点在把新收到的交易单加入区块之前,会顺着交易的发起方的公钥向前遍历检查,检查当前交易所用的币是否确实属于当前交易发起方,此检查可遍历到该币的最初诞生点(即产生它的那块区块源)。虽然多份交易单可以任意序的广播,但是它们最终被加入区块时必定呈现一定的顺序。这决定了任意一笔交易资金来源都可以被确定的回溯。挖矿参与者根据上一个区块的hash值,10分钟内验证过的交易内容,再加上自己猜测的一个随机数X,让新区块的hash值小于比特币网络中给定的一个数(难度目标值)。这个数越小,计算出来就越难。系统每隔两周(即经过2016个区块)会根据上一周期的挖矿时间来调整挖矿难度(通过调整限制数的大小),来调节生成区块的时间稳定在10分钟左右。为了避免震荡,每次调整的最大幅度为4

倍。为了挖到矿,参与处理区块的用户端往往需要付出大量的时间和计算力。算力一般以每秒进行多少次hash计算为单位,记为h/s。12.3区块链核心技术挖矿钱包地址(比特币)12.3区块链核心技术比特币交易过程12.3区块链核心技术比特币交易过程第1步:所有者A利用他的私钥对前一次交易(比特币来源)和下一位所有者B签署一个数字签名,并将这个签名附加在这枚货币的末尾,制作成交易单。要点:B以公钥作为接收方地址Base58{

Ripemd160[

Sha256(B方公钥)

]

}交易单:交易数据+hash(交易数据)+sign[

hash(交易数据)

]+B方公钥第2步:A将交易单广播至全网,比特币就发送给了B,每个节点都将收到的交易信息纳入一个区块中要点:对B而言,该枚比特币会即时显示在比特币钱包中,但直到区块确认成功后才可用。目前一笔比特币从支付到最终确认成功,得到6个区块确认之后才能真正确认到帐。第3步:每个节点通过解一道数学难题,从而去获得创建新区块权利,并争取得到比特币的奖励(新比特币会在此过程中产生)要点:节点反复尝试寻找一个数值,使得将该数值、区块链中最后一个区块的Hash值以及交易单三部分送入SHA256算法后能计算出散列值X(256位)满足一定条件(比如前20位均为0),即找到数学难题的解。由此可见,答案并不唯一。(挖矿过程)12.3区块链核心技术比特币交易过程第4步:当一个节点找到解时,它就向全网广播该区块记录的所有盖时间戳交易,并由全网其他节点核对要点:时间戳用来证实特定区块必然于某特定时间是的确存在的。比特币网络采取从5个以上节点获取时间,然后取中间值的方式作为时间戳。第5步:全网其他节点核对该区块记账的正确性,没有错误后他们将在该合法区块之后竞争下一个区块,这样就形成了一个合法记账的区块链。要点:每个区块的创建时间大约在10分钟。随着全网算力的不断变化,每个区块的产生时间会随算力增强而缩短、随算力减弱而延长。其原理是根据最近产生的2016年区块的时间差(约两周时间),自动调整每个区块的生成难度(比如减少或增加目标值中0的个数),使得每个区块的生成时间是10分钟。目录12.2

区块链基本概念及特征CONTENTS12.1区块链技术起源与发展信息技术(Windows10+Office2016)12.3区块链核心技术12.4区块链开源技术介绍12.5区块链应用场景12.4区块链开源技术1、开源BitCoinBitCoin是最早、也是现网运行区块链最成功的一个开源项目,核心技术框架采用C++开发,共识算法采用PoW,每秒交易量(TPS)为不多于7笔,开源许可协议为MIT。官方编程语言:C++开源许可协议:MIT开源项目地址:/bitcoin/bitcoin2、开源Ethereum以太坊(Ethereum)是一个支持图灵完备脚本运行的区块链开发平台,基于智能合约,降低用户搭建DApp应用的门槛。目前以太坊正式运行的版本是1.0,采用的是POW共识算法,公网TPS是25笔,未来将采用类POS的Casper算法,区块链的确认速度将得到大幅提升。在规划的2.0版本中,TPS有望可以达到2000TPS。官方编程语言:Go开源许可协议:GPLv3开源项目地址:/ethereum12.4区块链开源技术3、开源Hyperledger

FabricHyperledger

Fabric是IBM开源的区块链项目,开发环境可以适配多种环境(virtualbox虚拟机、自建网络和IBM的BlueMix),支持Docker,共识算法插件化,注重角色的权限控制和企业级的安全机制。主要开发语言是Go语言,支持JavaScript、Java和Python等语言。其子项目Iroha助力区块链移动应用程序的开发。官方编程语言:Go开源许可协议:Apache

2.0开源项目地址:https:///hyperledger/fabric4、开源Ripple瑞波(Ripple)是世界上第一个开放的支付网络,也是目前最成功的区块链技术公司。其核心产品Ripple协议本质上是一个实时结算系统,通过引入新的共识机制RPCA,只要特殊节点投票,就能在很短时间内完成交易的验证和确认。官方编程语言:C++开源许可协议:ISC开源项目地址:/ripple/rippled目录12.2

区块链基本概念及特征CONTENTS12.1区块链技术起源与发展信息技术(Windows10+Office2016)12.3区块链核心技术12.4区块链开源技术介绍12.5区块链应用场景12.5区块链应用场景应用领域1、商品防伪借助区块链技术,实现品牌商、渠道商、零售商、消费者、监管部门、第三方检测机构之间的信任共享,全面提升品牌、效率、体验、监管和供应链整体收益。将商品原材料过程、生产过程、流通过程、营销过程的信息进行整合并写入区块链,实现精细到一物一码的全流程正品追溯。每一条信息都拥有自己特有的区块链ID“身份证”,且每条信息都附有各主体的数字签名和时间戳,供消费者查询和校验。区块链的数据签名和加密技术让全链路信息实现了防篡改、标准统一和高效率交换。2、贸易融资在供货商、进货商、银行等贸易融资参与主体间建立联盟链,通过区块链记录贸易主体资质、多频次交易、商品流转等信息,使贸易双方及银行间公开透明安全地共享真实可信的信息。针对供应链中的大型企业,银行可以借此丰富融资风控模型,减少线下人工采集和确认信息真实性的工作量,开展动产评估下的融资服务。有融资困难的供应链上下游中小企业,可基于区块链提供的主体资质认证、与大型企业的多频次交易信息认证获得信用背书,缓解融资难题。12.5区块链应用场景3、交易清结算交易清结算的过程也是交易双方分别记账的过程,在传统的交易模式中,记账过程是交易双方分别进行的,不仅要耗费大量人力物力,而且容易出现对账不一致的情况,影响结算效率。通过区块链系统,交易双方或多方可以共享一套可信、互认的账本,所有的交易清结算记录全部在链可查,安全透明、不可篡改、可追溯,极大提升对账准确度和效率。通过搭载智能合约,还可以实现自动执行的交易清结算,大大降低对账人员成本和差错率,特别是在跨境支付场景下,效果尤其明显。4、资产证券化ABS传统的资产证券化需要结算机构、交易所和证券公司等多重协调,

温馨提示

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

评论

0/150

提交评论