原始文献 / 邮件 / Bitcoin P2P e-cash paper
Bitcoin P2P e-cash paper
Cryptography Mailing List · 2008-11-09 03:09:49 UTC
James A. Donald 写道:
> 核心概念是:众多实体各自维护完整且一致的、关于谁拥有哪枚比特币的信息。
>
> 但保持一致性很棘手。我不清楚的是:当有人向一个维护者上报一笔交易,另一个人向另一个维护者传送另一笔交易时,会发生什么。在一笔交易被纳入所有历史交易的全局共享视图之前,无法知道它是有效的;而在一段时间过去、许多新交易到来之前,没人能知道所有历史交易的全局共享视图确实是全局共享的。
>
> 您解释过如何做到这一点、只是我没听进去,还是您确信能做到、但细节上有点含糊?
工作量证明链是同步问题的解决方案,也是无需信任任何人就能知晓全局共享视图是什么的方案。
一笔交易会在网络中快速传播,因此如果同一笔交易的两个版本在接近同一时间上报,先行的那个在更早到达更多节点方面将有很大优势。节点只接受它看到的第一个,拒绝后来到达的第二个,所以更早的交易会有更多节点努力将其纳入下一个工作量证明。实际上,每个节点通过把自己先看到的交易纳入工作量证明计算,为自己的观点投票。
如果两笔交易确实在完全同一时间到来且势均力敌,那就看哪一个先进入工作量证明,以此决定哪笔有效。
当一个节点找到工作量证明时,新区块会在网络中传播,所有人都把它加到链上,并开始在它之后挖下一个区块。任何持有另一笔交易的节点都会停止试图把它纳入区块,因为根据已被接受的链,它现在已经无效。
工作量证明链本身就是它来自全局共享视图的不证自明的证据。只有全网大多数节点合在一起才有足够的 CPU 算力生成如此困难的工作量证明链。任何用户收到工作量证明链后,都能看到网络大多数批准了什么。一旦一笔交易被哈希进链上靠后几环的某一环中,它就被牢牢地刻进了全局历史。
Satoshi Nakamoto
---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo at metzdowd.com
英文原文
James A. Donald wrote:
> The core concept is that lots of entities keep complete and consistent
> information as to who owns which bitcoins.
>
> But maintaining consistency is tricky. It is not clear to me what
> happens when someone reports one transaction to one maintainer, and
> someone else transports another transaction to another maintainer. The
> transaction cannot be known to be valid until it has been incorporated
> into a globally shared view of all past transactions, and no one can
> know that a globally shared view of all past transactions is globally
> shared until after some time has passed, and after many new
> transactions have arrived.
>
> Did you explain how to do this, and it just passed over my head, or
> were you confident it could be done, and a bit vague as to the details?
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.
A transaction will quickly propagate throughout the network, so if two versions of the same transaction were reported at close to the same time, the one with the head start would have a big advantage in reaching many more nodes first. Nodes will only accept the first one they see, refusing the second one to arrive, so the earlier transaction would have many more nodes working on incorporating it into the next proof-of-work. In effect, each node votes for its viewpoint of which transaction it saw first by including it in its proof-of-work effort.
If the transactions did come at exactly the same time and there was an even split, it's a toss up based on which gets into a proof-of-work first, and that decides which is valid.
When a node finds a proof-of-work, the new block is propagated throughout the network and everyone adds it to the chain and starts working on the next block after it. Any nodes that had the other transaction will stop trying to include it in a block, since it's now invalid according to the accepted chain.
The proof-of-work chain is itself self-evident proof that it came from the globally shared view. Only the majority of the network together has enough CPU power to generate such a difficult chain of proof-of-work. Any user, upon receiving the proof-of-work chain, can see what the majority of the network has approved. 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.
Satoshi Nakamoto
---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo at metzdowd.com
