主页 > imtoken2.0下载 > 比特币和拜占庭将军问题

比特币和拜占庭将军问题

imtoken2.0下载 2023-05-06 05:46:18

每次我向不熟悉它的人解释比特币的独特性时,我都会使用会计分类帐和拜占庭将军问题来帮助解释。 这篇文章是为了帮助解释内容。 有了这篇文章,我可以将链接发送给我的朋友,而不必每次都重新输入很多单词。

比特币与拜占庭将军问题

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

你也可以把比特币看作是分布式系统领域复杂算法问题的通用解决方案,俗称“拜占庭容错”、“拜占庭将军问题”或“两军问题”。

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

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

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

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

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

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

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

d70298566aa2f1a66d892dc31fedce6147b5bf509e28d29627078d9a01a8f86b

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

f51d0199c4a6d9f6da230b579d850698dff6f695b47d868cc1165c0ce74df5e1

d70298566aa2f1a66d892dc31fedce6147b5bf509e28d29627078d9a01a8f86b

119c506ceaa18a973a5dbcfbf23253bc970114edd1063bd1288fbba468dcb7f8

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

000000000000084b6550604bf21ad8a955b945a0f78c3408c5002af3cdcc14f5

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

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

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

这是使比特币如此特别的关键:它代表了一个困难的算法难题的解决方案,该难题在一系列历史事件发生之前是不可能的: 互联网的创建 公钥加密算法的发明 点对点的发明比特流 (BT) 协议。 BitTorrent 协议最初是为了在网络上相对较小的用户子集之间共享许多文件而开发的,但比特币使用它在所有用户之间共享一个文件。 人们意识到,在使用公钥密码术验证每笔交易的同时向系统添加一个简单的时间延迟可以解决这个问题。 如果一些最好的想法在事后看来很简单,那么上面的第 4 点完全符合条件,即使整个项目都是建立在巨人的肩膀上的。

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

原版的

拜伦·吉布森

翻译 He1l_Q

如果这篇文章有帮助,请考虑捐赠:15X9AMhccjqqPRkhpgraoj7fgdqymW3iSC

欢迎转载,转载请注明作者、译者、出处比特币可以复制吗,谢谢支持!