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

学习笔记《区块链技术与应用》第三天 网络 难度

比特币网络工作原理 The BitCoin Network

application layer: BitCoin BlockChain
network layer: P2P Overlay Network

simple, robust, but not efficient

flooding 洪泛

每个节点维护一个等待上链的集合。如果区块链已经包含某个交易,就可以从集合里删除这个交易。
越大的区块越慢,比特币有1MB大小的限制,带宽是瓶颈。
best effort

如何通过nonce调整挖矿速度

H(blockheader)<=targetH(block header)<=targetH(blockheader)<=target
比特币使用的哈希算法为SHA-256,整个22562^{256}2256

difficulty={difficult_1_target}/{target} 挖矿难度与target成反比,系统内算力越来越强,出块速度越来越快。

51% attack:假设有很多个分叉,善意节点的算力会被分散,恶意节点就可以集中攻击一个分叉。

以太坊的出块时间为15秒,因此设计一个新的协议ghost。
orphan block也给予奖励uncle reward

2016个区块调整难度。
2016 *10min / 60min / 24h = 14days
target = target * (actual time / expected time)
expected time = 2 weeks
actual time = time spent mining the last 2016 blocks
每次最大调整范围为4倍:比如2weeks之后 最大8weeks 最小0.5week

  • 如何让所有矿工同时调整阈值?写在代码里,自动调整。

挖矿难度 Hash Rate
在这里插入图片描述

全节点

  • 一直在线
  • 完整信息
  • 内存维护UTXO集合
  • 监听交易 验证每个交易合法性
  • 决定哪些交易会被打包到区块
  • 监听其他矿工挖出来的区块,验证其合法性
  • 挖矿
    • 决定沿着哪条链,默认最长
    • 当出现等长分叉,选择哪个,默认最先

轻节点

  • 不是一直在线
  • 不用保存整个区块链信息,只保存每个header。 大小相差1000倍
  • 不用保存全部交易,只保存自己相关交易
  • 无法验证大多数合法性,只能检验与自己相关的合法性
  • 无法检测网上发布的区块正确性
  • 可以验证挖矿难度只是用header信息
  • 只能检测哪个是最长链,步子回到哪个是最长合法链

挖矿

CPU -> GPU -> ASIC(Application Specific Integrated Circuit)
mining puzzle
merge mining:
单个矿工 -> 矿池
miner(ASIC)只负责计算hash,pool manager负责其他全节点工作
矿池为了解决收入不稳定。
on demand computing 按需计算
on demand mining 按需挖矿

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

相关文章:

  • 力扣 Pandas 挑战(5)---数据分组
  • RabbitMQ 消费者确认 (Ack/Nack) (With Spring Boot)
  • Linux多线程线程控制
  • 专题:2025半导体行业研究报告:从AI芯片到封测突围的生死局|附40+份报告PDF、数据汇总下载
  • virtualbox+UBuntu20.04+内存磁盘扩容
  • Java异常:java.util.NoSuchElementException
  • 【数据结构初阶】--二叉树(六)
  • 学习笔记《区块链技术与应用》第4天 比特币脚本语言
  • window中qemu使用(安装ubuntu系统)
  • 嵌入式系统常用架构
  • python中各种装饰器的作用
  • 图像处理中级篇 [2]—— 外观检查 / 伤痕模式的原理与优化设置方法
  • 【n8n教程笔记——工作流Workflow】文本课程(第二阶段)——1 理解数据结构 (Understanding the data structure)
  • 【单片机】【分布式】从单机到分布式:Redis如何成为架构升级的关键力量
  • uniapp开发App如何使用正确高德地图。uni.chooseLocation数据不展示问题,uni.getLocation不生效问题。
  • Leetcode-206.反转链表
  • linux运维学习第十三周
  • 数据库学习------数据库隔离类型及其与事务特性
  • 会议室预定系统核心技术:如何用一行SQL解决时间冲突检测难题
  • Spark SQL 的 SQL 模式和 DSL模式
  • 前端js通过a标签直接预览pdf文件,弹出下载页面问题
  • Hive课后练习题
  • Docker 初学者需要了解的几个知识点 (七):php.ini
  • ode with me是idea中用来干嘛的插件
  • MVS相机+YOLO检测方法
  • 【14】大恒相机SDK C#开发 ——Bitmap.UnlockBits()什么意思?有什么用?bmpData.Scan0;什么意思?有什么用?
  • 行业要闻|正式落地!新思科技宣布完成对Ansys的收购
  • 是德科技的BenchVue和纳米软件的ATECLOUD有哪些区别?
  • 1 机器学习概述 (第一天2025.7.31)
  • 【龙泽科技】汽车维护与底盘拆装检修仿真教学软件【风光580】