主页 > imtoken冷钱包 > 比特币能成为拜占庭将军问题的最佳解决方案吗

比特币能成为拜占庭将军问题的最佳解决方案吗

imtoken冷钱包 2023-07-08 05:07:46

描述

拜占庭故障是 Leslie Lambert 提出的点对点通信中的一个基本问题。 这意味着试图通过在不可靠的通道上传递消息并丢失消息来达成共识是不可能的。 因此,对一致性的研究一般都假设信道是可靠的,或者不存在这个问题。 这个问题也被称为“拜占庭容错”、“拜占庭将军问题”或“两军问题”。

拜占庭将军问题是一个协议问题。 拜占庭帝国军队的将领必须一致决定是否攻击某支敌军。 问题是武将异地,武将中有内奸。 叛徒可以随意行动以达到以下目的:诱使某些将军采取进攻行动; 促成并非所有将军都同意的决定,例如在将军不想进攻时促使他们采取进攻行动; 或混淆某些将军,使他们无法做出决定。 如果叛徒达到了其中一个目的,那么任何进攻行动的结果都注定要失败,只有通力合作才能取胜。

拜占庭假设对现实世界进行建模,在现实世界中,由于硬件错误、网络拥塞或断开连接以及恶意攻击,计算机和网络的行为可能无法预测。 拜占庭容错协议必须处理这些故障,并且这些协议还必须满足它们试图解决的问题所要求的规范。

首先,不要将比特币视为一种货币,而是一种账本。 它是一个电子账本,每个参与者在网络上的电脑都会有一个账本的备份,所有的备份都会实时不断地更新、核对和同步。 每个参与者都可以在这个分类账上做一个条目,它记录了一定数量的硬币已经从一个参与者发送到另一个参与者,然后每一个这样的记录都是实时记录的。 广播到网络,因此每台计算机上的每个副本几乎同时更新,并且分类帐的所有副本保持同步。 这种开放的分布式账本可以称为“区块链(blockchain)”,它采用BT技术保证所有副本同步。

比特币一分28校验工具_比特币分链_比特币分几种币

将比特币视为分布式系统领域复杂算法问题的通用解决方案。

这个问题的一个有趣的非正式表述如下:想象一下,在拜占庭时代,有一个城墙高而厚的城邦,拜占庭,城墙内蕴藏着邻国无法想象的财富。 它被其他10个城邦包围,这些城邦与拜占庭相比同样富有但相形见绌。 它的十个邻国都觊觎拜占庭的财富,欲侵占。

然而,拜占庭的防御如此强大,以至于邻近的城邦没有一个能够成功入侵。 任何一个城邦的入侵都会失败,侵略者的军队就会被歼灭,容易受到其他九个城邦的入侵和掠夺。 这十个城邦也互相觊觎着对方的财富,不断地互相争斗。 而且,拜占庭的防御实在是太强大了,十个邻国有一半以上同时出击,将其攻破。

也就是说,如果六个或更多相邻的敌军一起进攻,他们就会成功并获得拜占庭的财富。 但是比特币一分28校验工具,如果他们中的一个或多个背叛了其他人,同意一起入侵但在其他人进攻时退出,导致只有五支或更少的军队同时进攻,那么所有进攻的军队都会被歼灭并随后被其他邻国掠夺,包括背叛他们的邻居。 这是一个由彼此不信任但必须共同努力完成共同使命的各方组成的网络。

此外,邻居之间沟通和协调计时的唯一方式是在马背上传递消息。 他们不能在一个地方会面(所有国王都不相信对方可以在他们的城堡或军队之外保证他们的安全)。 但是,他们可以在任何时间以任何频率向任何交易对手发送任何数量的快递。 每条消息都包含这样的内容:“我将在第四天的 6 点进行攻击,你愿意加入吗?”。

比特币分几种币_比特币分链_比特币一分28校验工具

如果收件人同意,他们会在原始信件上附上签名/认证/盖章/认证的回复,并将新合并的邮件副本重新发送给九个邻居,要求他们也这样做。 最终目标是通过将所有 10 个标记都印在原始信息链上,让它们按时达成一致。 最终的结果是会有一个包含十个邮票同时同意的消息链,并且可能有一些丢弃的消息链包含一些但不是全部的邮票。

然而问题在于,如果每个城邦向另外9个城邦发送快递,那么10个城邦各发送9个快递,或者说每次总共发送90次,每个城市分别收到一个到九条消息,每条消息可能都有不同的犯罪时间。 另外,一些城邦会约定不止一次的攻击时间比特币一分28校验工具,故意背叛始作俑者,所以会转播不止一条信息链。 该系统迅速退化为一堆不可信任的信息和自相矛盾的攻击时间。

