比特币P2P网络原理
发布时间:2024-06-28 10:52:49
比特币的P2P网络原理是指比特币系统中节点之间通过对等连接来进行通信和交易的工作方式。比特币并没有中心化的服务器或管理者,而是由广泛分布的节点共同维护整个网络的安全性和稳定性。在比特币网络中,每个参与者都可以成为一个节点,节点之间通过互联网相互连接,共同构成了一个去中心化的网络。比特币网络的节点分为全节点和轻节点两种,全节点会下载和存储整个比特币区块链的副本,而轻节点只存储自己相关的交易信息。
比特币的P2P网络原理可以简单描述为以下几个步骤:
1.节点发现:当一个节点加入比特币网络时,它会通过连接到已知的节点来发现更多的节点,这样逐步建立起整个网络的连接。
2.区块传播:当一个节点挖出一个新的区块时,它会将这个区块发送给邻近的节点,然后这些节点再将区块传播给它们的邻居节点,最终整个网络都会收到这个新的区块。
3.交易广播:比特币网络中的交易也是通过P2P网络进行广播的,当一个节点发送一笔交易时,它会将这笔交易传播给相邻的节点,然后逐渐传播到整个网络中。
4.区块确认:当节点收到新的区块或者交易时,会进行验证并将其加入自己的区块链中,然后再广播给其他节点。其他节点也会对接收到的区块和交易进行验证,确保网络中的数据一致性和安全性。
比特币的P2P网络原理使得整个系统具有去中心化、抗审查和防篡改的特性,任何节点都可以加入或离开网络,而不会对整个系统产生影响。同时,P2P网络也带来了一些挑战,比如网络延迟、数据同步和安全性等问题,但通过不断的优化和改进,比特币网络已经成为一个高效、安全和稳定的去中心化网络。
比特币工作在应用层,它的底层是一个P2P Overlay Network。
| 网络层 | 协议 | 
| Application Layer | BitCoin Block chain | 
| Network Layer | 
比特币的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。一个交易发布到比特币网络上,不一定所有的节点都要收到,而且不同节点收到交易的顺序也不一定是一样的。网络存在延迟,延迟可能还很长,有的节点也不一定按照比特币协议的要求把所有收到的交易进行转发,有的节点可能会把一些不合法的交易也进行转发。
最新专题
-  
          LEO币历史价格走势图 LEO币历史价格走势图LeoToken是一种区块链项目,致力于构建一个去中心化的金融生态系统。LeoToken项目的主要目标是提供支付、借贷、稳定币等金融服务,通过智能合约和区块链技术,实现金融服务的自动化和跨境支付的便捷性。LeoToken所处的赛道是金融科技领域,该领域利用区块链技术和数字货币创新金融服务模式,颠覆传统金融体系。通过区块链的去中心化特性和智能合约的自动化执行,LeoToken项目可以提供更高效、更安全的金融服务,同时降低成本和提升用户体验。本专题带您回顾LEO币历史价格走势图与LEO币历史最高价最低价,希望对您带来帮助。 
-  
          LINK币历史价格走势图 LINK币历史价格走势图Chainlink是一个区块链项目,旨在连接区块链智能合约与外部数据源和服务。它通过引入预言机(Oracle)的概念来解决智能合约无法直接访问外部数据的问题。预言机充当了区块链与外部世界沟通的桥梁,将外部数据传输到区块链上,为智能合约提供实时和准确的信息。Chainlink的预言机可以连接各种数据源,包括互联网API、传感器数据、天气信息等。通过这种方式,智能合约可以访问并利用这些外部数据,从而扩展了区块链应用的可能性。例如,基于天气数据的保险产品、基于运输数据的智能合约等都可以通过Chainlink的预言机实现。本期专题带您回顾LINK币历史价格走势图与LINK历史最高价最低价,希望对你带来帮助。 
-  
          DOT币历史价格走势图 DOT币历史价格走势图波卡(Polkadot)是一个由以太坊联合创始人之一加文·伍德(Gavin Wood)创建的区块链项目。波卡的目标是构建一个多链架构的区块链网络,旨在解决现有区块链网络的扩展性、互操作性和治理性等问题。波卡引入了一种创新的多链架构,通过主网络(Relay Chain)连接多条平行链(Parachains),每条平行链可以根据自身需求进行定制化,从而实现各种不同的功能和性能。这种架构有效地提高了整个网络的扩展性,使得系统能够更好地处理大量交易和数据。本期专题带大家回顾波卡DOT币历史价格走势图与DOT币历史最高价最低价,希望对您有帮助。 
-  
          BCH币历史价格走势图 BCH币历史价格走势图Bitcoin Cash (BCH)是比特币的一个硬分叉项目,旨在解决比特币网络拥堵和交易费用高涨的问题。它于2017年8月从比特币区块链中分叉出来,其首要目标是提高比特币的吞吐量,降低交易成本,并加速交易确认时间。Bitcoin Cash的支持者认为,通过增加区块大小限制,网络将能够处理更多交易,并提高整体的可扩展性。本文为您带来BCH币历史行情价格走势图以及BCH币历史最高价最低价,希望对您有所帮助。 
-  
          AVAX币历史价格走势图 AVAX币历史价格走势图Avalanche是一个开源的区块链平台,旨在解决现有区块链网络中的可伸缩性、安全性和去中心化之间的平衡问题。其采用了一种名为Avalanche Consensus的共识算法,该算法被认为是一种快速、高效、安全且具有高度去中心化的共识协议。本专题主要介绍AVAX币历年来的价格行情(最高价,最低价)及AVAX币历史行情价格走势图。 
-  
          OKB币历史价格走势图 OKB币历史价格走势图OKB币是OKEx交易所发行的代币,而OKEx是全球知名的加密货币交易平台。OKB币是基于以太坊区块链发行的代币,具有类似于数字货币的特性,可以在OKEx平台上用于支付交易手续费、参与平台治理和其他用途。OKB币在OKEx生态系统中扮演着重要的角色,拥有一定的使用场景和功能。 
-  
          BTG币最新价格,BTG币最新消息 BTG币最新价格,BTG币最新消息BTG全称BitcoinGold,也有人称之为BitcoinGPU,起源是一个由开发者组织发起的一个反对segwit2x的活动:“NO2X”。 BTG是对比特币区块链进行硬分叉得到的一种新的数字货币,其主要特点为: 类似于Bitcoin Cash,BTG也会添加SIGHASH_FORKED(一种硬分叉后的安全机制)。 
-  
          ROSE币最新价格,ROSE币最新消息 ROSE币最新价格,ROSE币最新消息Oasis Labs借助区块链技术构建的新型云计算平台不仅具备了可扩展性,还解决了传统云计算平台存在的隐私保护问题。通过实现分布式架构和数据加密,Oasis Labs为用户提供了更加安全和可靠的云计算服务,助力用户更好地管理和保护自己的数据。随着区块链技术不断发展和完善,相信Oasis Labs的新型云计算平台将在未来得到更广泛的应用和认可。 
 
 
 
          
 
         