上海交通大学:《网络安全技术》课程教学资源(PPT课件讲稿)比特币(主讲:刘振)

4.比特币的区块 交易“体小量大”,自然而然的想法就是把交易打包成 “块”、对块来操作,从而达到提高效率的目的。 在把交易打包到块的过程中如何组织这些交易? 可以有各种方式 比特币使用的是一种称为 Merkle tree的数据结构 Merkle Tree 用Hash指针建立的二叉树 能够快速地(对数级复杂度)判定一个数据是否在一个集合中 能够快速地判定集合中是否有数据被篡改
◼ 交易“体小量大”,自然而然的想法就是把交易打包成 “块”、对块来操作,从而达到提高效率的目的。 ◼ 在把交易打包到块的过程中如何组织这些交易? ◼ 可以有各种方式 ◼ 比特币使用的是一种称为Merkle Tree的数据结构 ◼ Merkle Tree ◼ 用Hash指针建立的二叉树 ◼ 能够快速地(对数级复杂度)判定一个数据是否在一个集合中 ◼ 能够快速地判定集合中是否有数据被篡改 3 4. 比特币的区块

4.比特币的区块:Hash指针 ■Hash指针 数据data的hash值H(data)蕴含了data的存储位置信息,即可以通 过 H(data)的值读取到数据。从而,h(data)不仅指明了数据的存 储位置,也提供了对数据是否被篡改过的验证证据。从一个hash 值y处读取数据data,只有当y=H(data)成立,才说明数据没有被 篡改过。例 例如,比特币中每个交易的hash是交易的唯一标识。 H() data
◼ Hash指针 ◼ 数据data的hash值H(data)蕴含了data的存储位置信息,即可以通 过H(data) 的值读取到数据。从而,h(data)不仅指明了数据的存 储位置,也提供了对数据是否被篡改过的验证证据。从一个hash 值y处读取数据data,只有当y=H(data)成立,才说明数据没有被 篡改过。例 ◼ 例如,比特币中每个交易的hash是交易的唯一标识。 4 data 𝐻( ) 4. 比特币的区块:Hash指针

4.比特币的区块:Hash指针 ■Hash链 prev: H( prev HO data data data 只需要记住最后的这个hash值,就能保证整条链的防篡改性 基于的什么密码学原理?
◼ Hash链 5 data prev:H( ) data data H() prev:H( ) prev:H( ) 只需要记住最后的这个hash值,就能保证整条链的防篡改性。 基于的什么密码学原理? 4. 比特币的区块:Hash指针

4.比特币的区块: Merkle tree ■Merk| e tree 数据放在叶子节点,除了叶子节点之外,每个节点包含两个指向其子节点的Hash指针。(每个 节点的Hash值存在其父节点中) 任何数据被篡改的话,会影响该节点到根节点这个路径上所有节点的Hash值,当然也包含根节 点的Hash值。所以,存储根节点Hash值即可保证数据的不可篡改性 问题:Mrk| e Tree的每个内 部节点需要多大存储空间? H(1) H(1)h H(1)H(1) H(1)H(1) H(/)H
◼ Merkle Tree ◼ 数据放在叶子节点,除了叶子节点之外,每个节点包含两个指向其子节点的Hash指针。(每个 节点的Hash值存在其父节点中) ◼ 任何数据被篡改的话,会影响该节点到根节点这个路径上所有节点的Hash值,当然也包含根节 点的Hash值。所以,存储根节点Hash值即可保证数据的不可篡改性。 6 问题:Merkle Tree的每个内 部节点需要多大存储空间? 4. 比特币的区块:Merkle Tree

4.比特币的区块: Merkle tree ■隶属关系证明 在 Merkle tree中可以高效地证明一个隶属关系:一个数据在一个 Merkle tree的数据集合中 输入:a) Merkle tree根节点的Hash值b)一个数据块,及从该数据块到根节点的路径上所有 节点 对于有n个叶子(数据成员)的 Merkle tre中,需要的空间和时间复杂都是log(n)。 H(1)H(1) H(1)H( H(1)H(1) H(1)H(1) H(/)H(1) H()H( H(1)H() (data) (data) (data) (data)
◼ 隶属关系证明 ◼ 在Merkle Tree中可以高效地证明一个隶属关系:一个数据在一个Merkle Tree的数据集合中 ◼ 输入:a) Merkle Tree 根节点的Hash值 b) 一个数据块,及从该数据块到根节点的路径上所有 节点 ◼ 对于有n个叶子(数据成员)的Merkle Tree中,需要的空间和时间复杂都是log(n)。 7 4. 比特币的区块:Merkle Tree

