谈谈区块链(02):精通比特币.pptx

上传人(卖家):罗嗣辉 文档编号:2046264 上传时间:2022-01-21 格式:PPTX 页数:32 大小:101.58KB
下载 相关 举报
谈谈区块链(02):精通比特币.pptx_第1页
第1页 / 共32页
谈谈区块链(02):精通比特币.pptx_第2页
第2页 / 共32页
谈谈区块链(02):精通比特币.pptx_第3页
第3页 / 共32页
谈谈区块链(02):精通比特币.pptx_第4页
第4页 / 共32页
谈谈区块链(02):精通比特币.pptx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、区块链技术分享-精通比特币-作者:谈国鹏课程安排 精通比特币 玩转以太坊 搞定hyperledger比特币起源 一种点对点的电子现金系统 中本聪(satoshi) 日裔美国人,物理学学士,隐居于洛杉矶某山脚下,不愿谈及和承认与比特币有关。 创世区块:“ The Times 03/Jan/2009 Chancellor on brink of second bailout for banks ” (2009 年 1 月 3 日,财政大臣正处于实施第二轮银行紧急援助的边缘)创世交易 Block0 :https:/blockchain.info/block/000000000019d6689c085

2、ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f Block443222: https:/blockchain.info/block/000000000000000001b2a29dc4e088ab46deffc8c58ed365b1a71e921376028c现有银行系统的缺点 中心化(数据中心、异地备灾):缺点:易篡改、易产生灾难、易无法服务; 有账户系统:缺点:易篡改; 货币发行:货币即数字,想发多少发多少(央行发行)- 货币超发是政府对人民财富掠夺最简单快捷有效的方法; 隐私性:无政府主义者想拥有更好的财富隐私性;比特币的优点 去中心化,数万(甚至

3、更多)个节点上运行完整数据拷贝; 无账户系统,发明UTXO,了不起的发明! 发行机制:通过coinbase交易发行,每4年减半,从50,目前已减至12.5。上限:2100万个,永不超发,且无法超发! 隐私性:强。你只知道某个地址拥有多少比特币,但并不知道它是谁的。但从监管角度来说可能是一个缺点。比特币的缺点 隐私性强,成为犯罪分子的结算工具,目前贩毒、洗钱等大量采用比特币; 分布式系统,软件更新困难,目前的扩容之争就是个典型的例子。交易 Transaction 设想一个典型的银行交易; 比特币的交易: confidence: Appeared in best chain at height 4

4、38889, depth 1. in PUSHDATA(71)30440220428401ac86cb8db137b994a284ff9f4e7d79560c98f4873a19517ef01212dcba022023e6a4ac9f26ba40e3e29bd35994f835f9b59b527aa41336e6fbca8d2cd31cc601 PUSHDATA(33)03a081d66a312d9ff080b55c75b6bed1f06ef41eb822880e3321dab98db2b86631 outpoint:61ad817969055ccfa374c7806e18574062e110

5、0ab72e393bc216f1d8e6ff3042:1 out DUP HASH160 PUSHDATA(20)f3ab1573aa9b9ae55597a430f8a3ef2de23554c7 EQUALVERIFY CHECKSIG 0.00041339 BTC out DUP HASH160 PUSHDATA(20)3eaa9a51dbc9c091e1436154c5865dc4c3468298 EQUALVERIFY CHECKSIG 0.00264682 BTC prps UNKNOWNTransaction details 每个transaction 拥有一个hash,算法:dSH

