提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

二、区块链

三、Merkel tree

总结


前言

今天看了北大肖臻老师《区块链技术与应用》公开课,有很大收获,在此写博客以做笔记,加深印象,若有不当之处,欢迎斧正。


一、比特币中的数据结构是什么?

比特币中的数据结构一个是区块链另一个是存在于区块中的 Merkel tree。

二、区块链

  • 比特币中的区块链由一个个区块组成,每一个区块分为 区块头和区块体两部分。
  • 区块链中第一个区块为创世块(genesis block),最近的一个区块为 most recent block。
  • 区块之间由哈希指针链接,每一个区块的区块头都保存了指向上一个区块的哈希指针,最后一个区块的哈希值保存在系统中。
  • 哈希指针有两部分,既保存了指向该结构体的地址,也保存了该结构体的哈希值。
  • 由于哈希指针的存在,区块链拥有了防篡改的性质,例如:攻击者篡改了第55号区块,则需要改动包括第55号区块一直到 most recent block 区块的所有哈希值,最后一个区块的哈希值改动后,先不说速度上达不达得到,该哈希值与系统中保存的原来的哈希值不一样,系统即可检测出存在攻击者恶意修改区块。

三、Merkel tree

  • Merkel tree 存在于区块体中,它分为数据块(data block)和哈希指针块(hash pointers),Merkel tree 的结构为二叉树形式。
  • 数据块在区块中储存的一个个的交易,每一个哈希指针块都保存着下一层两个区块的两个哈希值。由根节点的两个哈希值算出来的哈希值为根哈希值(root hash)保存在区块头中。
  • 比特币的节点有全节点和轻节点,全节点保存区块链中每一个区块的所有内容,而轻节点则只保存最近几千个区块的区块头。
  • 若轻节点要证明某个交易,则向全节点发出请求,全节点给与轻节点与该交易相关的 Merkle proof ,轻节点使用该交易的哈希值与 Merkle proof 进行验证,若最后算出来的哈希值与保存的区块头中的根哈希值不一样,则该交易证明失败。

总结

主要梳理了课程中肖臻老师对于比特币数据结构的讲解。

02-BTC-数据结构相关推荐

  1. JVM【带着问题去学习 02】数据结构栈+本地方法栈+虚拟机栈+JVM栈运行原理

    1.数据结构栈 栈是一种比较简单的数据结构,后进先出.栈本身是一个线性表,但是这个表中只有一端允许数据的进出.栈的常用操作包括入栈push和出栈pop,对应于数据的压入和弹出.由于栈后进先出的特性,常 ...

  2. Visualizations:一个数据结构和算法的可视化展示网站

    " 美国旧金山大学计算机科学系网站里,提供了演示多种数据结构和算法的可视化演示,可以自由访问,也可以打包下载到本地." 偶然的机会,发现了这个网站,里面有常用的数据结构与算法的演示 ...

  3. 猎豹网校JAVA语言数据结构与算法视教程

    -------------------课程目录------------------- 01.NetBeans_下载和安装.mp4 02.JavaDS_数据结构和算法的概述.mp4   03.JavaD ...

  4. 猎豹怎么运行java_猎豹网校 数据结构与算法 Java语言 JAVA语言视频教程(火评)...

    01.NetBeans_下载和安装.mp4  02.JavaDS_数据结构和算法的概述.mp4 03.JavaDS_数组基础知识.mp4 04.JavaDS_有序数组和二分查找.mp4 05.Java ...

  5. 慕课网:C++ 数据结构

    课程链接:james_yuan的课程 这部分太枯燥了,如果教材难度稍大,根本就学不下去,所以就先看看通俗的视频吧. 课程目录 1.C++远征之起航篇 - C++亮点尽在其中 2.C++远征之离港篇 - ...

  6. 唤醒手腕Python全栈工程师学习笔记(网络爬虫篇)

    唤醒手腕Python爬虫学习笔记,喜欢的同学们可以收藏下,谢谢支持. 01.基础语法知识点 字符串的分割 webString = 'www.baidu.com' print(webString.spl ...

  7. 元宇宙是个啥?送4本科普好书

    VOL 350 22 2022-01 今天是2022年第22天 这是ITester软件测试小栈第350次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  8. 快速从入门到精通!mysql删除语句姓李的语句

    第一部分必读系列: 01.学习算法和刷题的思路指南 02.学习数据结构和算法读什么书 03.动态规划解题套路框架 04.动态规划答疑篇 05.动态规划答疑篇 06.回溯算法解题套路框架 07.二分查找 ...

  9. c语言程序设计 滴水视频,编程达人滴水中级班视频教程

    Java视频教程详情描述: <编程达人滴水中级班视频教程>编程达人来了,N部视频教程让你成为真正的编程达人,融会贯通将是本套视频最大的目的. Java视频教程目录: ├─APC机制 │  ...

  10. 保证金,杠杆和风险限额委托种类

    1.保证金 保证金由用户的杠杆率决定,例如:50倍杠杆,仓位1BTC的合约,所需的保证金就是(1/50=0.02)BTC+订单手续费, 在这里, 有两个保证金类型需要用户关心 起始保证金:即开仓所需的 ...

最新文章

  1. 微信 小程序 常见错误
  2. Flutter ScrollView 滑动组件
  3. Struts2中Result类型介绍
  4. 兼容性测试之VMware
  5. java selenium firefox启动报错大调查
  6. pandas 作图 统计_pandas数据作图方法
  7. Java动态代理之InvocationHandler最简单的入门教程 1
  8. c语言对n个数选择排序_选择排序_C语言「抄作业」
  9. boost python错误_Ubuntu-链接boost.python-致命错误:找不到pyconfig
  10. oracle10g rac导出ocr,Oracle RAC OCR磁盘故障快速恢复方法
  11. 慕课PDF下载扩展--再也不用担心慕课不给PDF了
  12. php支付sdk接入网站教程,laravel 5.5 接入蚂蚁金服官方SDK(支付宝APP支付为例)开发步骤...
  13. 程序员常见10大口头禅
  14. 费城交响乐团与上海爱乐乐团联合举行费城首届中国新年音乐会
  15. 点云旋转平移(三)—python open3d点云旋转
  16. 开源的.Net IDE :SharpDevelop
  17. 漫话:什么是平衡(AVL)树?这应该是把AVL树讲的最好的文章了
  18. python--pandas统计分析基础
  19. 基于Python操作Word
  20. 凯撒密码 (20 分)

热门文章

  1. 如何在 Sublime 文本编辑器中使用终端?
  2. D. Playoff
  3. 第十二章 初识Linux三剑客
  4. 视频会议的发展趋势---移动视频会议
  5. AutoCAD .NET: EntityJig – Dynamic Dimension and Line Jig
  6. 强化学习在京东618大促流量调控中的落地应用
  7. 逻辑回归(Logistic Regression, LR)简介
  8. 错题本——数据库系统工程师 2012
  9. 全网详细的路由协议解释:OSPF、EIGRP、RIPv2、IS-IS、BGP
  10. 一边深耕场景化应用一边构建DUI生态,AI生态这盘棋思必驰要怎么下?