比特币通过对系统进行简单的(事后看来很简单)修改来解决这个问题,这增加了发送消息的成本,降低了消息传递的速率,并添加了随机性元素以确保只有一个城邦可以一次广播。 它的加入成本是“工作证明”,它基于计算随机哈希算法。 哈希是一种算法,它所做的唯一一件事就是获取一些输入并对其进行计算,并获得一个由随机数和字母组成的遗传 64 位字符串,如下所示:

d70298566aa2f1a66d892dc31fedce6147b5bf509e28d29627078d9a01a8f86b

在比特币世界中,输入数据包括截至当前时间点的整个账本(区块链)。 尽管今天的计算机几乎可以立即计算出一个哈希值,但只有前 13 个字符为 0 的哈希值才能被比特币系统接受为“工作量证明”。 这样的 13 零哈希值极不可能也很少见,目前整个比特币网络大约需要 10 分钟才能找到一个。 在网络中的一台机器能够随机找到一个有效哈希值之前,将计算出数十亿个无效值,这就是减慢信息传输速度并使整个系统可用的“工作量证明”。 下面是一个例子:

比特币一分28校验工具_比特币分链_比特币分几种币

f51d0199c4a6d9f6da230b579d850698dff6f695b47d868cc1165c0ce74df5e1

d70298566aa2f1a66d892dc31fedce6147b5bf509e28d29627078d9a01a8f86b

119c506ceaa18a973a5dbcfbf23253bc970114edd1063bd1288fbba468dcb7f8

在找到有效值之前,还要计算数百万和数十亿个类似上面的字符串。

000000000000084b6550604bf21ad8a955b945a0f78c3408c5002af3cdcc14f5

比特币分链_比特币分几种币_比特币一分28校验工具

找到下一个有效散列的机器(或我们类比中的城邦),将所有先前的信息放在一起,附上自己的,以及它的签名/印章/任何东西,并将其发送到网络广播中的其他机器. 一旦网络中的其他机器接收并验证了 13 零散列及其附加信息,它们就会停止当前的计算,用新信息更新它们的账本副本,并发送新的更新。账本/区块链是作为哈希算法的输入,重新开始哈希值的计算。 哈希计算竞赛从一个新的起点重新开始。 这样网络就不断同步,网络上的所有计算机都使用同一个版本的账本。

同时,每次成功找到一个有效哈希值和区块链更新之间的间隔大约为10分钟(这是故意的,算法难度每两周调整一次以确保网络总是需要10分钟才能找到一个有效的散列值希腊值)。 在这 10 分钟内,网络上的参与者发送消息并完成交易,并且由于网络上的每台机器都使用相同的分类帐,因此所有这些交易和信息将进入整个网络分类帐的每个副本。 当区块链进行全网更新同步时,所有在前10分钟内进入区块链的交易也会进行更新同步。 因此,分散的交易记录在所有参与者之间得到协调和同步。

最后,当个人将交易输入网络时,他们使用比特币客户端内置的标准公钥密码术,同时使用他们的私钥和接收者的公钥对交易进行签名。 这对应于他们在拜占庭将军问题中用来签署和验证消息的“印章”。 因此,哈希计算率的限制,结合公钥加密,让一个不可信的网络变成可信的网络,让所有参与者可以就某些事情(比如攻击时间,或者一系列交易,域名记录,政治投票系统,或任何其他需要分布式协议的地方)。

这是使比特币如此特别的关键:它代表了一个困难的算法难题的解决方案,该难题在一系列历史事件发生之前是不可能的:

·互联网的诞生

比特币一分28校验工具_比特币分几种币_比特币分链

· 发明公钥加密算法

· 点对点比特流 (BT) 协议的发明。 BitTorrent 协议最初是为了在网络上相对较小的用户子集之间共享许多文件而开发的,但比特币使用它在所有用户之间共享一个文件。

人们意识到,在使用公钥密码术验证每笔交易的同时向系统添加一个简单的时间延迟可以解决这个问题。

如果一些最好的想法在事后看来很简单,那么上面的第 4 点完全符合条件,即使整个项目都是建立在巨人的肩膀上的。

最后,这个拜占庭将军问题的解决方案可以推广到核心问题是分布式网络缺乏信任的任何领域。 正如我们已经提到的,人们正在为互联网建立一个分布式域名系统,以及一个用于政治选举的分布式投票系统(还没有网站)。 如果人们认为仅仅是文件共享就把世界搞得一团糟,那么比特币解决方案和协议才刚刚打开闸门。