区块链技术博客
www.b2bchain.cn

区块链技术邹传伟:技术解析比特币应对双花攻击的安全性问题

第24962篇区块链技术文章区块链技术邹传伟:技术解析比特币应对双花攻击的安全性问题

本文从数学角度深入论证了比特币分布式账本在面对双花攻击时的安全问题。核心是挖掘中诚实节点和恶意节点之间的竞争

作者:万向区块链首席科学家邹传伟

中本在比特币白皮书的技术部分(第6-9页)讨论了比特币分布式账本的安全性,以防双花攻击。挖掘的核心是诚实节点与恶意节点之间的竞争。这一部分非常重要,但中本的陈述非常简短,省略了关键的演示过程。区块链行业的一些专家对此进行了解释,但也有一些遗漏。在前人工作的基础上,本文试图对比特币挖掘的本质进行严格的分析,比特币挖掘的实质是通过连续运行哈希计算,找到一个满足要求的nonce,使前几位等于0。如果将nonce视为十六进制十进制,则可以将其视为均匀分布在0和1之间的随机变量。合格的nonce需要小于α(如果在nonce之前需要),β位等于0,则α=2-β)。α根据整个网络的计算能力,由比特币算法进行调整。

比特币挖矿的数学过程

useΗ表示整个网络的计算能力,这意味着每秒可以运行的哈希计算的数量。使用随机变量τ表示找到合格nonce的时间点,τ是概率论中的停止时间概念。因为不同时间的哈希计算结果彼此独立,对于任何T>因此,随机变量τ的累积概率分布函数等于

用Η表示全网算力,含义是每秒可运行哈希计算的次数。用随机变量τ表示找到合格 Nonce 的时点,τ是概率论上的停时概念。因为不同次哈希计算的结果相互独立,所以对任意 t>0,

(1),表明根据指数分布的性质,参数为-ln(1-α),找到合格块的平均时间为

邹传伟:技术解析比特币应对双花攻击的安全性问题

,T表示平均块退出时间(即10分钟)。然后,存在以下关系

邹传伟:技术解析比特币应对双花攻击的安全性问题

(2)这是比特币的难度系数调整机制。

假设整个网络的计算能力h不变,诚实节点和恶意节点的计算能力分别为Hg和Hb,h=Hg+Hb。他们找到合格区块的时间是τG和τb。根据以上分析,并服从指数分布。参数是

邹传伟:技术解析比特币应对双花攻击的安全性问题

诚实节点首先找到合格块的概率是

诚实节点与恶意节点之间的挖矿竞争

假设全网算力 H 不变,诚实节点与恶意节点的算力分别为 Hg和 Hb,H=Hg+Hb。它们找到合格区块的时间分别为τg和τb。根据前文的分析,和均服从指数分布,参数分别是

同样,恶意节点首先找到兼容块的概率是

诚实节点先找到合格区块的概率是

(3)和(4)注:首先找到兼容块的概率与计算能力成正比。

假设整个网络的计算能力h、诚实节点的计算能力Hg和恶意节点的计算能力Hb保持不变。假设恶意节点在块后面落后于诚实节点,那么考虑恶意节点赶上诚实节点的概率。从恶意节点的角度来看,引入了以下计数函数

,其中,-Z表示恶意节点在开始时落后于诚实节点Z个块。II(τb<τg)表示第i个限定块是否由恶意节点生成。如果是,则l(n)增加1;否则,l(n)减少1。换句话说,l(n)表示n个块之后的块数,其中恶意节点在诚实节点之前(小于0表示恶意节点落后于诚实节点的块数)。

恶意节点和诚实节点之间的关系是“最长链竞争”QZ用于表示恶意节点赶上诚实节点的概率,其数学表达式为:

恶意节点从落后追赶诚实节点的问题

此外,q-1=1。但是,只有(7)这个边界条件还不足以解决。这个问题需要转化为赌徒破产问题。

假设恶意节点放弃追逐诚实节点后面的n个块(n是一个大的正整数),恶意节点赢得“最长链竞争”两种情况都对应于“最长链竞争”的停止,这意味着“赌徒破产”。问题是:

邹传伟:技术解析比特币应对双花攻击的安全性问题

,τC也是概率论中的停止时间概念,L(τc)=-1表示恶意节点赢得“最长链竞争”,l(τc)=-N表示恶意节点退出“最长链竞争”。此时,(6)相当于仍然有效,但有两个边界条件:

邹传伟:技术解析比特币应对双花攻击的安全性问题

