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

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

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

人民币如何发行?
人民银行印制——防伪(密钥)——发布(公钥)——使用(没法花两次——双花攻击 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.xdnf.cn/news/16418.html

相关文章:

  • ESP32学习笔记_Peripherals(4)——MCPWM基础使用
  • cha的操作
  • LP-MSPM0G3507学习--11ADC之二双通道高速DMA采样
  • 人工智能——插值方法、边缘填充、图像矫正、图像掩膜、ROI切割、图像添加水印、图像噪点消除
  • 九联UNT413AS_晶晨S905L3S芯片_2+8G_安卓9.0_线刷固件包
  • 蓝光中的愧疚
  • MySQL索引背后的B+树奥秘
  • Power Compiler:漏电功耗、内部功耗、切换功耗及其计算方式(NLPM)
  • 网络安全-机遇与挑战
  • 【内网穿透】使用FRP实现内网与公网Linux/Ubuntu服务器穿透项目部署多项目穿透方案
  • 在幸狐RV1106板子上用gcc14.2本地编译安装ssh客户端/服务器、vim编辑器、sl和vsftpd服务器
  • Apache Ranger 权限管理
  • 【优选算法】链表
  • 局域网 IP地址
  • 卡尔曼滤波器噪声方差设置对性能影响的仿真研究
  • 亚马逊广告策略:如何平衡大词和长尾词的效果?
  • JAVA_FIFTEEN_异常
  • 轮盘赌算法
  • CMake进阶: 检查函数/符号存在性、检查类型/关键字/表达式有效性和检查编译器特性
  • LeetCode 127:单词接龙
  • 中国开源Qwen3 Coder与Kimi K2哪个最适合编程
  • React性能优化终极指南:memo、useCallback、useMemo全解析
  • 【氮化镓】GaN取代GaAs作为空间激光无线能量传输光伏转换器材料
  • k8s下springboot-admin 监控服务部署,客户端接入
  • c++文件操作详解
  • C++ - 模板进阶
  • 浅谈生成式AI语言模型的现状与展望
  • 自然语言处理技术应用领域深度解析:从理论到实践的全面探索
  • 【STM32】CUBEMX下FreeRTOS 任务栈管理与栈溢出检测(CMSIS_V2接口)
  • 【深入探究系列(6)】算法设计:高效算法的实现与优化