区块链的可篡改性
区块链中的每个好的节点自然不会试图在其区块中捕获欺诈性交易。
因此,有两种类型的欺诈行为是恶意节点可以实施的
- 伪造交易历史,以取回迄今已支付的金额
- 垄断未来要发行的新硬币
由于区块链认为最长的链是正确的链,正确的链和不正确的链之间的竞争可以被认为是随机漫步。
如果正确的链是一个区块长,那么好的节点就领先一步,如果错误的链是一个区块长,那么错误的节点就领先一步。
流氓链的长度追上并超过正确链的长度的概率与赌徒破产问题类似。
赌徒的破产问题是指当赌徒不断下相同金额的赌注时,破产的概率会增加的理论。
这个理论证明,一个没有多少钱的赌徒不可能赢过一个拥有巨额资金的组织。
比特币论文证明,随着正确链长度的增加(随着区块数量的增加),非法链的长度在任何时候都能赶上正确链的长度的概率变得指数级的小。
如果P>q(好节点的数量超过了坏节点的数量),那么随着正确链中区块数量的增加,qz会呈指数级降低。
因此,流氓节点必须尽快缩小与正确链的差距。
Compruebe el progreso de su lección
Una vez que hayas averiguado de qué trata la lección,
haz clic en el botón "Comprobar".
交易终结性
我们现在将了解需要多少时间才能将交易被篡改的可能性降低到几乎为0%。
这种交易被篡改的可能性接近0%的状态,被称为最终性。
例如,我们假设交易的发送方是一个流氓节点,而接收方是一个好节点。
其目的是让流氓节点向好的节点发送一个假的比特币交易,而好的节点在一定时间后才注意到它,这时已经太晚了。
流氓节点在发送虚假比特币交易的同时,开始形成流氓链的区块。
正确的节点没有办法知道流氓节点已经把流氓链扩展到什么程度。
此时,如果由于难度的调整,正确的链条照常形成区块,那么流氓节点所能扩展的区块长度将遵循以下泊松分布的期望值
流氓链追上正确链的概率等于流氓节点在每个节点开始生成链的地方完成形成k个区块的概率,再乘以从z-k差中追上的概率(连接到正确链的区块数-连接到流氓链的区块数 )到追赶的概率,然后将结果在所有K上求和。
上述方程翻译成C代码后,看起来像这样
让我们试着将一些数字应用于这个表达式。
正如你在上面看到的,一个坏链子赶上一个好链子的概率随着z的增加而呈指数级下降。
那么,究竟需要多少块才能达到最终结果?
如果我们假设当不正确的链子追上正确的链子的几率小于0.1%时,就达到了最终状态,那么所需的区块数量如下
这意味着,如果至少有六个区块连接到正确的链上,那么流氓链赶上正确链的概率可以降低到0.1%以下。
换句话说,如果在一个新的区块形成后,随后又形成了六个区块,那么它就被认为是处于最终状态。
在比特币的情况下,一个区块形成的时间由难度调节为大约每10分钟一次,这意味着在新区块形成后,10分钟x6个区块=60分钟后就能实现最终结果。
Compruebe el progreso de su lección
Una vez que hayas averiguado de qué trata la lección,
haz clic en el botón "Comprobar".