主页 > imtoken官网钱包 > Long long Long long 杀伤力(精读比特币白皮书5)

Long long Long long 杀伤力(精读比特币白皮书5)

imtoken官网钱包 2023-10-26 05:08:49

继续用通俗易懂的语言精读比特币白皮书,今天带来第五期。 白皮书这一部分的内容主要是关于比特币网络广播的记账原理。 P2P网络之前有文章详细讲解。 本文用通俗易懂的语言来说明。 题目不适合熟悉比特币原理的同学

本题主要是通过仔细分析中本聪的白皮书,结合自己的理解,让大家快速上手。 方框内黑色字体为白皮书原文翻译,橙色注释段为本人理解。 我希望它可以帮助你。 我一直认为每个研究区块链的人都应该仔细阅读比特币白皮书。 这是第五期,讲比特币网络:

上一章提到,为了让大家参与交易的验证、验证和记录,交易需要广播,但是广播之后,如何实现内容的同步和统一,正如白皮书中所述:

5.网络

比特币挖矿功能实现_比特币全网广播实现_火币网比特币收款地址

运行网络的步骤如下:

1)新交易广播到全网;

2)每个节点将接收到的交易信息合并到一个区块中;

3)每个节点都试图在自己的区块中找到一个具有足够难度的工作量证明;

比特币全网广播实现_火币网比特币收款地址_比特币挖矿功能实现

4)当一个节点找到一个工作量证明时,它向全网广播;

5)当且仅当区块中包含的所有交易都有效且之前不存在,其他节点同意该区块的有效性;

6) 其他节点表示接受该块,接受的方式是跟随块的末尾创建一个新的块来扩展链,接受块的随机哈希值被认为是一个随机哈希值在新区之前。

节点总是将最长的链视为正确的链,并继续工作并扩展它。 如果两个节点同时广播不同版本的新区块,其他节点收到区块的时间就会有差异。 在这种情况下,他们将在最先收到的区块的基础上工作,但也会保留另一条链,以防后者成为最长的链。 僵局(tie)的打破会等到找到下一个工作量证明,并且其中一条链被确认为较长的那条,那么工作在另一条支链上的节点就会切换阵营,开始在较长的那条链上工作链。 在链上工作。 所谓“新交易广播”,其实并不需要到达所有节点。 只要交易信息能够到达足够多的节点,它们很快就会被整合成一个区块。 块广播对丢弃的信息具有容错性。 如果一个节点没有收到一个特定的块,该节点将意识到它丢失了一个块并且可以请求自己下载该块。

火币网比特币收款地址_比特币全网广播实现_比特币挖矿功能实现

注意:本节需要注意的是,白皮书并没有具体说明交易是如何广播到全网的。 根据查到的资料,比特币采用类似于DHT网络的P2P网络协议进行去中心化网络连接。 该协议在比特币出现之前就已经被广泛使用。 Kad、eMule、BT等都使用类似的协议。 这可能是中本聪认为这不是比特币的主要特征,并没有在白皮书中解释的原因(p2p网络可以参考本文后面的其他文章)

比特节点通常采用TCP协议,使用8333端口(比特币通常使用该端口号,除8333端口外还可以指定其他端口)与已知对等节点建立连接。 你可以理解为有一种机制可以让所有运行比特币代码的节点都能接收到交易广播,而我们需要关心的是收到交易后要做什么。 有很多问题需要解决。

首先,“每个节点都会将接收到的交易信息合并到一个区块中”,这句话一定要理解,这些交易是加密的,前面说过,节点无法更改交易内容,这保证了所有接收到的数据是一致的。

第二个问题,谁有权记录这些数据? 准确的说,是一组与时间序列相关的交易数据。 这里使用的是上一篇文章提到的POW工作量证明。 尝试在自己的区块中找到一个足够难度的工作量证明”,只有找到包含多个0的HASH值节点的“幸运”节点才能生成这个区块(矿工这样做),然后你就可以广播这个区块。

火币网比特币收款地址_比特币挖矿功能实现_比特币全网广播实现

问题又来了比特币全网广播实现,万一有两个节点“同时”,运气好,都找到了,从时间原理上,不可能“同时”存在,总有一个序列,哪怕是一个gap of milliseconds or 网络广播造成的延迟是一个哲学问题“你不能同时踏入两条相同的河流”,节点一旦收到这个区块的广播,就会验证“当且仅当它包含在该区块中的所有交易均有效且之前不存在,其他节点同意该区块的有效性;”验证通过后,本节点将不再接受来自其他节点的同一个区块。 需要注意的是,与此同时,该节点将终止其正在进行的包含同一交易的区块的计算,也就是说,它不会做无用功,这些节点将根据该区块开始新的交易区块计算, 如此往复形成链条。

那么问题又来了,因为网络的复杂性,同时总是有一群节点互相接收交易区块,记录在同一条链上。 其实原理很简单,这些相同的链会被保留(fork),“僵局的打破(tie)要等下一个工作量证明被发现”,运行一段时间后,总会有一条时序最长的区块链(还记得前面说的时序相关性),那么最后一条长链就是最后被认可的链。 比特币区块链在分叉、放弃、分叉、合并的过程中,最长的链最终被系统认可。 区块链。 多么像蛇游戏,看最后谁最长。

其实问题又来了。 如果有大量的节点(比如矿池),他们想要与众不同。 修改代码后,他们想创建自己的最长链。 这是比特币中的 51。 %攻击。

51%的攻击是理论值,我认为没必要去控制51%的算力,除非剩下的49%保持绝对正义,只要邪恶节点大于正义节点,就是说,在一个假设的环境中,大家组团作恶,形成恶团伙。 其中一组可以控制最多的计算能力。 比如A组控制30%,B组控制25%,C组控制25%,正义控制20%。 最终,A组将控制胜负完全基于技术理论。 这种情况一旦形成,实际上就是硬分叉,整个系统分裂形成三个新的币种,ABC。 那么按照经济理论,最终整体价值的下降对任何人都没有好处。 之所以说这些,是想让初学者明白51%的攻击是一个理论值。

火币网比特币收款地址_比特币挖矿功能实现_比特币全网广播实现

关于这篇文章

其实,看完这篇文章,你就会知道区块链分叉的原因和原理,它并没有你想象的那么绝对安全可靠; 您也可以分享这篇文章让更多人了解这方面的知识比特币全网广播实现,您的支持和鼓励是我最大的动力,长按二维码关注

火币网比特币收款地址_比特币挖矿功能实现_比特币全网广播实现

长按关注探索未来

相关阅读