4.比特币的区块: Merkle tree ■隶属关系证明 在 Merkle tree中可以高效地证明一个隶属关系:一个数据在一个 Merkle tree的数据集合中 输入:a) Merkle tree根节点的Hash值b)一个数据块,及从该数据块到根节点的路径上所有 节点 对于有n个叶子(数据成员)的 Merkle tre中,需要的空间和时间复杂都是log(n)。 H(1)H() H()H(1) H()H()
◼ 隶属关系证明 ◼ 在Merkle Tree中可以高效地证明一个隶属关系:一个数据在一个Merkle Tree的数据集合中 ◼ 输入:a) Merkle Tree 根节点的Hash值 b) 一个数据块,及从该数据块到根节点的路径上所有 节点 ◼ 对于有n个叶子(数据成员)的Merkle Tree中,需要的空间和时间复杂都是log(n)。 8 4. 比特币的区块:Merkle Tree

4.比特币的区块 ■比特币把交易用 Merkle tree打包成区块( Block),区块之间 用Hash指针链起来,形成“区块链”( Blockchain) Hash chain of blocks prev: H() prev: H prev:H( trans: HO) trans: H( trans: H() 一一一一一 H(1)H() Hash tree(Merkle tree transactions in each block H) H H() H(\ transaction ransaction transaction transaction
◼ 比特币把交易用Merkle Tree打包成区块(Block),区块之间 用Hash指针链起来,形成“区块链”(Blockchain) 9 4. 比特币的区块

4.比特币的区块 区块链中“Hash”和“链”的只是区块头( Block head) 交易的 Merkle tree的根节点的Hash值在区块头中,保证了块中 的交易数据被“包含在链中” -修改交易数据,会影响到 Merkle Tree根节点的Hash值,进而影响到整个块的 Hash值 区块 区块头 Hash chain of block 区块主体(交易数据) prev: H( prev:H() prev: H( trans: H( trans: H( trans:H( H()H( Hash tree(Merkle tree)of transactions in each block HG)H(P) HOD H transaction transaction transaction transaction
◼ 区块链中“Hash”和“链”的只是区块头(Block head) ◼ 交易的Merkle Tree的根节点的Hash值在区块头中,保证了块中 的交易数据被“包含在链中” ◼ ---修改交易数据,会影响到Merkle Tree根节点的Hash值,进而影响到整个块的 Hash值 ◼ 区块: ◼ 区块头 ◼ 区块主体(交易数据) 10 4. 比特币的区块

4.比特币的区块 区块头 字段 描述 prevousblockhash32字节前一区块Hsh值 merkleroot 32字节 交易 Merkle Tree根节点的Hash值 difficulty 4字节 挖矿的难度系数 nonce 4字节 挖矿挖到的临时随机数 ■区块(头)标识: 区块Hash值 区块本身的Hash值是区块的唯一性标识 区块Hash值并不包含在区块的数据结构里,不管是该区块在网络上传输时,抑或是它作为区块链的一部分被存储在 某节点的永久性存储设备上时 ◆任何人都可以根据区块数据计算其Hash值,实际上区块Hash值是当该区块从网络被接收时由每个节点计算出来的 区块的哈希值可能会作为区块元数据的一部分被存储在一个独立的数据库表中,以便于索引和更快地从磁盘检索区 块 区块高度 ◆创世区块的高度是0,其后每个区块的高度比前一个区块高度加1 区块高度并不是唯一的标识符,有可能两个相同高度的区块同时存在、竞争在区块链中的位置。 区块高度也不是区块数据结构的一部分,它并不被存储在区块里。当节点接收来自比特币网络的区块时,会动态地 识别该区块在区块链里的位置(区块高度) ◆区块高度也可作为元数据存储在一个索引数据库表中以便快速检索
◼ 区块头: ◼ 区块(头)标识: ◼ 区块Hash值 ◆ 区块本身的Hash值是区块的唯一性标识。 ◆ 区块Hash值并不包含在区块的数据结构里,不管是该区块在网络上传输时,抑或是它作为区块链的一部分被存储在 某节点的永久性存储设备上时。 ◆ 任何人都可以根据区块数据计算其Hash值,实际上区块Hash值是当该区块从网络被接收时由每个节点计算出来的。 ◆ 区块的哈希值可能会作为区块元数据的一部分被存储在一个独立的数据库表中,以便于索引和更快地从磁盘检索区 块。 ◼ 区块高度 ◆ 创世区块的高度是0,其后每个区块的高度比前一个区块高度加1。 ◆ 区块高度并不是唯一的标识符,有可能两个相同高度的区块同时存在、竞争在区块链中的位置。 ◆ 区块高度也不是区块数据结构的一部分,它并不被存储在区块里。当节点接收来自比特币网络的区块时,会动态地 识别该区块在区块链里的位置(区块高度)。 ◆ 区块高度也可作为元数据存储在一个索引数据库表中以便快速检索。 11 字段 大小 描述 previousblockhash 32字节 前一区块Hash值 merkleroot 32字节 交易Merkle Tree根节点的Hash值 difficulty 4字节 挖矿的难度系数 nonce 4字节 挖矿挖到的临时随机数 4. 比特币的区块

4.比特币的区块 每个区块的交易(树)中都有且只有一个特殊的交易: coinbase交易 只有一个输入,只有一个输出:且输入并不指向任何前驱交易的输出 ●并不消费之前的交易的输出(的比特币),因此,输入并不指向“上一交易” 输出币值=当前区块奖励值+交易费 口区块奖励值最初是50个比特币,每生产210000个区块奖励值减半 口交易费:每个交易的交易费是“输出额与输入额的差值”,区块内的交易费是所有交易的交易费求和 coinbase参数:矿工可以放任何数据进去 :[ prev out ": f "hash":"eoe..8089", n":4294967295 coinbase " value":"25.03371419”, scriptPubKey ":OPDUP OPHASH160 》
◼ 每个区块的交易(树)中都有且只有一个特殊的交易:coinbase交易。 ⚫ 只有一个输入,只有一个输出:且输入并不指向任何前驱交易的输出 ⚫ 并不消费之前的交易的输出(的比特币),因此,输入并不指向“上一交易” ⚫ 输出币值=当前区块奖励值+交易费 ❑ 区块奖励值最初是50个比特币,每生产210000个区块奖励值减半。 ❑ 交易费: 每个交易的交易费是“输出额与输入额的差值”,区块内的交易费是所有交易的交易费求和 。 ◼ coinbase参数:矿工可以放任何数据进去 12 4. 比特币的区块
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第三章 数据链路层.ppt
- 同济大学:《大数据分析与数据挖掘 Big Data Analysis and Mining》课程教学资源(PPT课件讲稿)Clustering Basics(主讲:赵钦佩).pptx
- 东南大学:《C++语言程序设计》课程教学资源(PPT课件讲稿)Chapter 09 Classes A Deeper Look(Part 1).ppt
- 贵州电子信息职业技术学院:常用办公技巧(PPT讲稿,主讲:刘忠华).ppt
- 计算机软件技术基础:《Visual Basic6.0 程序设计》课程教学资源(PPT课件)第1章 Visual Basic(VB)概述.ppt
- Dynamic Pricing in Spatial Crowdsourcing:A Matching-Based Approach.pptx
- 《Java Web应用开发基础》课程教学资源(PPT课件)第8章 EL、JSTL和Ajax技术.ppt
- 《计算机组装与维修》课程电子教案(PPT教学课件)第一章 计算机系统维护维修基础.ppt
- 湖南生物机电职业技术学院:《电子商务概论》课程教学资源(PPT课件)第六章 网上支付.ppt
- 清华大学出版社:《网络信息安全技术》教材电子教案(PPT课件讲稿)第2章 密码技术.ppt
- 《网络系统集成技术》课程教学资源(PPT课件讲稿)第六章 网络互联技术.ppt
- 数据库接口技术(PPT讲稿)开放式数据库联接 Open DataBase Connectivity——ODBC.ppt
- 《网络综合布线》课程教学资源(PPT讲稿)模块2 综合布线工程设计.ppt
- 《软件工程》课程教学资源(PPT课件讲稿)第4章 软件总体设计.ppt
- 华东理工大学:《Visual Basic程序设计教程》课程教学资源(PPT课件)第四讲 VB语言基础(运算符、函数和表达式).pps
- 《数据结构》课程教学资源(PPT课件讲稿)第六章 集合与字典.ppt
- 清华大学:《网络安全 Network Security》课程教学资源(PPT课件讲稿)Lecture 01 Introduction.pptx
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第四章 汇编语言程序格式.ppt
- 《C程序设计》课程电子教案(PPT课件讲稿)第二章 基本数据类型及运算.ppt
- 浪潮公司:并行程序、编译与函数库简介、应用软件的调优.ppt
- 中国科学技术大学:《并行算法实践》课程教学资源(PPT课件讲稿)上篇 并行程序设计导论 单元II 并行程序编程指南 第七章 OpenMP编程指南.ppt
- Online Minimum Matching in Real-Time Spatial Data:Experiments and Analysis.pptx
- 《数字图像处理 Digital Image Processing》课程教学资源(各章要求及必做题参考答案).pdf
- 北京航空航天大学:Graph Search & Social Networks.pptx
- 《C程序设计》课程电子教案(PPT课件讲稿)第四章 数组和结构.ppt
- 西安电子科技大学:《信息系统安全》课程教学资源(PPT课件讲稿)第二章 安全控制原理.ppt
- 南京航空航天大学:《数据结构》课程教学资源(PPT课件讲稿)第十章 排序.ppt
- 四川大学:《计算机操作系统 Operating System Principles》课程教学资源(PPT课件讲稿)第9章 文件管理.ppt
- 《多媒体教学软件设计》课程教学资源(PPT课件讲稿)第4章 多媒体教学软件的图文演示设计.ppt
- 河南中医药大学(河南中医学院):《计算机网络》课程教学资源(PPT课件讲稿)第三章 数据链路层.pptx
- 上海交通大学:《Multicore Architecture and Parallel Computing》课程教学资源(PPT课件讲稿)Lecture 9 MapReduce.pptx
- 西安交通大学:《网络与信息安全》课程PPT教学课件(网络入侵与防范)第四章 口令破解与防御技术.ppt
- 《机器学习》课程教学资源(PPT课件讲稿)第十二章 计算学习理论 Machine Learning.pptx
- 广西外国语学院:《计算机网络》课程教学资源(PPT课件讲稿)第9章 DHCP协议(任课教师:卢豫开).ppt
- 《信息技术基础》课程教学资源(PPT课件)信息技术基础知识的内容.ppt
- 《PHP程序设计》教学资源(PPT课件讲稿)项目二 网站用户中心.ppt
- Microsoft .NET(PPT课件讲稿)Being Objects and A Glimpse into Coding.pptx
- 《Data Warehousing & Data Mining》课程教学资源(PPT讲稿)Ch 2 Discovering Association Rules.ppt
- 《软件工程》课程教学资源(PPT课件讲稿)需求分析.ppt
- 西安电子科技大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第八章 中断系统与可编程中断控制器8259A.pptx