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

学习笔记《区块链技术与应用》第五天 分叉

state fork: 对区块链当前的状态存在分歧
forking attack: 分叉攻击
deliberate fork: 人为分叉
protocol fork: 协议不同造成分叉
hard fork: 硬分叉
soft fork: 软分叉


hard fork

对比特币协议增加新特性,没有升级的旧节点不任何这些新特性,协议内容产生分歧导致。

  • 1MB区块大小限制 block size limit
    1000000/250≈40001000000/250≈40001000000/2504000
    4000/60/10≈7tx/sec4000/60/10≈7 tx/sec4000/60/107tx/sec 每秒7笔交易
    如果大多数算力节点更新了size为<4MB,少数旧节点<1MB。新节点较多算力,会沿着上面最长链挖掘,旧节点认为最长合法链是不认可的,会一直沿着下面链挖掘,因此为hard fork。
    在这里插入图片描述

soft fork

block size limit: 1M -> 0.5M
new nodes 0.5M
old nodes 1M

分叉是临时性的,新旧节点都认为上分叉是合法的,系统不会有永久性的分叉。
在这里插入图片描述

coinbase

extra nonce | nonce只有4 bytes 2322^{32}232
复杂度不够使用额外的nonce空间8 bytes |2962^{96}296
UTXO 当前还没花掉的交易输出,为了快速查找,保存内存中。
Merkle proof,保存已交易的记录,因此比特币无法计算指定的钱包余额。
因此有人提出将UTXO也计算Hash保存到coinbase header,最终会更新到root hash。如果这样做,大多数节点带有这个UTXO hash,少数没更新的old node不会检查hash旧认为新老block都是合法的,最终导致soft fork。

P2SH

Pay to Script Hash
redeem script
原来是没有的,也是通过软分叉更新到区块链的。
旧节点只验证第一段redeem script, 新节点会验证一二阶段。因此旧节点认为合法的新节点可能不合法。

总结

soft fork: 半数以上算力更新,就不会有永久性分叉
hard fork: 必须所有节点更新,否则会有永久性分叉

http://www.dtcms.com/a/313472.html

相关文章:

  • Matlab 高斯牛顿法拟合曲线
  • 力扣-200.岛屿数量
  • 01数据结构-二叉搜索树
  • PAT 甲级题目讲解:1012《The Best Rank》
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-55,(知识点:STM32,外设及其特点)
  • 力扣-124.二叉树中的最大路径和
  • LLM调研
  • 计算用户日活:从数据设计到可视化的全流程(高频场景题)
  • 秋招笔记-8.3
  • AUTOSAR进阶图解==>AUTOSAR_RS_SystemTemplate
  • 元宇宙三维化会给游戏行业带来哪些改变?
  • 什么是列存储(Columnar Storage)?深度解析其原理与应用场景
  • 常见的深度学习模块/操作中的维度约定(系统性总结)
  • io_cancel系统调用及示例
  • e2studio开发RA4M2(6)----GPIO外部中断(IRQ)配置
  • 算法题(181):最大直方矩形面积
  • datasets库 的map方法num_proc=16并行踩坑
  • Java 中的 final 关键字有哪些用法?
  • C++ 虚函数相关问题 **
  • 基于云模型的模糊综合风险评估Matlab代码
  • 网关与路由器的区别
  • access系统调用及示例
  • 延迟任务方案-DelayQueue
  • SpringBoot 2.x 升 3.x 避坑指南:企业级项目的实战问题与解决方案
  • Celery-分布式任务队列
  • MySQL深度理解-MySQL锁机制
  • 数据结构学习(day01)
  • 第八章:进入Redis的SET的核心
  • Android系统模块编译调试与Ninja使用指南
  • 【数据分享】各省粮食外贸依存度、粮食波动率等粮食相关数据合集(2011-2022)(获取方式看文末)