(7)它可以等价地表示为,

考虑第 1 个区块的情况(i=1)。如果这个区块由恶意节点生成,则恶意节点领先于诚实节点的区块数量变为-z+1,此情形的概率为 Prbg)=q;反之,这个区块由诚实节点生成,恶意节点领先于诚实节点的区块数量变为-z-1,此情形的概率为 Prbg)=p。因此,

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

迭代。可以看出,

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

可以累积上述迭代结果,

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

(12)

边界条件(10),有两种情况。

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

首先,Q&gt;P(即恶意节点占主导地位)。因为Q/P&gt;1,所以

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

第二,Q&lt;P(即,诚实节点占主导地位)因为Q/P&lt;1,所以在上述解决方案过程中,P=Q=0.5;∞ 意味着恶意节点想要赢得“最长链竞争”任何巨大的成本都是可以容忍的。当然,这是一个过于理想化的假设,它只考虑恶意节点从背后追赶诚实节点的技术可行性。事实上,恶意节点将衡量追赶的成本和收益。在许多情况下,成本超过收益,表明追赶不是可行的即使在技术上可行,在经济上也是可行的。这将为比特币分发分类账带来安全。

这与比特币白皮书第6页给出的以下公式相对应。应该注意的是,比特币白皮书讨论了恶意节点追上诚实节点的概率从后面,和(15)给出的是恶意节点超过诚实节点至少一个块的概率。

邹传伟:技术解析比特币应对双花攻击的安全性问题

这是比特币白皮书中讨论的关键问题。该问题的关键是泊松过程和指数分布之间的关系。如果生成的块数为L从任何时间点计算,得到的计数过程是泊松分布:

>

换句话说,两个相邻块之间的时间间隔服从参数-ln(1-α),当h呈指数分布时,其对应的计数过程服从参数-ln(1-α)H的泊松过程。

在双花攻击中,假设事务发起方等待Z个块。这些块由诚实节点生成,相应的时间等于

邹传伟:技术解析比特币应对双花攻击的安全性问题

假设恶意节点在此时间段内私自生成块,生成的块Z的累积数量遵循泊松分布,参数等于

邹传伟:技术解析比特币应对双花攻击的安全性问题

这对应于比特币白皮书第7页上的以下公式:

邹传伟:技术解析比特币应对双花攻击的安全性问题

根据泊松分布的定义,

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

在时间0&lt;=Z&lt;=Z时,恶意节点后面的块数为Z-Z;在Z&gt;=Z+1时,恶意节点已完成双花攻击。因此,恶意节点具有双花,成功概率等于(仅Q&lt;P)

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

另外,q-1=1。但仅凭 (7) 和这个边界条件不足以求解,需要将这个问题转换为「赌徒破产」问题(Gambler’s Ruin Problem)。

迭代。可以看出,

邹传伟:技术解析比特币应对双花攻击的安全性问题

可以累积上述迭代结果,

(12)

边界条件(10),有两种情况。

首先,Q&gt;P(即恶意节点占主导地位)。因为Q/P&gt;1,所以

第二,Q&lt;P(即,诚实节点占主导地位)因为Q/P&lt;1,所以在上述解决方案过程中,P=Q=0.5;∞ 意味着恶意节点想要赢得“最长链竞争”任何巨大的成本都是可以容忍的。当然,这是一个过于理想化的假设,它只考虑恶意节点从背后追赶诚实节点的技术可行性。事实上,恶意节点将衡量追赶的成本和收益。在许多情况下,成本超过收益,表明追赶不是可行的即使在技术上可行,在经济上也是可行的。这将为比特币分发分类账带来安全。

这与比特币白皮书第6页给出的以下公式相对应。应该注意的是,比特币白皮书讨论了恶意节点追上诚实节点的概率从后面,和(15)给出的是恶意节点超过诚实节点至少一个块的概率。

邹传伟:技术解析比特币应对双花攻击的安全性问题

这是比特币白皮书中讨论的关键问题。该问题的关键是泊松过程和指数分布之间的关系。如果生成的块数为L从任何时间点计算,得到的计数过程是泊松分布:

>

换句话说,两个相邻块之间的时间间隔服从参数-ln(1-α),当h呈指数分布时,其对应的计数过程服从参数-ln(1-α)H的泊松过程。

在双花攻击中,假设事务发起方等待Z个块。这些块由诚实节点生成,相应的时间等于

邹传伟:技术解析比特币应对双花攻击的安全性问题

