主页 > imtoken下载钱包 > 比特币白皮书翻译及详解-13:计算

比特币白皮书翻译及详解-13:计算

imtoken下载钱包 2023-01-18 16:04:58

比特币白皮书【计算】原文

【计算】这部分是比特币白皮书中最长的部分,涉及的数学原理也最多。有点难!

我们考虑攻击者试图比诚实链更快地生成替代链的场景。

现在我们考虑一个攻击者试图创建一个比诚实链更快的替代链的场景。

这是一个攻击者试图创建一个比诚实节点产生的链更快的链。

即使实现了这一点,它也不会让系统对任意更改开放,例如凭空创造价值或拿走不属于攻击者的钱。

即使实现了这一点,它也不会让系统肆意改变,例如创造虚无主义的价值,或者窃取原本不属于攻击者的钱。

也就是说,即使攻击者创建了比诚实节点生成的区块链更快的链,即使达到了这个目的,整个系统也不会完全受制于攻击者的任意意志,也就是说,即使所以,攻击者仍然无法为所欲为。

节点不会接受无效交易作为付款,诚实节点永远不会接受包含它们的块。

节点不会接受无效交易,例如支付,诚实节点永远不会接受包含无效交易的区块。

攻击者只能尝试更改他自己的一项交易以收回他最近花费的钱。

攻击者最多只能尝试修改自己的交易信息,以收回他刚刚花掉的钱。

诚实链和攻击者链之间的竞争可以被描述为二项式随机游走。

诚实链和攻击链之间的竞争可以用二项式随机游走来标记。也称为二叉树中的随机游走。什么是二项式随机游走,二项式随机游走。

我们先来解释一下Random Walk,一种随机游走。

随机游走,又称随机游走,最初是物理学中微观粒子做“布朗运动”的运动形式形成的模型。布朗运动是微观粒子,如一些悬浮物质,如尘埃、花粉等,做一种永不停止的随机混沌运动,因为它是通过流体分子的碰撞而运动的,这是由流体的流动引起的。空气,风在吹。

后来,随机游走模型被用作数学金融中的一个假设。这意味着证券价格的时间序列将处于随机状态,不会表现出某种可观察的或统计上的确定性趋势,即证券价格的变化。是不可预测的。那么我们不能只相信未来的任何股票预测者。

那么在计算机领域,随机游走主要用于对一个关系进行传递分析。这里我们不能完全展开随机游走,简单用一个例子来说明一下关系迁移分析是怎样的。

比如我想在网上买手机,我搜了百度,找到了淘宝和天猫这两个卖手机的平台;我的妻子想买一部 iPhone。百度了一下,找到了淘宝、天猫、京东。虽然没找到京东的平台,但是京东和我一起买手机的意向还是很高的。也就是说,虽然我没有找到京东平台,但不代表我不会和京东有联系。也许我和京东有一种未表达的联系。为了表达这种关系的传递,我们可以把我、我老婆、淘宝、天猫、京东看成一个随机场,根据我们所有点之间的连通性和转移概率进行随机游走,传递我们的连接关系。

再比如,我们上网,输入网址,浏览页面,然后沿着页面的链接继续打开新的页面。随机游走模型是针对用户浏览网页行为建立的抽象模型。我们所有的用户都从一个网页打开另一个网页比特币方程式特解,然后从一个网站跳转到另一个网站。这是随机的。之所以建立这个抽象模型,是因为有很多链接,包括百度的网页权重和谷歌的PageRank。分析算法均基于随机游走模型。已经取得、取得的成果,推动了您感兴趣的内容,并降低了您的搜索成本。

什么是二叉树、二叉树?我们先举个例子。假设我开了一家餐馆。如果餐厅旁边有地铁站,我的日营业额可以达到10万。如果餐厅旁边的地铁站关门,我每天的营业额只有3万。现在我做我的第一笔投资,平均成本是每天40,000。这个时候,如果这个地铁站开和不开的概率差不多,我是不是应该开餐厅?经过计算,如果地铁站开着,我一天能赚10万-4万=6万。如果地铁站不开,我一天会亏40000-30000=10000。收益远大于损失。如果地铁站开或不开的概率差不多,那我感觉我已经决定开餐厅了!

在这里,作为另一个例子,这是用于分析股票的最简单的二叉树基本模型。这里的二元含义是,要么成功,要么失败,只有两个方向。

