02-BTC-数据结构

这篇具有很好参考价值的文章主要介绍了02-BTC-数据结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

目录

前言

二、区块链

三、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 进行验证,若最后算出来的哈希值与保存的区块头中的根哈希值不一样,则该交易证明失败。

总结

  主要梳理了课程中肖臻老师对于比特币数据结构的讲解。文章来源地址https://www.toymoban.com/news/detail-805555.html

到了这里,关于02-BTC-数据结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链技术与应用 - 学习笔记3【比特币数据结构】

    大家好,我是比特桃。 本系列笔记只专注于探讨研究区块链技术原理,不做其他违反相关规定的讨论。 区块链技术已被纳入国家十四五规划,在“加快数字发展 建设数字中国”篇章中,区块链被列为“十四五”七大数字经济重点产业之一,迎来创新发展新机遇。 经科技部批

    2024年02月09日
    浏览(31)
  • 【BTC】数据结构

    BTC 中对交易数据的存储主要涉及到了两种数据结构,一种是区块链,一种是 Merkle Tree。这两种数据结构组成了 BTC 中完整的区块链结构(如下图所示),共同完成对数据的存储和验证,确保交易的有效性。 所谓的区块链是由一个个区块构成的链,其中,每一个区块包括两个部

    2024年01月15日
    浏览(30)
  • 《大话数据结构》02 算法

    算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 大家都已经学过一门计算机语言,不管学的是哪一种,学得好不好,好歹是可以写点小程序了。现在我要求你写一个求1+2+3+……+100结果的程序,你应该怎么写呢?

    2024年04月17日
    浏览(26)
  • 02-链表 (数据结构和算法)

    3.1 链表的基本概念 前面我们在学习顺序表时,线性表的顺序存储结构的特点是逻辑关系上相邻的两个数据元素在物理位置上也是相邻的。我们会发现虽然顺序表的查询很快,时间复杂度为O(1),但是增删的效率是比较低的,因为每一次增删操作都伴随着大量的数据元素移动。为

    2024年02月16日
    浏览(32)
  • 数据结构与算法【02】—线性表

    CSDN系列专栏:数据结构与算法专栏 针对以前写的数据结构与算法系列重写(针对文字描述、图片、错误修复),改动会比较大,一直到更新完为止 通过前面数据结构与算法基础知识我们知道了数据结构的一些概念和重要性,那么本章总结下线性表相关的内容。当然,我用自己

    2024年02月05日
    浏览(37)
  • 区块链的数据结构(一)——区块、链

            区块(block)由区块头(block header)和交易列表(transaction list,tx list)组成,block之间通过block header的hash连接成了一个链表结构。但这个链表不同于普通链表。 1. block header 比特币的block header: 以太坊的block header: hashPrevBlock / ParentHash ,上一个block header的hash h

    2024年02月13日
    浏览(30)
  • 浙大数据结构第二周之02-线性结构3 Reversing Linked List

    Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4, you must output 4→3→2→1→5→6. Input Specification: Each input file contains one test case. For each case, the first line

    2024年02月15日
    浏览(42)
  • 区块链数据结构

    这笔交易参照的规则, 4 字节, Little-endian 交易输入列表的数量,1-9 字节 下面开始构建一个或多个交易输入  交易输出列表的数量,1-9 字节 下面开始构建一个或多个交易输出  

    2024年02月15日
    浏览(29)
  • 区块链的数据结构和数据存储

    区块链主要分三种,本质上是一种块状存储的链,与寻常的链表不同,链条的每一个节点是根据场景衍生的区块,一般用分布式存储数据,防篡改可溯源: 公链 联盟链 私链 上述三种区块链是基于不同场景诞生的不同业务结构,因此其核心的数据结构和数据存储方式略有不同

    2024年02月02日
    浏览(30)
  • 浙大数据结构第二周02-线性结构2 一元多项式的乘法与加法运算

    设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包