区块链和比特币ppt课件.pptx

上传人:飞****2 文档编号:19271088 上传时间:2022-06-05 格式:PPTX 页数:28 大小:3.31MB
返回 下载 相关 举报
区块链和比特币ppt课件.pptx_第1页
第1页 / 共28页
区块链和比特币ppt课件.pptx_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《区块链和比特币ppt课件.pptx》由会员分享,可在线阅读,更多相关《区块链和比特币ppt课件.pptx(28页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、区块链技术知识分享区块链技术知识分享2018年6 6月9 9日Agenda区块链和比特币以太坊(Ethereum)及智能合约介绍超级账本(Hyperledger)项目和fabric区块链和比特币概述起源BTC诞生BTC交易原理UXTO区块脚本地址生成Merkel Tree工作量证明最长链规则挖矿分叉扩展性安全性发展方向区块链和比特币(1)-概述去中心化的账本,一种使用密码学的方法相关联产生的数据块匿名性+专属所有权难以篡改具有自治的能力区块链和比特币(2)-起源1976年,Bailey W. Diffie和Martin E. Hellman密码学的新方向发表(公钥加密理论), 次年RSA算法诞

2、生1980年,Merkle Ralf提出Merkle-Tree数据结构和算法(区块中交易校验的手段)1982年,Leslie Lamport等人提出拜占庭将军问题(共识的基础)1985年,椭圆曲线加密(ECC)算法诞生(加密的基础)1990年,David Chaum创立Digital Cash,第一种中心化不可追踪的加密数字现金系统1992年,Scott Vanstone等人提出椭圆曲线加密数字签名算法(ECDSA)1997年,Adam Back发明Hashcash技术,为一种工作量证明算法(Proof of Work,POW), 此算法依赖哈希函数的不可逆特性,达到容易被验证,但很难被破解的

3、特性1998年,戴伟发布匿名分布式电子现金系统B-money,Nick Szabo提出去 中心化货币Bit Gold的理论2005年,Hal Finney提出可重复使用的工作量证明机制(RPOW),结合B-money 与Adam Back提出的Hashcash算法进行数字货币试验区块链和比特币(3)-BTC诞生2008年11月1日,一个署名中本聪(Satoshi Nakamoto)的人在一个小型 密码学讨论组中发表了论文比特币:一种点对点的电子现金系统2009年1月3日,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了第 一笔50个比特币(创世区块)区块链和比特币(4)-BTC交易原理区块链和

4、比特币(5)-UTXO和传统account based支付系统不同, 比特币系统中使用区块来记录交易往来, 本质为一种UXTO(Unspent Transaction Output)方案、区块账本记录的是交易(日志),而不是 货币;每一笔交易都要消耗(spend)N笔 输入,产生N笔输出;但输入总量和输出 总量需要保持相等区块链和比特币(6)-区块完整的区块结构名称字节字段说明Magic NO4魔数表征网络协议,0 xD9B4BEF9表示主网,0 xDAB5BFFA表示testnetBlocksize4区块大小用字节表示的该字段之后的区块大小Blockheader80区块头组成区块头的几个字段

5、Transaction counter1-9交易计数器该区块包含的交易数量,包含coinbase交易Transactions不定交易记录在区块里的交易信息,使用原生的交易信息格式,并且交易在数据流中的位置必须与Merkle树的叶子节点顺序一致区块头(Blockheader)结构名称名称字节字节数据类型数据类型描述描述Version4int32_t版本号表示所遵循的规则PreBlockHeaderHash32char32SHA256(SHA256()前一块头部的哈希MerkleRootHash32char32这块中所有交易的哈希Time4uint32_tUnix时间戳Bits4uint32_t难

6、度系数Nonce4uint32_t随机数区块链和比特币(7)-区块Transactions 结构Input结构名称名称字节字节数据类型数据类型描述描述Version4int32_t交易版本Inputs Counter1-9可变integer输入单数量Inputs Detail-array输入单列表Outputs Counter1-9可变integer输出单数量Outputs Detail-array输出单列表Lock Time4uint32_t锁定时间名称名称字节字节数据类型数据类型描述描述Previous tx hash32char32引用前一交易的hashPrevious Output I

7、ndex4uint32_t被引用交易的Output的索引Input Script Length1-9可变integer输入单列表Input Script/scriptSig-输入脚本Sequence Number4uint32_tOutput结构名称名称字节字节数据类型数据类型描述描述Amount/Value8uint32_t比特币数量Input Script Length1-9uint32_t输出脚本长度Output Script/scriptPubKey-输出脚本区块链和比特币(8)-脚本Hash:9c50cee8d50e273100987bb12ec46208cb04a1d5b68c9b

8、ea84fd4a04854b5eb1输入交易:前导输入的Hash:437b95ae15f87c7a8ab4f51db5d3c877b972ef92f26fbc6d3c4663d1bc750149输入脚本 scriptSig:3045022100efe12e2584bbd346bccfe67fd50a54191e4f45f945e3853658284358d9c062ad02200121e00b6297c0874650d00b786971f5b4601e32b3f81afa9f9f8108e93c752201038b29d4fbbd12619d45c84c83cb4330337ab1b1a373

9、7250f29cec679d7551148a输出交易:转账值:0.05010000 btc输出脚本 scriptPubKey:OP_DUP OP_HASH160 be10f0a78f5ac63e8746f7f2e62a5663eed05788 OP_EQUALVERIFY OP_CHECKSIG区块链和比特币(9)-脚本P2PKH例子交易b中有一个输入交易引用了交易a的输出交易,它们的脚本是一对题与解:题:交易a的输出脚本,若干个脚本指令和转账接收方的公钥哈希OP_DUP OP_HASH160 be10f0a78f5ac63e8746f7f2e62a5663eed05788 OP_EQUALV

10、ERIFY OP_CHECKSIG解:交易b的输入脚本,包含两个元素,交易发起方的签名和公钥(sig & pubkey)3046022100ba1427639c9f67f2ca1088d0140318a98cb1e84f604dc90ae00ed7a5f9c61cab02210094233d018f2f014a5864c9e0795f13735780cafd51b950f503534a6af246aca30103a63ab88e75116b313c6de384496328df2656156b8ac48c75505cd20a4890f5ab+区块链和比特币(10)-地址生成BTC地址生成过程EC

11、DSA Public KeyRIPE160 MD(SHA256(Public Key)Public Key HashRIPE160 MD(SHA256(version +Public Key hash)Check SumVersionBase58 EncodeBitCoin Address区块链和比特币(11)-Merkel Tree区块链和比特币(12)-工作量证明区块的Hash=SHA256(SHA256(区块头内容)一段时间内(平均10分钟左右,具体时间会与记账难度相互影响),只有1个节点可以记账成功通过不断计算寻找合适的区块HASH使之小于给定的目标HASH(目标HASH值的压缩格式是

12、一个特殊 的浮点编码类型,首字节是指数(仅使用了5个最低位)表示右移的位数,后3个字节是有效值,该目标 HASH能表示256位的数值), 通过竞争获得唯一记账权记账被证实后,其余节点复制记账结果每产生2016个区块之后,会根据实际产生的区块和目标区块数做对比,进行难度调整区块链和比特币(13)-工作量证明区块链和比特币(14)-工作量证明难度计算公式:difficulty = difficulty_1_target / current_target,目标(target)是一个256位长的数值。有许多不同测量难度的方法,得到的difficulty_1_target可能不同。传统地,它表示一个HA

13、SH值,前32位为0,后续部分为1(称之为:矿池难度或pdiff),比特币协议把目标HASH表示成一个固定精度的自定义浮点类型,因而,比特币客户端用该值来估计难度(称之为:bdiff)。难度经常被存贮在区块中,每个块存贮一个十六制的目标HASH的压缩表达式(称之为:Bits),目标HASH可以以预先定义的公式计算出来。例如:如果区块中压缩的目标HASH为0 x1b0404cb,那十六进制的目标HASH如下所示此时的难度值为区块链和比特币(15)-最长链规则累计了最多难度的区块链,也是包含最多区块的那个链称为主链,每一个节点总是选择试图延长主链当有两名矿工在几乎在相同的时间内,各自都算得了POW

14、解,便立即传播自己的“获胜” 区块到网络中,一些节点首先收到#3458A, 一些节点首先收到#3458B,这两个候选区块(通 常这两个候选区块会包含几乎相同的交易)都是主链的延伸,分叉就会产生,这时分叉出有竞 争关系的两条链,如图:收到#3458A和#3458B的节点,各自开始进行计算POW解,总会有一方抢先发现,比如收到#3458B 的节点,成功打包形成了#3459区块,并向全网广播后,网络中的节点会把#3458B#3459B的链作为 最长链。BTC规定,交易被成功打包之后,还需要6个以上的区块延伸,才算成功(确认为主链)区块链和比特币(16)-挖矿SETGENERATE协议:CPU时代挖矿

15、时代的协议。构造区块,初始化区块头各个字段,计算Hash并验 证区块,不合格则nNonce 自增,再计算并验证,如此往复。在CPU挖矿时代,nNonce提供的4字节 搜索空间完全够用(4字节即4G种可能,单核CPU运算SHA256D算力一般是2M左右),一般情况nNonce 只遍历完2个字节就返回去重构块。区块链和比特币(17)-挖矿Getwork协议代表了GPU挖矿时代,需求主要源于 挖矿程序与节点客户端分离,区块链数据与挖矿部件 分离。使用客户端节点直接挖矿,需要同步完整区块 链,数据和程序紧密结合,也就是说,如果有多台 电脑进行挖矿,需要每台电脑都单独同步一份区块链 数据。这其实没有必要

16、,对于矿工来说,最少只需 要一个完整节点就可以。区块链和比特币(18)-挖矿Getblocktemplate协议让矿工自行构造区块。如此 一来,节点和挖矿完全分离。对于getwork来说,区 块链是黑暗的,getwork对区块链一无所知,其只知 道修改data字段的4个字节。对于getblocktemplate 来说,整个区块链是透明的,getblocktemplate掌 握区块链上与挖矿有关的所有信息,包括待确认交易 池。矿池通过getblocktemplate协议与网络节点交互, 以获得区块链的最新信息,通过stratum协议与矿工 交互。此外,为了让之前用getwork协议挖矿的软件 也

17、可以连接到矿池挖矿,矿池一般也支持getwork协 议,通过阶层挖矿代理机制实现(Stratum mining proxy)。stratum与矿池采用TCP方式通信,数据使 用JSON封装格式。区块链和比特币(19)-分叉硬分叉 如果区块链软件的共识规则被改变,并且这种规则改变无法向前兼容,旧节点无法认可新节点产生的区块, 即为硬分叉。这时候旧节点会拒绝新规则的区块,于是新节点和旧节点会开始在不同的区块链上运行 (挖矿、交易、验证等)软分叉 如果区块链的共识规则改变后,这种改变是向前兼容的,旧节点可以兼容新节点产生的区块,即为软分叉。 软分叉通常刚开始并不会产生两条区块链,因为新规则下产生的块

18、会被旧节点接受,旧节点只是无法识别 新规则的真实意义。所以新旧节点仍然处于同一条区块链上,对整个系统的影响也就较小。区块链和比特币(20)-扩展性不断增长的比特币交易量区块链和比特币(21)-扩展性隔离见证(Segregated Witness,已启动) 为闪电网络的前置方案。软分叉方案,一方面是解决比特币存在的一个安全漏洞(延展攻击), 一个是用于扩容。其基本思想是将原来的交易数据结构里的签名从区块里移出,仅保留1个指向 这个签名的指针。 区块链和比特币(22)-扩展性闪电网络(Lighting network,未启动) 本质就是安全地链下交易。其原理上基于BOLT(Basic of Lig

19、htning)协议实现的链下交易网络, 主要由RSMC(Revocable Sequence Maturity Contract)和HTLC(Hashed TimeLock Contract) 两个智能合约组成,翻译过来分别是序列到期可撤销合约和哈希时间锁定合约 其出现的主要理由就是为了应对链上的高额手续费和小额支付交易。 其特点是: 1. 闪电网络没有区块链结构; 2. 闪电网络不依赖某个公链,不是Dapp。只要能实现BOLT协议,无论 比特币、以太坊,都可以用上闪电网络; 3. 闪电网络支持代币原子互换(Atomic Swap),也就是跨链(cross-chain)操作区块链和比特币(23

20、)-安全性51%算力攻击 掌握51%以上算力的节点统一行为,可以随意生成最长链,伪造区块重放攻击 这里的“攻击”不是黑客发起的某种侵略或偷盗行为。而是因为区块链分叉后的两个分支链,都有相同的 地址、私钥和交易格式。在分叉点前出现的UTXO,在分叉后引出的交易,如果分叉时未加入防御重放攻击 的代码,自动会被分叉后的两条链都确认,从而构成双花。 延展性(Transaction Malleability)攻击 延展性攻击者侦听比特币P2P网络中的交易,利用交易签名算法的特征修改原交易中的input 签名, 生成拥有一样input和output的新交易,然后广播到网络中形成双花,这样原来的交易将有一定

21、的 概率不能被确认,造成不可预料的后果量子计算威胁 比特币的POW和授权/验证交易所用的签名是量子计算利用强大算力进行攻击的两大弱点。区块链和比特币(24)-发展方向吞吐量和存储带宽 通过改变共识比如采用DPOS改善性能可能加剧中心化的风险智能合约(Smart Contract) DAG区块链 有向无环图,目前已经实现的如BYTEBALL和IOTA跨链技术 公证人机制、侧链/中继、哈希锁定预言机 (Oracle) 预言机提供了智能合约在合约条款得到满足时运行的必要条件,这些条件可以是与智能合约有关的任何 东西 - 温度,支付完成,价格变化等。这些预言机是智能合约与外部进行数据交互的唯一途径。Q&A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com