首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

比特币白皮书解读——网络

这是关于比特币白皮书(Bitcoin: A Peer-to-Peer Electronic Cash System)的系列文章之一。文章主要结构:原文——翻译——解说。原文直接引用白皮书中的内容,方便大家直接查阅,大家也可通过地址 https://bitcoin.org/bitcoin.pdf 来看原文。翻译是我根据原文进行的翻译,不完全是直译,部分内容会通过我的理解进行更通俗的阐述,让大家更容易理解。解说是对本章节内容的解说。文中的翻译及解说若存在异议,欢迎交流,谢谢!

原文

5. Network

The steps to run thenetwork are as follows:

1) New transactions are broadcast to all nodes.

2) Each node collects new transactions into a block.

3) Each node works on finding a difficult proof-of-work for its block.

4) When a node finds a proof-of-work, it broadcasts the block to all nodes.

5) Nodes accept the block only if all transactions in it are valid and not alreadyspent.

6) Nodes express their acceptance of the block by working on creating the nextblock in the chain, using the hash of the accepted block as the previous hash.

Nodes alwaysconsider the longest chain to be the correct one and will keep working onextending it. If two nodes broadcast different versions of the next blocksimultaneously, some nodes may receive one or the other first. In that case,they work on the first one they received, but save the other branch in case itbecomes longer. The tie will be broken when the next proofof-work is found andone branch becomes longer; the nodes that were working on the other branch willthen switch to the longer one.

New transactionbroadcasts do not necessarily need to reach all nodes. As long as they reachmany nodes, they will get into a block before long. Block broadcasts are alsotolerant of dropped messages. If a node does not receive a block, it willrequest it when it receives the next block and realizes it missed one.

翻译

5.网络

运行此货币网络的步骤如下:

广播新交易到所有的节点。

每个节点将收集到的新的交易整理到一个区块中。

每个节点都为它的区块找一个有一定难度的工作量证明而工作。

当一个节点找到一个工作量证明,它会向其他所有节点广播这个区块。

如果所有在区块中的交易都是有效的,并且还没有被花费掉,则节点们接受此区块。

通过在链条上使用此区块的哈希值来作为下一个区块的一部分来创建下一个区块,从而表示节点承认了此区块。

节点总是认为最长的链条就是正确的链条,并且会持续在此链条上进行扩展。如果有两个节点同时广播了两个不同版本的区块,那么对于不同的节点,首先收到的区块可能会不同。在这种情况下,它们会在最先收到的区块上进行工作,但是会同时保存随后收到的分支,以防此分支变得更长。当下一个工作量证明被找到之后,其中一条分支会变得更长,那么局面就会被打破。无论在哪条分支上工作的节点,都会切换到较长的那个链条上去工作。

新的交易并不需要广播到每一个节点去。只要它们到达足够多的节点,那么不久之后它们将会被整理到一个区块中。区块的广播也同样容忍丢信息的情况。如果某个区块没有被某个节点接收到,那么这个节点会在接收到下一个区块的时候意识到它漏了前面的区块,它就会主动请求该区块。

解说

这一节的内容相对比较简单,主要是讲这个比特币的网络是怎么传播的,交易怎么变成区块,区块怎么链接成区块链,有些节点掉队了怎么办之类的问题。很多细节前面都提到过了,我们这里就简单总结一下就好了:

节点间通过广播形式去发送交易到各个不同的节点,各个节点交易后会整理到一个区块中。

为区块找到一个工作量证明之后,也就是找到一个符合指定区间(前面n个0)的hash值。就会广播该区块。其他节点收到区块验证有效后,就会接受此区块。

节点承认最长的区块链是可信任的链条,并会在此基础上去添加区块进行扩展。

如果两个节点同时广播了两个区块,那么其他节点会在首先收到的区块上工作,但是同时保留另一个区块,作为一个分支。

在一个节点保留两个分支的时候,当下一个区块到来,无论它原先在哪个分支上工作,都会切换到新区块到来的分支上继续工作,因为此时新区快所在的分支更长。

无论是交易、或者区块,都不必一定到达到所有的节点。只要交易到达足够多的节点,它就会被整理到区块中并广播出去。如果节点漏收了一个区块,它也会在下一个区块到来的时候知道它自己漏收了,从而重新请求。

- 比特币白皮书解读系列 -

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180408G05KCX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券