中本聪谈 PoW
The Quotable Satoshi
Proof-of-Work
Bitcoin: A Peer-to-Peer Electronic Cash System
2008-10-31 - Link
我们提出双重花费问题的一个解决方案:使用一个点对点网络。通过将交易哈希到不断进行的基于哈希的 proof-of-work 链中,网络对交易打上时间戳,从而形成一个记录,如果不重做该 proof-of-work,这个记录便无法被更改。最长链,不仅可作为所被见证的事件序列的证明,还可证明它来自最大的 CPU 算力集合。只要大多数 CPU 算力由不合作攻击网络的节点控制,这些算力就将生成最长链,并超过攻击者。网络本身需要最小结构。
Bitcoin: A Peer-to-Peer Electronic Cash System
2008-10-31 - Link
在本文,我们提出一个方案,解决双重花费问题——即,使用一个点对点分布式时间戳服务器,生成交易时间顺序的计算证明。只要诚实节点所共同控制的 CPU 算力 ,比攻击者节点合作组所共同控制的更多,该系统就是安全的。
Bitcoin: A Peer-to-Peer Electronic Cash System
2008-10-31 - Link
要实现点对点分布式时间戳服务器,我们将需要使用 Proof-of-Work 系统,类似 Adam Back 的 Hashcash [6],而不是 newspaper 或 Usenet posts。Proof-of-Work,涉及扫描一个值,当这个值被哈希时,例如通过 SHA-256,该哈希开始于很多 0 bits (a number of zero bits)。所需平均工作量是所需 0 bits 数量的指数,并且可以通过执行单个哈希来进行验证。
Bitcoin: A Peer-to-Peer Electronic Cash System
2008-10-31 - Link
对于我们的时间戳网络,我们执行 Proof-of-Work,是通过递增区块中的随机数,直到一个特定值被找出,将所需 0 bits 给该区块哈希 。一旦所花费 CPU 工作量,满足 Proof-of-Work,该区块就无法被更改,除非重做该工作。之后区块,链于其后,更改该区块所需工作,将包括重做其之后的所有区块。
Bitcoin: A Peer-to-Peer Electronic Cash System
2008-10-31 - Link
Proof-of-Work 还解决在大数决策中确定代表( determining representation ) 的问题。如果大数( the majority )是基于一 IP 地址一票,可能会被任何能够分配许多 IP 的人所破坏。本质上,Proof-of-work 是一 CPU 一票。大数决策由最长链表示,最长链拥有投入其中的最大 proof-of-work effort 。如果大部分 CPU 算力由诚实节点控制,诚实链将增长最快并超过任何竞争链( any competing chains )。如果要修改某个过去的区块,攻击者必须重做该区块及其之后的所有区块的 proof-of-work ,然后追赶并超越诚实节点的 work 。我们将稍后说明,随着后续区块的添加,速度慢的攻击者( a slower attacker )赶上的概率,呈指数级递减。
Bitcoin: A Peer-to-Peer Electronic Cash System
2008-10-31 - Link
为了弥补随着时间推移,硬件速度的提高及运行节点所带来的利益的变化,proof-of-work 难度由 a moving average targeting an average number of blocks per hour 确定。如果区块生成得太快,难度会提升。
Bitcoin: A Peer-to-Peer Electronic Cash System
2008-10-31 - Link
网络运行步骤如下:
- 1)新交易被广播到所有节点。
- 2)每个节点将新交易收集到一个区块中。
- 3)每个节点致力于为其区块,找到一个有难度的 proof-of-work 。
- 4)当一个节点找到一个 proof-of-work 时,它将该区块广播到所有节点。
- 5)仅当这个区块中包含的所有交易都有效且尚未花费时,节点们接受该区块。
- 6)通过致力于创建该链的下一个区块,使用已被接受的区块的哈希作为之前哈希,节点们以此表达它们对该区块的接受。
Bitcoin: A Peer-to-Peer Electronic Cash System
2008-10-31 - Link
节点们始终将最长链视为正确链,并将继续致力于扩展它。如果同时,两个节点广播下一个区块的不同版本,则一些节点可能先接收到一个或另一个版本。在这种情况下,他们致力于他们所接收到的第一个,但保存另一个分支,以防这另一个分支变得更长。当下一个 proof of-work 被找到,并且一个分支变得更长时,这种关系将被打破;然后,致力于另一个分支的节点,将转向更长的那个分支。
Bitcoin: A Peer-to-Peer Electronic Cash System
2008-10-31 - Link
我们考虑一下这种场景,一个攻击者,试图比诚实链更快地生成一个替代链( alternate chain )。即使这已经完成,它也不会使系统对任意更改(如凭空创造价值,或拿走从来不属于攻击者的钱)开放通道。节点将不会认可一笔无效交易作为支付款项( Nodes are not going to accept an invalid transaction as payment ),诚实节点将永不会接受包含这些无效交易的区块。一个攻击者只能尝试更改他自己交易中的一笔,以拿回他最近花掉的钱( An attacker can only try to change one of his own transactions to take back money he recently spent )。
Bitcoin P2P e-cash paper
2008-11-09 - Link
严格而言,最长链总是被认为是有效链,这是必须的。在场节点们可能记得,其中一条分支是首先到达,然后被另一条取代,但他们无法说服不在场的那些节点( there would be no way for them to convince those who were not present of this )。我们无法依赖于这样的事实:依附于其中一条分支的一小派节点,这些节点认为这条分支才是先到达的;其他一小派节点看到另一条分支首先到达;后加入的其他节点,从未看到曾发生过什么。CPU 算力 proof-of-work 投票拥有最终话语权。对于每个人而言,取得一致的唯一方式是,无论如何,相信最长链总是有效的那条( The only way for everyone to stay on the same page is to believe that the longest chain is always the valid one, no matter what )。
Bitcoin P2P e-cash paper
2008-11-09 - Link
proof-of-work 链是此同步问题的解决方案,也是 “ 在不必须信任任何人的情况下,就可确知全球共享视野( globally shared view) ” 问题的解决方案( The proof-of-work chain is the solution to the synchronisation problem, and to knowing what the globally shared view is without having to trust anyone )。
Bitcoin P2P e-cash paper
2008-11-09 - Link
当一个节点发现 a proof-of-work ,该新区块传达至网络,每个人将其添加至链,开始致力于这个区块之后下一个区块。拥有另一笔交易的任意节点将停止尝试将另一笔交易包含入一个区块,因为,根据被接受的链,这笔交易现在是无效的。
Bitcoin P2P e-cash paper
2008-11-09 - Link
proof-of-work 链本身是不证自明的证明( The proof-of-work chain is itself self-evident proof ),它来自全球共享视野( globally shared view )。只有网络大多数共同,才拥有足够 CPU 算力,来生成这样一条具有难度的 proof-of-work 链。接受该 proof-of-work 链的任意用户,可看到网络的大多数已经批准了什么。一旦一笔交易被哈希进一条链中的 a link ,其之后有一些 links ,这笔交易就稳固地蚀刻进 the global history ( Once a transaction is hashed into a link that's a few links back in the chain, it is firmly etched into the global history )。
Bitcoin P2P e-cash paper
2008-11-13 - Link
proof-of-work 链是拜占庭将军问题的一个解决方案( The proof-of-work chain is a solution to the Byzantine Generals' Problem )。我将尝试在此语境中 rephrase 它。
有许多拜占庭将军,每位都有一台计算机,想通过暴力破解密码来攻击国王的 Wi-Fi ,他们已知密码是 一定长度的字符串 。一旦他们刺激网络生成数据包,他们必须在有限时间内破解密码以 break in 以及 erase the logs,否则他们将被发现并陷入困境。只有他们中的大多数同时攻击,才能获得足够 CPU 算力以足够快地破解密码。
他们并不特别关心攻击时间,只要他们达成共识。已经决定的是,任何人,只要喜欢,都可宣布一次时间;首次被听到的那个时间,将成为正式攻击时间。问题在于,网络不是即时的,如果两位将军几乎同一时间宣布不同的攻击时间,有些人可能先听到其中一个,其他人先听到另一个。
他们使用 proof-of-work 链来解决这个问题。一旦每个将军收到他首先听到的任何攻击时间,他就会安置他的计算机以解决一个极其困难的 proof-of-work 问题,这个问题将攻击时间包含入其哈希。The proof-of-work 是如此困难,预计他们所有人一次花费 10 分钟致力于此,直到他们中的一个发现了一个解决方案。一旦其中一位将军找到 a proof-of-work,他将其广播到网络,每个人都改变他们当前的 proof-of-work 计算,以将此 proof-of-work 包含入他们所正致力于的哈希中。如果有人在致力于一个不同的攻击时间,这些人会切换到这个攻击时间,因为其 proof-of-work 链现在更长。
两个小时后,一个攻击时间应该被 a chain of 12 proofs-of-work 进行哈希处理( one attack time should be hashed by a chain of 12 proofs-of-work )。每个将军只需通过验证 the proof-of-work 链的难度,可估计每小时有多少并行 CPU 算力花费于此,看到它必须要求大多数计算机在规定时间内才能产出这么多的 proof-of-work 。必须所有人都看到这一条链,因为 the proof-of-work 证明了他们致力于此。如果该 proof-of-work 链所显示的 CPU 算力足以破解密码,他们可以在约定的时间实施安全的攻击。
proof-of-work 链是你所问的同步,分布式数据库以及 global view 问题的解决方案( The proof-of-work chain is how all the synchronisation, distributed database and global view problems you've asked about are solved )。
Bitcoin P2P e-cash paper
2008-11-17 - Link
The proof-of-work is a Hashcash style SHA-256 collision finding. It's a memoryless process where you do millions of hashes a second, with a small chance of finding one each time. The 3 or 4 fastest nodes' dominance would only be proportional to their share of the total CPU power. Anyone's chance of finding a solution at any time is proportional to their CPU power.
Bitcoin P2P e-cash paper
2008-11-17 - Link
如何证明“某人为真”? 在于其供应 CPU 算力的能力( The credential that establishes someone as real is the ability to supply CPU power.)
Re: Bitcoin minting is thermodynamically perverse
2010-08-07 - Link
Proof-of-work has the nice property that it can be relayed through untrusted middlemen. We don't have to worry about a chain of custody of communication. It doesn't matter who tells you a longest chain, the proof-of-work speaks for itself.
Re: checkpointing the block chain
2010-08-16 - Link
对软件而言,没有办法自动知道一条链是否好于另一条,除非通过 the greatest proof-of-work ( There is no way for the software to automatically know if one chain is better than another except by the greatest proof-of-work )。 In the design it was necessary for it to switch to a longer chain no matter how far back it has to go.
综合整理自:
https://satoshi.nakamotoinstitute.org/quotes/proof-of-work/
参与讨论(0)