提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
二、区块链
三、Merkel tree
总结
前言
今天看了北大肖臻老师《区块链技术与应用》公开课,有很大收获,在此写博客以做笔记,加深印象,若有不当之处,欢迎斧正。
一、比特币中的数据结构是什么?
比特币中的数据结构一个是区块链另一个是存在于区块中的 Merkel tree。文章来源:https://www.toymoban.com/news/detail-805555.html
二、区块链
- 比特币中的区块链由一个个区块组成,每一个区块分为 区块头和区块体两部分。
- 区块链中第一个区块为创世块(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 进行验证,若最后算出来的哈希值与保存的区块头中的根哈希值不一样,则该交易证明失败。
总结
主要梳理了课程中肖臻老师对于比特币数据结构的讲解。文章来源地址https://www.toymoban.com/news/detail-805555.html
到了这里,关于02-BTC-数据结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!