【刘教链比特币原理】8-1 龟兔赛跑和51%算力攻击
付费合集文章前言:无
本节课我们开始学习第八章“网络同步有延时 账本尺寸不随意”的第一小节“龟兔赛跑和51%算力攻击”。
本章目录:
第八章 网络同步有延时 账本尺寸不随意
第1节 龟兔赛跑和51%算力攻击
第2节 泊松分布和6个区块确认 第3节 为什么区块不能过大
本节音频:
【音频】
学习笔记:
要攻击比特币系统可以从两个层面入手。一是攻击算法之锁,即椭圆曲线数字签名算法和哈希算法,但是在理论有所突破之前,是很难做到的。某些人热衷鼓吹的量子计算机,已写过多篇文章论述过,对比特币是造不成威胁的。另一个攻击点就是攻击算力之锁,也就是所谓算力攻击、共识攻击、51%攻击。
后一种攻击就是利用比特币系统去中心化的特点,尝试成为让大多数人相信被篡改的结果。怎么做到呢?就是算工作量证明,而且要比诚实节点更快的计算工作量证明。因此所谓51%攻击,说的就是攻击者如果控制了超过全网一半的算力,就总是可以压倒其他人取得优势,最早算出新区块,进而回滚和修改区块链。
所以说,比特币花费巨大的资金补贴矿工,以维持巨大的全网算力,就是为了保护区块链的安全性。
中本聪对攻击者发动算力攻击进行了数学建模并推测其攻击成功的概率。这在比特币白皮书中有一个很大的篇幅。把攻击者比做兔子,诚实网络比做乌龟。这就是兔子跑过乌龟的问题。这是一个概率论问题。事实上,兔子并不需要51%以上算力就可以发起攻击,并有一定概率取得成功。中本聪推演了多种情形。一个比较保守的情况,兔子掌握10%的算力,那么在落后几个区块的情况下还是有机会追上乌龟的。不过乌龟如果等待6个区块以上,被兔子追上的机会就会以指数级下降到万分之几的概率,基本上可以认为是不会再被追上的了。
所以,我们可以看出,比特币区块链是没有确定性最终性的,只有概率最终性,节点之间也不会达成确定性的一致性,而是不断逼近1的概率达成一致性。正是这样一个改进,才让比特币系统突破了传统分布式理论,解决了拜占庭将军问题,实现了全局一致账本。我们也可以看出,所谓6个区块确认,不过是一种参数情况下的推演数据,并不是说总是需要等待6个区块即大约1小时左右时间来确认。例如,在星巴克点咖啡,大概率这个顾客不太可能掌握10%的比特币全网算力,也不太可能为了几十块钱去发动对比特币网络的攻击,那么只要星巴克运行一个全节点,而且要求顾客不能开启RBF,就可以在节点收到顾客签名的付款交易时进行即时确认,也就是所谓零确认交易。
中本聪当年在论坛讨论时就说,这很快、很好,遭受欺诈的可能性很小,比信用卡还要小。不过当时有个网友BM,就是后来EOS的创始人,纠缠中本聪。逼得中本聪说了那句经典名言:如果你不理解或者不相信,我也没有时间去说服你,sorry。
课外资料:
以下是第八章“网络同步有延时 账本尺寸不随意”的补充学习材料,请在本章3节课学习过程中使用。
- 中本聪《比特币白皮书》第5小节“网络”以及第11小节“计算(Calculations)” https://mp.weixin.qq.com/s/7R-THHIoTZfmAFSsQwdcZg (比特币白皮书中文版(刘教链译本)) https://mp.weixin.qq.com/s/U_qkDkAud0Hg4wyWeKAdZw (比特币白皮书英文原版)
- 比特币挖矿算力(哈希算力)分布饼图: https://hashrateindex.com/hashrate/pools (英文) https://www.blockchain.com/explorer/charts/pools (英文)
- 比特币区块大小波动图线: https://bitinfocharts.com/comparison/bitcoin-size.html (英文) https://www.blockchain.com/explorer/charts/avg-block-size (英文)
- 比特币区块链在线查看工具:https://blockstream.info/ (英文)https://mempool.space/ (中文、英文)
- 【扩展阅读】“泊松分布”(Possion Distribution): https://baike.baidu.com/item/泊松分布/1442110 (中文) https://en.wikipedia.org/wiki/Poisson_distribution (英文)
- 【扩展阅读】《精通比特币》第10章“挖矿和共识”第10.12节“共识攻击”:https://www.8btc.com/books/834/masterbitcoin2cn/_book/ch10.html (中文)
(公众号/同名推特:刘教链。知识星球:公众号回复“星球”) (免责声明:本文内容均不构成任何投资建议。加密货币为极高风险品种,有随时归零的风险,请谨慎参与,自我负责。)