比特币P2P网络原理

比特币的P2P网络原理是指比特币系统中节点之间通过对等连接来进行通信和交易的工作方式。比特币并没有中心化的服务器或管理者,而是由广泛分布的节点共同维护整个网络的安全性和稳定性。在比特币网络中,每个参与者都可以成为一个节点,节点之间通过互联网相互连接,共同构成了一个去中心化的网络。比特币网络的节点分为全节点和轻节点两种,全节点会下载和存储整个比特币区块链的副本,而轻节点只存储自己相关的交易信息。

欧易
欧易(OKX)

全球三大交易所之一,注册领50U数币盲盒,币圈常用的交易平台!

币安
币安(Binance)

币安交易所是世界领先的数字货币交易平台,注册领100U。



比特币的P2P网络原理可以简单描述为以下几个步骤:

1.节点发现:当一个节点加入比特币网络时,它会通过连接到已知的节点来发现更多的节点,这样逐步建立起整个网络的连接。

2.区块传播:当一个节点挖出一个新的区块时,它会将这个区块发送给邻近的节点,然后这些节点再将区块传播给它们的邻居节点,最终整个网络都会收到这个新的区块。

3.交易广播:比特币网络中的交易也是通过P2P网络进行广播的,当一个节点发送一笔交易时,它会将这笔交易传播给相邻的节点,然后逐渐传播到整个网络中。

4.区块确认:当节点收到新的区块或者交易时,会进行验证并将其加入自己的区块链中,然后再广播给其他节点。其他节点也会对接收到的区块和交易进行验证,确保网络中的数据一致性和安全性。

比特币的P2P网络原理使得整个系统具有去中心化、抗审查和防篡改的特性,任何节点都可以加入或离开网络,而不会对整个系统产生影响。同时,P2P网络也带来了一些挑战,比如网络延迟、数据同步和安全性等问题,但通过不断的优化和改进,比特币网络已经成为一个高效、安全和稳定的去中心化网络。

比特币工作在应用层,它的底层是一个P2P Overlay Network。

网络层

协议

Application Layer

BitCoin Block chain

Network Layer

P2P Overlay Network

比特币的P2P网络中,所有节点都是对等的。而其他的P2P网络中可能会存在超级节点(super node)、主节点(master node)。.

如果要加入这个网络,至少需要一个种子节点(seed node),这个种子节点会告诉你它知道的其他节点,节点之间通过TCP通信,这样有利于穿透防火墙。离开时不需要通知其他节点,只需要退出应用程序即可,别的节点没有监听到你的消息,过一段时间就会把你删掉。

比特币网络的设计原则是:简单、鲁棒,而不是高效(simple,robust,but not efficient)。

每个节点维护一个邻居节点集合,消息传播在网络中采用flooding(洪泛式)方式。节点第一次听到某个消息的时候,把它传播给其他的所有邻居节点。同时记录该消息在本节点上已经收到过,后面再收到该消息时就不需要再转发给其他节点了,避免消息在网络中无限传播。邻居节点的选取是随机的,没有考虑底层的拓扑结构。一个加利福尼亚的节点的邻居节点可能是位于阿根廷的,这样选取的好处是可以增强鲁棒性,但是会牺牲效率。

比特币系统中,每个节点要维护一个等待上链的交易的集合。节点第一次听到这个交易时,将这个交易写入这个集合中,并转发给邻居节点。转发的前提是这个交易是合法的:有合法的签名、以前没有被花过。

这里面会存在一个race candition(冲突竞态条件),可能会有两个有冲突的交易差不多同时被广播到网络上。例如A转账给B和A转账给C,两个交易花的同一个币。这两个交易被广播到网络上之后,因为系统中每个节点的位置不同,有的节点先收到A转给B的交易,有的先收到A转给C的交易。

先收到A转给B交易的节点,把A转给B的交易写入等待上链的交易集合,等再收到A转给C的交易时,就会认为这个交易是非法的,就不再管这个交易了。之后如果该节点听到新发布的区块中包含有A转给B的交易,就从自己的等待上链的交易集合中删除该交易。但是如果该节点听到新发布的区块中包含有A转给C的交易,那么也需要从自己的等待上链的交易集合中删除A转给B的交易,因为如果A转给C的交易写入区块链中,那么A转给B的交易就成了double spending非法交易,就也需要删除。

新发布的区块和新发布的交易在网络上的传播方式是类似的,每个节点除了要检查这个区块内容的合法性外,还需要检查这个区块是否在最长合法链上。

越大的区块在网络中传播速度越慢,比特币协议对区块的大小有个最大1 Mb的限制。因为比特币的这种网络模式非常耗费带宽,一个1 Mb的新发布区块可能需要几十秒才能传播给系统中的绝大多数节点。

比特币网络的传播属于best effort。一个交易发布到比特币网络上,不一定所有的节点都要收到,而且不同节点收到交易的顺序也不一定是一样的。网络存在延迟,延迟可能还很长,有的节点也不一定按照比特币协议的要求把所有收到的交易进行转发,有的节点可能会把一些不合法的交易也进行转发。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...