6、A256 = SHA256(SHA256(transactionbytes) Why dSHA256? About hash: MD5、SHA-1、SHA-2(比特币采用)、SHA-3(以太坊、hyperledger采用) Transaction包含n个input, m个output N,m 可以无限大吗? Input包含:之前一个output的引用(通过txid和output index(从0开始计数))以及SigScript(签名) Output包含:pubScript(地址脚本),比特币数量UTXO Output分为两种: UTXO:还没有被花费的output STXO:已经被花费掉的o

7、utput 每个完整节点维护一份完整的UTXO索引,不在UTXO中的交易将被拒绝; 每个地址的余额由它拥有的所有UTXO累加计算而得;Transaction fee 所有input btc总和都多于output btc总和,多余的部分即为transaction fee; 一个交易最少的交易费用为0.0001BTC,低于此将被矿工拒绝; 交易费用将被矿工获得(通过把它们加入coinbase交易中); 矿工按fee/kbyte,来决定优先打包哪些交易; Why transaction fee? 防攻击 奖励矿工矿工 比特币节点分为:普通完整节点(peer)、矿工节点(miner)和SPV节点; 由

8、矿工打包交易,形成区块链: Transaction - block - blockchain 矿工的3个问题: 问题1:由谁来打包交易?(因为有很多矿工) 问题2:何时打包交易? 问题3:如何打包交易?问题1:由谁打包交易? PoW:Proof of work 规则:每个区块生成的hash值小于目标值,谁快谁来打包。 Hash的生成: 算法:dSHA256(headerbytes) Header字段:version(4)、prev_block_hash(32)、merkle_root_hash(32)、time(4)、bits(4)、nonce(4):共字节问题2:何时打包交易? 平均每10分

9、钟出一次块; 矿工算出符合条件的hash就立即出块; 每生成1026块时根据平均出块时间调整一次目标值; 历史最快出块时间为几秒、最慢出块时间为1个多小时; 同时算出如何解决? 维护2条以上blockchain 对比以太坊的叔块(uncle bock)问题3:如何打包交易? 矿工会包含尽量多的交易;按交易给予的fee/kb来排序; 交易数量有上限,每个block不能超过1MB; 每个块的第一个交易为coinbase交易,没有input,output的地址是矿工的地址,数量是区块奖励(当前为12.5)和所有交易费用的总和; 用每个交易的txhash生成merkle tree,并生成merkle

10、root hash放在header中;Merkle树 神器:merkle树; Merlke树在比特币中的应用:Merkle树() 为什么merkle树? 支持SPV SPV: Simple Payment Verification 区块太大,超过几十G、未来更大; 区块header很小,每个byte,目前总大小M+ 通过区块头和交易的merkle树来验证交易的一种方式 如何实现: 客户端持续从连接的节点上获取新区块的头部,并加入到本地区块链中; SPV客户端从节点上获取到一个跟自己相关的交易hash值; SPV客户端从节点上下载包含该交易hash的完整交易merkle树; 重新计算并验证mer

11、kle root和头部中的是否一致,若一致则验证通过;() 如何从节点上获取和自己相关的交易hash? Bloom filter Bloom filter SPV节点在相连节点上注册自己感兴趣的地址(可多个) 当节点通过bloom filter发现和该地址相关交易的时候便通知该SPV节点密码学原理 私钥(prikey)的生成: 随机数,或者通过随机数seed生成; 公钥(pubkey)的生成: Pubkey=椭圆曲线函数(prikey,p,q),不可逆; 比特币地址的生成: Address=BASE58(RIPEMD160(SHA256(pubkey),不可逆;签名原理 RSA非对称加密原理:

12、 公私钥对; 公钥加密仅私钥能解;私钥加密仅公钥能解; 比特币交易签名:SigScript 源数据hash; 私钥加密后的密文; 公钥解密密文,与源数据hash比较;散列算法 256个灯泡,开关两种状态,一共有多少种组合? 2256 是多大的一个数字? Hash函数特点: 单向,不可逆; 输入改动一点,输出面目全非; 存在碰撞几率; 比特币中发生碰撞怎么办? 不同公钥地址映射到同一比特币地址安全性 攻击: 攻击是无解攻击; 目前算力分布: http:/ 交易深度: Depth: 0,状态为:PENDING; 已处于矿工们的mempool中,即将被打包入块; 何时被打包入块?取决于给交易给的fe

13、e,从几秒到天以上时间不等; Fee的入块速度参考:http:/bitcoinfees.21.co/ Depth: 1-n ,状态为BUILDING;已经入块,且深度为1-n,n值越大越安全; 官方建议信任depth为及以上的确认;到达后要想再被推翻需要攻击;黑客与攻击()攻击交易所(示例流程): 注册某交易所A,并买入BTC; 探测到该交易所当前连接的节点:k、p、m 发起提币请求,交易所地址x转入你的地址y 5BTC,该交易信息被广播至k、p、m 同时、立即、或提前向k、p、m发起DDOS攻击,恰好让k、p、m收到来自交易所A的转帐交易,同时来不及向其它节点转发该交易; 打电话给交易所妹子

14、,说提币失败,要求帮忙处理; 妹子查询交易所交易记录(txhash),发现没有记录,答应补发; 解除对k、p、m的DDOS攻击,让其正行工作,地址y收到x的5BTC 交易所妹子通过后台处理系统向地址y补发5BTC,到此攻击完成,非法取得BTC黑客与攻击() 电商双花攻击(示例流程): 打开某电商(支持比特币支付),进入付款页面; 将比特币客户端连接至美国某节点(制造网络延迟);转账5BTC至个人另一个账户; 用该账户(当前可用余额已为零)向电商支付5BTC,显示为支付成功,状态:PEDING,depth:0,因为网络延迟该电商支付环境中UTXO还未同步; 若该电商信任depth为的交易(大部分

15、信任),并且立即发货(尤其是数字产品)则攻击成功; 很快,电商会收到状态:DEAD的消息,若其不做处理,则双花攻击成功;黑客与攻击(3) 侵入交易所/在线钱包网站 入侵到交易所网站后台,获取访问数据库权限,搜索并下载比特币公私钥对; 或者搜索钱包文件,获取并下载公私钥对; 在本地重新构建钱包,转移比特币 历史上发生的比特币黑客事件: http:/ Bitcoin core 与 Bitcoin Unlimited之争: Core代表广大客户端,无政府主义者; Unlimited代表广大矿工,商人性质; Core力推隔离验证:segwit 将交易签名部分拿出来; 通过P2SH来欺骗旧节点; Unl

16、imited支持硬分叉:简单扩容至MB 你是否支持隔离验证? 反对软分叉,软分叉欺骗旧节点; 违背了比特币节点完整验证的原则;彩色币利用比特币实现数字化资产发行、转让、管理等类以太坊的功能;利用比特币交易中暂未使用的字段: OP_RETURN 实现染色功能;例子: inputs: 17ztLiaGdWcWFX8CgYqWGQPEizepPLsSrb : 500000, 19GAFukX9ixSDLy1p2UEed2mpDQ69QPUXr : 2125735, 1MyK5te6U6zGoom68nVEzTU2x949ReNySN : 2500000 outputs: 1LQhUnH2UY9cuL

17、h8qvHUNPL3GgLVWU5ziD : 1000000, 1PEFUd66e2Q7w4w4KisZRSaupNJz7K7dpL : 1000000, 1PmqmJGRxpKx45FHLTBmteKQxViHgm4Mxi : 1000000, 1DCo3v1gSqU6g2GGDz9d4BD35h9cARe5dy : 2000000, OP_RETURN : 0 67 67 80 0 0 0 255 255 + 0 * 71 1MyK5te6U6zGoom68nVEzTU2x949ReNySN : 115735白皮书: http:/ 二代币 莱特币、狗狗币等; 瑞波币 和比特币同时期的专注于银行/个人间转账、清算的项目 首次提出共识机制方案,PBFT - XRP 侧链 闪电网络比特币开发 比特币源码(bitcoin core源码) https:/ (C+) SPV钱包、支付源码 https:/bitcoinj.github.io/ (java)QA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(谈谈区块链(02):精通比特币.pptx)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|