比特币:点对点电子现金论文
原始发布页
打开来源页面查看 1 个交叉存档
James A. Donald 写道:
核心概念是,许多实体都保存着关于谁拥有哪些比特币的完整且一致的信息。
但保持一致很棘手。当某人向一个维护者报告一笔交易,而另一个人把另一笔交易传给另一个维护者时,会发生什么,我并不清楚。一笔交易在被纳入所有过去交易的全球共享视图之前,无法确定是否有效;而在经过一段时间、许多新交易到达之前,也没人能知道所有过去交易的全球共享视图已经为全球所共享。
你是否已经解释过如何做到这一点,只是我没看懂;还是说你确信这可以做到,只是对细节说得有些含糊?
工作量证明链解决了同步问题,也解决了无需信任任何人即可知道全球共享视图是什么的问题。
一笔交易会很快传播到整个网络,因此,如果同一笔交易的两个版本几乎同时被报告,抢先一步的那个版本会占据巨大优势,率先到达多得多的节点。节点只会接受自己看到的第一个版本,拒绝随后到达的第二个版本,因此会有多得多的节点致力于把较早的交易纳入下一项工作量证明。实际上,每个节点都通过把自己最先看到的交易纳入其工作量证明工作,来为自己关于哪笔交易最先出现的看法投票。
如果这些交易确实在完全相同的时刻到达,支持者恰好各占一半,那么结果就取决于哪一个先被纳入一项工作量证明,而这会决定哪一个有效。
当一个节点找到工作量证明时,新区块会传播到整个网络,所有人都会把它加入链中,并开始为它之后的下一个区块工作。任何持有另一笔交易的节点都会停止尝试把它纳入区块,因为按照已被接受的链,它现在已经无效。
工作量证明链本身就是一目了然的证据,表明它来自全球共享视图。只有网络中的多数共同协作,才拥有足够的 CPU 算力来生成这样一条难度如此之高的工作量证明链。任何用户收到工作量证明链后,都能看出网络中的多数批准了什么。一旦一笔交易被哈希进链上向前数几个链节中的某个链节,它就会被牢牢铭刻在全局历史中。
Satoshi Nakamoto
英文原文
展开英文原文
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