BIU

BlockChain is unite.区块世界,共识让我们链接彼此

B-0017(BIU64)

《比特币白皮书》

作者:中本聪丨版源:巴比特译本

章节5. 网络

这部分把整个比特币网络的运行交易流程进行了关键概述:

打开网易新闻 查看精彩图片

所以我们看,密码学中的拜占庭将军问题(容错,实际上是对分布式系统共识问题的探究)就被工作量证明所解决了。简单讲,我们所面临的问题是在群体中实现共识。首先我们必须假设(也必然会存在)存在会发布虚假错误或者恶意捣乱的个体,因此当信息传播的过程中,他们可能在任意环节进行篡改或干脆串联起来欺骗其他的正常个体(信道安全和数据传输安全则为两军问题);况且如果各节点地位平等,则无法确定负责信息收集与分发的节点;其次在群体中,我们的地位平等,如果由固定个体进行信息记录和发布,就会导致中心化。传统的解决方案都绕不开一个拥有特殊地位的中心点来负责对整体网络的维护和管理。这样提高了效率,但无疑将其他参与节点的地位降低,为产生独裁、欺骗等意外状况提供了孳生土壤。

因此,比特币网络选择任何个体都有权利争夺记账权,大家一起计算系统给出的题目。首先接收上一次的信息广播(由上一个周期的胜出者发布),然后开始算题,如果某个节点算出了该题,并且其记录的转账信息都是之前没有过且有效的(避免了提前算题,伪造证明,相当于每过十分钟大家回到同一起跑线),就可以广播他的记账信息(打包并广播)。随后在其他节点核验后(传统核验技术耗时耗力,但利用梅克尔树Merkle trees和哈希、区块头等技术可以做到快速高效检索),就以上一次记账者所广播区块的尾端为下一轮题目的起始。

所以,大概来说,简单理解来说是这样什的:

打开网易新闻 查看精彩图片

此外很有趣的一点是,在以太坊中的代币(Token)发行,其实最开始并不是被直接用于发行资产的,而是由大神提出了一个协议(目前的常用代币协议为ERC20,此外还有ERC721即唯一性的虚拟物品,可以理解为有指纹的物品,等很多协议,用于不同作用),大家都可以发行代币,而代币的转账交易被记录于ETH转账的留言备注里,因此实际上每笔任何种类的Token(基于ETH)转账,都是一次ETH转账。

以太坊网络中无论是ERC20还是最近大火的ERC721协议,最初都是由社区成员提出并运行,最终经过检验得到共识认可和社区审核,继而成为所有以太坊节点(认可并同步节点)的共同协议。

所以说,大家地位平等都有权利提出规则,并在得到审核与规模认可后便成为共同遵守的规则。这TMD才是区块链啊!!!!

此外,对于同时接收到不同版本新区块的情况,中本聪设定:

如果有两个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差别。当此情形,他们将在率先收到的区块基础上进行工作,但也会保留另外一个链条,以防后者变成最长的链条。该僵局(tie)的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。

这为整个网络系统提升了容错性能(鲁棒性提升),即在网络故障或者部分节点故障异常的情况下,我们始终保有选择权,也同时切断了作恶者的获利渠道,非正常情况下即使能使部分节点异常,但最终整体网络仍然会保持在最长的链上运行。

因此我们在交易所充值币种后,往往会有一个确认数来保证交易的真实有效,如果某一笔交易所处的块在发布以后,接连续(是的,就是续..)上了数个块,我们其实就可以认为这是一条最长的链,也即最真实安全的。

这个等待时长与整个网络的区块时间、运行负荷(待打包交易数)、区块大小、网络覆盖与参与节点数量、算力分布、交易所安全要求等都有关系。

但其实我们可以认为,在发展到今天的比特币网络中,这一确认数的存在已并非完全必要,即使需要,2-3个确认就完全足矣,所以下次碰到需要十几个确认的交易所,我们就可以呵呵了。(仅限比特或以太等广泛应用主网,某些算力较低覆盖范围小的币种,发动攻击还是蛮轻松的,比如某CH,笑而不语)

你们的留言与点赞是我们持续更新最重要的鼓励

BIU区块营想和Biuers一起成长
新世界,我们来啦~~
BIU!

打开网易新闻 查看精彩图片

微社群搜索“BIU-64”或“BIU区块营”并关注后,点击“侃营”即可加入