简单来说,这个公式可以总结为p(win)=f(q,z),即双花成功的概率是攻击者算力比例q和收款者等待确认区块个数z的函数。给定q和z,就可以算出成功概率,以下是MeniRosenfeld论文中根据此函数,给出的数据和图。图中横轴表示q取不同值,不同曲线表示z不同,纵轴表示成功概率。
如图所示:当攻击者算力占比大于等于50%时,无限时长的攻击总能成功
由以上结果,可以得出一些结论:1、一般情形下,成功概率对z值呈指数下降,所以等待更多区块以后确认交易是保险的策略。2、无论多大的确认数z也无法把成功概率降到0,做不到万无一失。3、当攻击算力大于等于50%,不管多大的区块确认数也无法阻止双花成功。至此,我们可以清楚明白,所谓“6个确认”是说,攻击算力在10%以下,等待6区块确认,双花成功的概率在0.1%以下。理论上讲,在任意小算力和任意大确认数下,成功概率非常小,但仍可能攻击成功。不足
此模型有些地方并不精确。求解第二阶段概率时,把问题抽象成徒破产模型。诚实节点和攻击者是分别在两条链上各自挖矿竞争,假设攻击者先挖到了区块,那么此局结束,双方仍以p和q的概率开启下一局,诚实节点算新区块,攻击者继续算上一个区块。然而现实时攻击者虽然此局失败,但是他已经累积了一定工作量,他继续算出这个区块的概率比上一局算出的概率大。由此会对最终计算结果造成一定误差。另外一点是本文没有讨论攻击者的攻击成本和收益的经济分析。注:本文概率分析模型主要参考比特币白皮书、MeniRosenfeld的“Analysisofhashrate-baseddouble-spending”以及果壳的“从酒鬼失足到徒破产,悲剧收场为何注定”。参考文献:1.SatoshiNakamoto,”Bitcoin:APeer-to-PeerElectronicCashSystem”,20092.MeniRosenfeld,“Analysisofhashrate-baseddouble-spending”,20123.pondering,“从酒鬼失足到徒破产,悲剧收场为何注定”,果壳,20114.Zhangzedtv,”通过源码学习比特币-难度目标与难度调整”20185.MichaelNielsen,”比特币协议是怎样工作的”,20146.W.Feller,"Anintroductiontoprobabilitytheoryanditsapplications,"19577.Tiny熊,”比特币如何达成共识-最长链的选择”
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。