这是在线查找股票的二叉树交易方法。基本原理是,我们看到图表上的股价是以10元的股价为基准,然后只有两种趋势:涨跌,涨跌的概率为50%。如果上升到下一个基准点,11,也会有两种趋势,一个是上升到下一个基准点12,一个是回落到10;而如果从前10个基准点直接跌到谷底,9元,那么也有两种趋势,回升到10元,回落到8元。这样就形成了二叉树的形式。有兴趣的朋友可以参考这张图,从10元买入开始,看看达到每个基准点时如何操作,是加仓还是​​卖出,如何实现利润最大化,

因此,二叉树的随机游走,即随机游走是在两个方向形成的概率模型,要么是诚实链领先,要么是攻击链领先。

成功事件是诚实链被延长一区块,领先+1,失败事件是攻击者的链被延长一区块,差距减少-1.

成功事件是诚实链加块扩展,则诚实链领先+1,失败事件是攻击链加块扩展,使得它们之间的差距-1.

攻击者从给定的缺陷中赶上来的概率类似于赌徒的废墟问题。

攻击者从给定的差距赶上 [诚实链] 的概率类似于赌徒破产问题。

假设一个拥有无限信用额度的赌徒从亏损开始,并可能进行无数次尝试以达到收支平衡。

假设一个赌徒有无限的信用额度,然后从一定的透支开始并进行可能无限数量的测试以试图弥补他的不足。

我们可以计算他达到盈亏平衡的概率,或者攻击者追上诚实链的概率比特币方程式特解,如下 [8]: p = 诚实节点找到下一个区块的概率 q = 攻击者找到下一个区块的概率 qz = 概率攻击者将永远从后面的 z 个街区赶上。

我们可以计算他补足缺口的概率,也就是攻击者追上诚实链的概率,如下:

p 等于诚实节点找到下一个区块的概率;q = 攻击者找到下一个区块的概率,qz = 当 z 块落后时攻击者赶上诚实链的概率

概率公式

假设我们假设 p > q,随着攻击者必须赶上的块数量的增加,概率呈指数下降。

假设 p > q,随着攻击者必须追赶的区块链数量的增加,成功攻击的概率呈指数下降。也就是说,随着区块链的不断拉长,攻击者会越来越落后,他需要追的区块越多,他就越难追上。

在对他不利的情况下,如果他没有在早期幸运地向前冲刺,那么随着他进一步落后,他的机会就会变得微乎其微。

情况对进攻方不利,如果他没有足够的运气快速传球,他越落后,传球的机会就越少。

我们现在考虑新交易的接收者需要等待多长时间才能充分确定发送者不能更改交易。

现在我们考虑一下,新交易的接收者,receiver 接收者,这里指的是接收者,新交易的接收者需要等待多久,在足够确信发送者无法改变交易之后。

也就是说,收件人必须等待多长时间才能确定付款人无法修改交易。

我们假设发件人是一个攻击者,他想让收件人相信他支付了他一段时间,然后在一段时间后将其转换为还给自己。

假设付款人是一个攻击者,他想让收款人相信他已经支付了一段时间,一段时间,攻击者希望收款人知道他已经支付了一段时间,然后他把钱回拨给自己, 过了一会儿。

发生这种情况时,接收方会收到警报,但发送方希望为时已晚。

当这种情况发生时,收款人会保持警惕,但付款人希望为时已晚。

接收方生成一个新的密钥对,并在签名前不久将公钥提供给发送方。

收款人生成一个新的密钥对,并在签名后不久将公钥发送给付款人。

这可以防止发送者提前准备一个区块链,方法是不断地处理它,直到他幸运地领先足够远,然后在那个时刻执行交易。

这可以防止付款人提前准备好区块链,然后继续处理它,直到他足够幸运能够取得足够的进展,然后在那时执行付款。

一旦交易被发送,不诚实的发送者就开始在包含他的交易的替代版本的平行链上秘密工作。

交易发送后,不诚实的付款人开始秘密地在包含其交易的替代版本的平行链上工作。

接收者一直等到交易被添加到一个块中并且z个块已经链接到它之后。

收款人等到交易被添加到区块,然后Z个区块被链接到后面。

他不知道攻击者取得的确切进展量,但假设诚实块花费了每个块的平均预期时间,攻击者的潜在进展将是具有预期值的泊松分布:

