BTC-协议与实现
虚拟货币需要解决的两个问题:
- 谁有权发行货币。
- 如何验证交易的合法性。
Double-Spending
区块链的交易存储方案如下图所示:
Consensus in BitCoin
假设:只有少部分节点是恶意节点
接受的合法区块必须在最长合法链上。
分叉攻击:通过在区块链中间插入节点,达到回滚的效果。
等长分叉
系统中两个矿工同时发布一个区块,分叉会存在一段时间,直至某条分叉胜出。
失败的节点被称为orphan block。
Bitcoin的实现
比特币中的全节点要维护UTXO的数据结构
UTXO:Unspent Transaction Output
避免Double-Spending问题。
Block headers
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问题
等待6个confirmation平均要等1个小时。
selfish mining
造成分块攻击。
误导别的矿工无用功,减少竞争。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Napleon!
评论