当前位置: 首页 > news >正文

北大肖臻《区块链技术与应用》学习笔记

区块链学习笔记 \huge{区块链学习笔记} 区块链学习笔记
这是关于北京大学肖臻老师的《区块链技术与应用》课程的学习笔记。

BTC的数据结构

hash pointers:既保存结构体的对应地址位置(指针),又保存结构体对应映射的hash值(hash)。
区块链:本质就是一个一个区块组成的链表。
Block chain is a linked list using hash pointers.
在这里插入图片描述
后区块的hash pointer存放的是前区块的地址以及hash值。
对于一个区块的hash是连同这个块中所有的内容来取hash值的。
tamper-evident log:因为区块链中后区块存放着指向前一个区块的指针,如果其中的一个区块发生了变化,那么后续的区块指针都会变化,最终导致最后一个区块的hash pointer发生变化,从而可以侦测数据的变化以及变化的位置

Merkel tree:相对于binary tree来讲,使用了哈希指针来代替了普通的指针。
在这里插入图片描述
树顶的块拥有的是根哈希值(对于根节点取hash 的哈希值)
在这里插入图片描述
对于Merkel树上任何一个节点的修改,都能通过根hash值来进行检索。

block header:存放hash值,但是不保存交易的具体信息。
block body:保存交易的具体信息。
Merkel proof:
在这里插入图片描述
树中最低层的交易(叶子节点),双亲节点中存储的hash值组合,然后逐级向上寻找节点,最后找到根节点,然后比较接收的Merkel proof中存储的信息与最终找到的信息是否一致,如果一致就说明这个交易就是发生在这个区块中。
collision resistance
proof of membership:O(logn)复杂度
proof of non-membership:O(n)复杂度
sorted Merkel tree:排序方便查询节点。

小细节:
在这里插入图片描述
对于普通的指针,上述结构是成立的,但是对于哈希指针就不成立,因为hash指针中的hash要根据指向的块的信息来确定,从而使得上述结构出现循环依赖。

http://www.lqws.cn/news/552619.html

相关文章:

  • 智能库室管控系统DW-S306|全国已经规模化应用
  • 微服务项目,启动某服务,编译后就没反应
  • 【JS-6-ES6中的let和const】深入理解ES6中的let和const:块级作用域与变量声明的新范式
  • 【数据标注师】意图标注
  • 力扣网C语言编程题:在数组中查找目标值位置之二分查找法
  • 能否仅用两台服务器实现集群的高可用性??
  • ADVANCED INTELLIGENT SYSTEMS 东京大学仿生人类手指机器人,实现“皮肤”补水!
  • Harbor的安装与使用
  • 基于MFC的遥感图像匹配程序设计
  • Java 识别和处理 HTML 标签内容
  • Solidity学习 - ABI 应用二进制接口
  • 叉车考试真题(含答案)pdf下载
  • 权限提升-工作流
  • React用户交互事件
  • 一款支持多日志器、多级别、多落地方式的同异步日志系统
  • ViewModel 使用总结:普通、Shared 及嵌套 Fragment 场景
  • 栅极驱动器选的好SiC MOSFET高效又安全
  • RabbitMQ-基础篇
  • StarRocks 向量索引如何让大模型“记性更好”?
  • 【Linux】理解进程状态与优先级:操作系统中的调度原理
  • linux安装vscode
  • ABP VNext + 多数据库混合:SQL Server+PostgreSQL+MySQL
  • .NET C# async/定时任务的异步线程池调度方案最大线程数‌ = 处理器核心数 × 250
  • python 文件处理工具(包含文件读写、后缀获取、压缩和解压、文件夹遍历等)
  • C++ STL深度剖析:Stack、queue、deque容器适配器核心接口
  • [Linux]从零开始的STM32MP157移植Ubuntu根文件系统教程
  • 华为云Flexus+DeepSeek征文|基于Dify构建文本/图像/视频生成工作流
  • linux面试常考
  • 【linux】Vm虚拟机ubuntu的接口ip掉了
  • scrapy+django+pyecharts+mysql 实现西安游客行为分析系统大屏_用户画像_空间分析_路线智能推荐