(中本聪)Re: Bitcoin P2P e-cash pape
官网:Satoshi Nakamoto Institute
Nakamoto, S. 2008. Bitcoin P2P e-cash paper
Nakamoto, S. 2008. Re: Bitcoin P2P e-cash paper | 2008-11-13 22:56:55
Cryptography Mailing List:Original Email | View in Thread
James A. Donald wrote:
It is not sufficient that everyone knows X. We also need everyone to know that everyone knows X, and that everyone knows that everyone knows that everyone knows X - which, as in the Byzantine Generals problem, is the classic hard problem of distributed data processing.
The proof-of-work chain is a solution to the Byzantine Generals' Problem. I'll try to rephrase it in that context.
工作链证明是解决拜占庭将军问题的一种方法。我将尝试在这种情况下重新表述它。
A number of Byzantine Generals each have a computer and want to attack the King's wi-fi by brute forcing the password, which they've learned is a certain number of characters in length. Once they stimulate the network to generate a packet, they must crack the password within a limited time to break in and erase the logs, otherwise they will be discovered and get in trouble. They only have enough CPU power to crack it fast enough if a majority of them attack at the same time.
许多拜占庭将军每人都有一台电脑,他们想通过强行输入密码来攻击国王的Wi-Fi,他们知道密码的长度是一定数量的字符。一旦它们刺激网络生成一个包,就必须在有限的时间内破解密码,以闯入并删除日志,否则就会被发现并陷入麻烦。如果他们中的大多数同时攻击,他们只有足够的CPU能力来足够快地破解它。
They don't particularly care when the attack will be, just that they all agree. It has been decided that anyone who feels like it will announce a time, and whatever time is heard first will be the official attack time. The problem is that the network is not instantaneous, and if two generals announce different attack times at close to the same time, some may hear one first and others hear the other first.
他们并不特别关心什么时候会发生袭击,只是他们都同意。已经决定,任何一个感觉到它的人都会宣布一个时间,无论什么时候第一次听到,都将是正式的攻击时间。问题是网络不是即时的,如果两个将军同时宣布不同的攻击时间,有些人可能先听到一个,另一些人先听到另一个。
They use a proof-of-work chain to solve the problem. Once each general receives whatever attack time he hears first, he sets his computer to solve an extremely difficult proof-of-work problem that includes the attack time in its hash. The proof-of-work is so difficult, it's expected to take 10 minutes of them all working at once before one of them finds a solution. Once one of the generals finds a proof-of-work, he broadcasts it to the network, and everyone changes their current proof-of-work computation to include that proof-of-work in the hash they're working on. If anyone was working on a different attack time, they switch to this one, because its proof-of-work chain is now longer.
他们使用工作链证明来解决这个问题。一旦每个将军收到他首先听到的任何攻击时间,他就设置他的计算机来解决一个极其困难的工作证明问题,其中包括攻击时间。工作证明是如此的困难,在他们中的一个找到解决方案之前,预计要花10分钟的时间来完成所有工作。一旦一个将军找到了工作证明,他就会把它广播到网络上,每个人都会改变他们当前的工作证明计算,把工作证明包含在他们正在处理的哈希表中。如果有人在不同的攻击时间工作,他们会切换到这个时间,因为它的工作链证明现在更长了。
After two hours, one attack time should be hashed by a chain of 12 proofs-of-work. Every general, just by verifying the difficulty of the proof-of-work chain, can estimate how much parallel CPU power per hour was expended on it and see that it must have required the majority of the computers to produce that much proof-of-work in the allotted time. They had to all have seen it because the proof-of-work is proof that they worked on it. If the CPU power exhibited by the proof-of-work chain is sufficient to crack the password, they can safely attack at the agreed time.
两小时后,一次攻击时间应通过12个工作证明链进行散列。每一位将军,仅仅通过验证工作链证明的难度,就可以估计出每小时在它上面花费了多少并行CPU功率,并看到它必须要求大多数计算机在指定的时间内生成如此多的工作证明。他们一定都看过,因为工作证明就是他们工作的证据。如果工作链证明所显示的CPU能力足以破解密码,则可以在约定的时间安全攻击。
The proof-of-work chain is how all the synchronisation, distributed database and global view problems you've asked about are solved.
工作链的证明是如何解决您所要求的所有同步、分布式数据库和全局视图问题。