BTC笔记-03-协议

BTC-协议

B站视频链接


曾经的失败构想

  • double-spending 双重支付、一闭多付、多花攻击,是同一笔数字货币可以被重复花用两次或更多次的情形
  • 比特币的每笔交易包含输入和输出两部分,输入内容包含发起人的公钥、指向币来源块的哈希指针等,输出内容包含接收人的地址、转账数量等,交易需要包含发起人用私钥进行的签名,其签名可以使用发起人的公钥进行验证

比特币区块链的块结构

每个比特币区块链由 block headerblock body 两部分组成

  • block header 中包括 version 版本、hash of previous block header 前一个区块块头的哈希值、Merkle root hash 整个哈希树的根哈希值、target 挖矿难度阈值、nonce 随机数和 nBits 目标阈值编码
  • block body 中包括 transaction list 交易列表

整个系统中包含 full node (fully validating node) 全节点和 light node 轻节点。全节点保存区块链的所有信息,轻节点只保存区块头部信息。其中轻节点无法独立验证交易的合法性

系统中的大多数节点都是轻节点


分布式共识

distributed consensus 分布式共识

  • distributed hash table 分布式哈希表
  • FLP impossibility result 不可能结论:在一个异步系统 asynchronous system 中,即使只有一个成员是有问题的 faulty,也不可能取得共识
  • CAP TheoremConsistency 一致性、Availability 可用性和 Partition tolerance 分区容错性为期望的分布式系统所具有的三个性质:CAP Theorem 说明,在任何一个分布式系统中,以上三个性质最多满足两个,不可能三个均满足

Consensus in Bitcoin

比特币中共识协议需要解决的一个问题是,有些节点可能是恶意的

  • sybil attack 女巫攻击
  • longest valid chain 最长合法链
  • forking attack 分叉攻击

各节点通过寻找符合要求的 nonce 争夺记账权,当找到合法的 nonce 时即可发布区块,区块应该在 longest valid chain 上延续


Block reward

获得记账权后每写入一个区块可以获得 coinbase transaction 铸币权的奖励,在比特币创建之初奖励为 50 BTC

posted @ 2022-08-29 11:59  buzzing  阅读(60)  评论(0)    收藏  举报