假设恶意节点在此时间段内私自生成块,生成的块Z的累积数量遵循泊松分布,参数等于

邹传伟:技术解析比特币应对双花攻击的安全性问题

这对应于比特币白皮书第7页上的以下公式:

邹传伟:技术解析比特币应对双花攻击的安全性问题

根据泊松分布的定义,

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

在时间0&lt;=Z&lt;=Z时,恶意节点后面的块数为Z-Z;在Z&gt;=Z+1时,恶意节点已完成双花攻击。因此,恶意节点具有双花,成功概率等于(仅Q&lt;P)

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

换句话说,两个相邻块之间的时间间隔服从参数-ln(1-α),当h呈指数分布时,其对应的计数过程服从参数-ln(1-α)H的泊松过程。

在双花攻击中,假设事务发起方等待Z个块。这些块由诚实节点生成,相应的时间等于

邹传伟:技术解析比特币应对双花攻击的安全性问题

假设恶意节点在此时间段内私自生成块,生成的块Z的累积数量遵循泊松分布,参数等于

考虑边界条件 (10),存在两种情况。

这对应于比特币白皮书第7页上的以下公式:

邹传伟:技术解析比特币应对双花攻击的安全性问题

根据泊松分布的定义,

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

在时间0&lt;=Z&lt;=Z时,恶意节点后面的块数为Z-Z;在Z&gt;=Z+1时,恶意节点已完成双花攻击。因此,恶意节点具有双花,成功概率等于(仅Q&lt;P)

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

在时间0&lt;=Z&lt;=Z时,恶意节点后面的块数为Z-Z;在Z&gt;=Z+1时,恶意节点已完成双花攻击。因此,恶意节点具有双花,成功概率等于(仅Q&lt;P)

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

<邹传伟:技术解析比特币应对双花攻击的安全性问题><邹传伟:技术解析比特币应对双花攻击的安全性问题>

在上述求解过程中,N->∞的含义是恶意节点为了赢得「最长链竞争」可以容忍任何大的成本。这当然是一个过于理想化的假设,只考虑了恶意节点从落后追赶诚实节点在技术上的可行性。实际上,恶意节点会衡量追赶的成本和收益,在很多情况下成本超过收益,说明追赶即使在技术上可行,在经济学上不可行。这会为比特币分布式账本带来安全保障。

这就对应着比特币白皮书第 6 页给出的如下公式。需要说明的是,比特币白皮书讨论的是恶意节点从落后追平诚实节点的概率,而 (15) 给出的是恶意节点至少超过诚实节点 1 个区块的概率。

邹传伟:技术解析比特币应对双花攻击的安全性问题

分布式账本面对双花攻击的安全性

这是比特币白皮书重点讨论的问题。此问题的关键是泊松过程与指数分布之间的关系。如果从任意时点开始统计区块生成数量,由此得到的计数过程就是泊松分布:

  1. 任意两个不重叠的时间段内区块生成数量是互相独立的随机变量;
  2. 在任意长度为的时间段内,区块生成数量服从泊松分布

邹传伟:技术解析比特币应对双花攻击的安全性问题

换言之,在相邻两个区块之间的时间间隔服从参数为-ln(1-α)H 的指数分布时,与其对应的计数过程服从参数为-ln(1-α)H 的泊松过程。

在双花攻击中,假设交易发起者等待了 z 个区块。这些区块由诚实节点生成,对应的时间等于

邹传伟:技术解析比特币应对双花攻击的安全性问题

假设恶意节点在这个时间段内在私下生成区块,累计生成区块生成数量 Z 服从泊松分布,参数等于

邹传伟:技术解析比特币应对双花攻击的安全性问题

这对应着比特币白皮书第 7 页的如下公式:

邹传伟:技术解析比特币应对双花攻击的安全性问题

根据泊松分布的定义,

邹传伟:技术解析比特币应对双花攻击的安全性问题

在时 0<=Z<=z,恶意节点落后的区块数为 z-Z;在 Z>=z+1 时,恶意节点已完成双花攻击。因此,恶意节点双花成功的概率等于(只讨论 q<p 的情形)

邹传伟:技术解析比特币应对双花攻击的安全性问题

邹传伟:技术解析比特币应对双花攻击的安全性问题

区块链技术邹传伟:技术解析比特币应对双花攻击的安全性问题 由www.b2bchain.cn 提供
文章整理自网络,只为个人学习与分享使用
链接地址https://www.b2bchain.cn/?p=24962

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 区块链技术邹传伟:技术解析比特币应对双花攻击的安全性问题
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们