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

学习笔记《区块链技术与应用》第二天 共识机制

如何发行一个一个虚拟币?

人民币如何发行?
人民银行印制——防伪(密钥)——发布(公钥)——使用(没法花两次——双花攻击 double spending attack)
数字货币就是文件,可以复制,可以双花。
改进:1. 唯一编号,2. 所属检查

去中心化:

  1. 谁来发布货币
  2. 怎么防范double spending attack

Create Coin -> A(10) 铸币交易(Coinbase tx)(凭空发行)
↑ A -> B(5) signed by A
↑ A -> C(5) signed by A

输入部分:说明来源+公钥
输出部分:验证Hash+收款人的公钥Hash地址

B->C(2) singed by B
B->D(3) singed by B

C->E(1) singed by C

两种Hash point: 1. Linked block 2. coin from(防止双花)

在这里插入图片描述
一次交易:(私钥签名,公钥验证,我收到交易我验证)
A的签名+B的地址(account)
A需要B的地址,B需要A的公钥

再谈Block header, Block body

Block header:

  1. version
  2. hash of previous block header (只取header不管body)
  3. Merkle root hash
  4. target
  5. nonce
    H(block header) <= target

Block body:

  1. transaction list
  • full node (fully validating node): 全节点(保存所有信息,可以验证交易)
  • light node (无法独立验证交易合法性)(系统中大多数是轻节点)

每个账户都可以发起交易并广播给所有节点,谁来决定哪些交易可以写入区块?按照什么顺序?唯一性如何保证?

  • distributed consensus 分布式共识
  • distributed hash table 分布式hash表
  • impossibility result 不可能结论
    • FLP asynchronous, faulty,异步系统中一个成员有问题就不能取得共识。
    • CAP theorem, 最多只能同时满足两个
      • consistency 一致性
      • availability 可用性
      • Partition tolerance 容错

比特币中的共识协议

Consensus in BitCoin
任何基于投票的方案首先确认谁有投票权membership。
基于节点投票问题:sybil attach女巫攻击,大量产生可投票的攻击节点。
基于算例投票:
H(block header) <= target
不停的尝试nonce,找到符合要求nonce,整个节点获得记账权,写入下一个区块的权利(记账权),其他节点收到后验证合法性(验证block header nBits是否正确,查nonce是否符合<target, 所有header都符合要求,验证body交易偶读合法1 签名,2无双花问题)

  • 最长合法链longest valid chain
  • forking attack 分叉攻击
  • 等长的临时分叉会存在一段时间,直到其中一个抢先一步找到下一个区块则变为合法。短的链会被丢弃orphan block在这里插入图片描述

比特币系统两个问题

谁有权发行货币

如何验证合法性

mining 挖矿

http://www.lryc.cn/news/600154.html

相关文章:

  • Vue2上
  • 机器学习(九):KNN算法全解析与项目实践
  • C/C++---I/O性能优化
  • 谁将统治AI游戏时代?腾讯、网易、米哈游技术暗战
  • 《C++ vector 完全指南:vector的模拟实现》
  • LeetCode|Day25|389. 找不同|Python刷题笔记
  • UE5多人MOBA+GAS 30、技能升级机制
  • 动漫花园资源网在线观看,动漫花园镜像入口
  • 基于Java的健身房管理系统
  • HTTP 与 SpringBoot 参数提交与接收协议方式
  • [MMU]TLB Miss 后的 Hardware Table Walk及优化
  • AI与区块链融合:2025年的技术革命与投资机遇
  • c语言-数据结构-沿顺相同树解决对称二叉树问题的两种思路
  • Web前端:JavaScript Math内置对象
  • ABP VNext + OData:实现可查询的 REST API
  • MyBatis-Plus极速开发指南
  • Springboot3.0 集成 RocketMQ5
  • 理解Spring中的IoC
  • 数字增加变化到目标数值动画,js实现
  • 2025年-ClickHouse 高性能实时分析数据库(大纲版)
  • cha的操作
  • 最新Amos 29下载及详细安装教程,附免激活中文版Amos安装包
  • Nature Communications:复杂光下多维视觉信息处理,利用时间演变的环境极化敏感神经突触器件
  • 基于Docker的GPU版本飞桨PaddleOCR部署深度指南(国内镜像)2025年7月底测试好用:从理论到实践的完整技术方案
  • JavaScript 中 let 在循环中的作用域机制解析
  • 【深度学习新浪潮】Claude code是什么样的一款产品?
  • swiper.js实现名录上下滚动
  • Python 条件分支与循环详解--python004
  • 【Agent】API Reference Manual(API 参考手册)
  • 【Spring AI详解】开启Java生态的智能应用开发新时代(附不同功能的Spring AI实战项目)