虚拟货币需要解决的两个问题:

  1. 谁有权发行货币。
  2. 如何验证交易的合法性。

Double-Spending

区块链的交易存储方案如下图所示:

image-20230731153829071

Consensus in BitCoin

假设:只有少部分节点是恶意节点

接受的合法区块必须在最长合法链上。

image-20230731161551774

分叉攻击:通过在区块链中间插入节点,达到回滚的效果。

等长分叉

系统中两个矿工同时发布一个区块,分叉会存在一段时间,直至某条分叉胜出。

image-20230731161833665

失败的节点被称为orphan block。

Bitcoin的实现

比特币中的全节点要维护UTXO的数据结构

UTXO:Unspent Transaction Output

避免Double-Spending问题。

Block headers

image-20230801110417429

Bernoulli trial: a random experiment with binary outcome

Bernoulli process: a sequence of independent Bernoulli trials memoryless

Poisson precess(矿工挖到矿的概率)

exponential distribution(系统挖到矿的概率)

出块事件服从指数分布。

指数分布的无记忆性保证了挖矿的公平性。

Bitcoin is secured by mining

six confirmation 防范double-spending问题

image-20230801112639365

等待6个confirmation平均要等1个小时。

selfish mining

造成分块攻击。

误导别的矿工无用功,减少竞争。