他并不确切知道攻击者前进了多少个区块,但假设诚实的区块需要平均时间来产生一个区块,则攻击者的潜在进度呈现泊松密度分布,期望值 λ 为:

泊松分布是统计和概率中常见的离散概率分布。泊松分布的值称为 lambda,也称为事件率,或速率参数,即在一个区间内,一个事件可以发生 0 次,1 次,2 次,...,那么在这个区间内,平均数事件发生的次数称为λ。

在这个公式中,z 是一个自然常数,即如前所述,攻击者落后于诚实链 z 块的数量。q=攻击者找到下一个区块的概率,p是诚实节点找到下一个区块的概率,使用q/p,即攻击者找到下一个区块的概率/诚实节点找到下一个区块的概率next block 的概率,乘以攻击者在诚实链后面的 z 个块的数量,得出泊松分布的期望值 λ,即攻击者在平均时间中取得进展所需的平均时间生成一个诚实的块数。

显然,这里是p>q,所以q/p小于1,再乘以z,就小于z了。也就是说,攻击者在后面。如果 p

为了得到攻击者现在仍然可以赶上的概率,我们将他可能取得的每个进步量的泊松密度乘以他从那个点可以赶上的概率:

为了得到攻击者可能仍然赶上的概率(诚实链),我们将攻击者可能取得进展的块数的泊松密度乘以他可能赶上该数字的概率:

代表攻击者可能已经取得的进度的块数的泊松密度,从 0 开始,一直到无穷大,然后将所有获得的数字相加。右侧表示攻击者可能赶上这个数字的概率。

重新排列以避免对分布的无限尾求和...

为了整理,避免对无限系列的密度分布求和:

转换为 C 代码...

转换为 C 语言代码

运行一些结果,我们可以看到概率随 z 呈指数下降。

计算一些结果,我们可以看到概率根据 Z 值呈指数下降:

q=0.1

z=0 P=1.0000000

z=1 P=0.2045873

z=2 P=0.0509779

z=3 P=0.0131722

z=4 P=0.0034552

z=5 P=0.0009137

z=6 P=0.0002428

z=7 P=0.0000647

z=8 P=0.0000173

z=9 P=0.0000046

z=10 P=0.0000012

注意这里的P是大写的P,是攻击者仍然可能追上的概率(诚实链),不是小写的p,小写的p是诚实节点找到上面提到的下一个区块的概率,别不要搞混了。

那么z越大,即攻击者落后于诚实节点的块越多,攻击者追上的概率就越低。

q=0.3

z=0 P=1.0000000

z=5 P=0.1773523

z=10 P=0.0416605

z=15 P=0.0101008

z=20 P=0.0024804

z=25 P=0.0006132

z=30 P=0.0001522

z=35 P=0.0000379

z=40 P=0.0000095

z=45 P=0.0000024

z=50 P=0.0000006

将 q 提高到 0.3 意味着增加攻击者找到下一个块的概率。同样,Z 越大,攻击者在诚实节点后面的区块越多,攻击者追逐下一个区块的次数就越多。概率越低。

求个P

P<0.001

q=0.10 z=5

q=0.15 z=8

q=0.20 z=11

q=0.25 z=15

q=0.30 z=24

q=0.35 z=41

q=0.40 z=89

q=0.45 z=340

这是为了将攻击者追上的概率降低到千分之一以下。可以看出,当攻击者找到下一个区块的概率较高时,其结果是需要追赶更多的区块。

本系列所有文章:

1、比特币技术的起源

2、比特币诞生背景

3、比特币白皮书翻译及详解-1:白皮书标题

4、比特币白皮书翻译及详解-2:白皮书摘要

5、比特币白皮书翻译及详解-3:简介

6、比特币白皮书翻译及详解-4:交易

7、比特币白皮书翻译及详解-5:时间戳服务器

8、比特币白皮书翻译及详解-6:工作量证明

9、比特币白皮书翻译及详解-7:网络

10、比特币白皮书翻译及详解-8:激励

11、比特币白皮书翻译及详解-9:回收硬盘空间

12、比特币白皮书翻译及详解-10:简化支付验证

13、比特币白皮书翻译及详解-11:价值组合与细分

14、比特币白皮书翻译及详解-12:隐私

15、比特币白皮书翻译及详解-13:计算

16、比特币白皮书翻译及详解-14:结论