10 交易同步
中本聪在本章中解释了如何处理当一位矿工收到了两条冲突交易的问题。矿工会把收到的第一笔交易包含在下一个工作量证明中。如果想了解需要更多的信息,请参阅第2章。
回复:比特币:点对点的电子现金支付
中本聪,星期日,2008年11月9日,11:14:17 UTC-8
詹姆斯_A.唐纳德写道:
核心问题是许多实体都持有完整和一致的信息,那么谁拥有哪些比特币?
但是保持一致性很麻烦。当有人将一笔交易报告给一个维护者,而另一个人将另一笔交易发给另一个维护者时,我不太清楚会发生什么。在交易被合并到包含所有过往交易的全局共享视图之前,没人知道该交易是否有效。而且没人知道全局共享视图是否真的是全局共享,直到一段时间之后许多新交易加入进来才能确定。
您解释过如何处理这个问题了吗?还是说您确信这事能办到,只是细节上有点模糊?后面这个念头只是在我脑子里一闪而过。
工作量证明链是解决同步问题的办法,也是在不必所有人都可信的情况下就可以确信全局共享视图的方法。
交易信息会快速传播至整个网络,因此如果同一笔交易的两个版本几乎同时发出,先发出去的那条就有很大优势首先抵达更多的节点。节点只会接纳先到达的第一条,而拒绝后到达的第二条,因此发出较早的交易会有较多的节点致力于将其包含在下一个工作量证明中。实际上,每个节点通过把交易包含在自己的工作量证明成果中,就是在为自己首先看到的交易投赞成票。
如果交易确实在同一时间到达,并且正好还出现了一个分叉,那就只好依据谁有运气先完成工作量证明来决定哪条有效了。
当节点找到工作量证明,新的区块传播至全网,所有节点都将其加入区块链并开始在此区块后寻找下一个区块。任何拥有其他交易的节点都会放弃将该笔交易包含在自己的区块,因为根据刚刚收到的新区块,这笔交易已经无效了。
工作量证明链本身就是它来自于全局共享视图的证据。只有网络的大多数节点配合才可能有足够的计算能力产生如此困难的工作量证明链。任何用户在收到工作量证明链的时候都能看到网络的大多数节点到底批准了什么。交易一旦完成哈希值计算加入到了区块链,并在其后有了几条新交易加持,它就牢牢地刻在了全球区块链的历史上。
中本聪
密码学邮件组
http://btc.mom/8780/