比特币的五大力量- #4 P2P 网络
在本章中,我们将继续我们的比特币世界之旅。我们将讨论推动比特币的第四种力量——它的点对点 ( P2P )网络。我们已经在前面的章节中介绍了密码学、采矿、区块链以及更多的特性。想知道所有这些特性是如何高效工作的吗?这一章将回答你所有关于 P2P 网络的问题。
本章将涵盖以下主题:
- P2P 网络简介
- 网络的节点
- P2P 网络的结构
P2P 网络简介
这些年来,网络变得相当集中,大型公司在电子商务、网络搜索、社交网络和许多其他领域拥有巨大的市场力量。除了市场力量,他们还控制着用户的私人数据,比如身份信息、信用卡信息、地址、联系方式等等。这是用户应该注意的一个非常重要的隐私问题。
分布式应用的网络架构有两种方法:
- P2P 模型
- 客户机-服务器模型
P2P 模式与客户端-服务器模式
P2P 和客户机-服务器模型是解决分布式应用程序的网络架构的两种不同方法。分布式应用程序是其组件位于不同联网计算机上的系统。这些计算机通过网络相互通信和协调,以便运行分布式应用程序。
客户机-服务器模型代表一种集中式体系结构,其中服务器计算机运行程序并与客户机计算机共享其资源。客户端不共享任何资源,而是向服务器发送内容、存储或处理请求:
客户机-服务器模式的例子包括电子邮件服务、网络打印和万维网。
另一方面,P2P 网络没有中央服务器,网络上的每台计算机都与其他计算机共享资源。这些资源包括处理能力、磁盘存储或网络带宽。对等体之间的交互是直接的,不需要中央服务器的协调。对等网络节点既是资源的消费者,也是资源的提供者,这与资源的消费和供应分开运行的客户端-服务器模型相反。P2P 网络的架构如下图所示:
P2P 系统随着 1999 年发布的文件共享应用程序 Napster 而流行起来。从那时起,这一概念已经从做类似事情的对等网络发展到拥有不同对等体的系统,这些对等体将独特的资源聚集在一起,以实现超越单个对等体能力的卓越结果。万维网最初的设想是接近 P2P 网络,假设网络的每个用户都是活跃的编辑者和贡献者,创建和链接内容以形成一个链接的互联网络,但它随后演变为由客户机-服务器模型主导。区块链技术的出现带来了 Web 3.0 的愿景,它应该基于更多的 P2P 交互和分散服务。
金融交易
给你一个棘手的问题。现在的金融交易是什么?
这个问题的答案是,它们是通过通信网络传输的消息。这是所有银行转账和信用卡支付的方式。事实上,银行转账通常被称为电汇。你可能一直想知道这个术语从何而来。有趣的是,它来自电报网络,这可能是最古老的远程通信基础设施。他们通过电线传输文本信息。这是西联汇款在 1872 年开始使用的传送支付信息的方法。在目的地收到带有付款指示的消息后,当地办事处向指定的人付款。这就是汇钱的概念是如何开始的。
直到今天,这个过程已经经历了多个步骤,但其核心仍然是基于传递消息。金融网络本质上是通信网络。
比特币有何不同
现在,你可能会想,与这样的金融网络相比,比特币网络有什么不同和独特之处?
主要区别在于,比特币的结构是互联网之上的 P2P 网络。控制的去中心化是一个核心设计原则,它由一个平面 P2P 网络架构来实现和维护。
比特币 P2P 网络是运行比特币协议的节点或对等点的集合。比特币协议是一个类似于互联网协议 ( IP )的软件工程。现在每个人都听说过 IP 地址,它是用来在互联网上交流的。就像万维网及其网站、域名和其他应用程序一样,比特币网络是运行在互联网之上的一层。
比特币和其他区块链公共网络协议可以绕过网络。事实上,在某些领域,他们可以提供一个可行的和优越的选择。除了支付,还有其他改变游戏规则的区块链应用程序,我们将在稍后的第 11 章、中详细介绍,重点关注特定的行业和用例。以下是比特币可能成为可行替代品的一些领域:
- 电子商务
- 网络搜索
- 社交网络
- 身份认证
比特币网络的节点
现在,让我们来看看比特币网络上的参与者执行的各种功能。这些网络对等体(网络中的参与者)被称为节点。所有节点都可以验证事务,通过网络发送自己的事务,并保留区块链数据库的完整或部分副本。
除了前面提到的功能,网络上的节点有时也会涉及到挖掘功能,我们在第六章、比特币的五种力量——# 3 共识算法中讨论过。这包括计算工作证明算法和创建新块。
并非比特币网络上的所有节点都进行挖掘,因为这需要大量的资源和专门的设备。
节点类型
区分保留区块链完整副本的节点(称为完整节点)和仅保留部分副本的节点(称为轻量级节点或简化支付验证 ( SPV )节点非常重要。
完整节点
完全节点可以自主验证交易,无需外部参考。他们使用自下而上的验证方法。这意味着他们可以追踪每一枚硬币,从它诞生的那一刻起,一直到它参与的所有交易。这样做时,他们从起源块开始,沿着块链向上到达需要验证的当前事务。使用下图可以更好地显示这一点:
这样,他们知道哪些硬币被花掉了,什么时候花掉的,以及谁是每枚硬币的合法所有者。维护一个完整的节点在存储容量方面有其自身的资源要求,因为比特币区块链的大小目前为 160 千兆字节。
SPV 节点
或者,节点可以仅存储区块链的一部分,并且仍然能够验证事务。这样的节点被称为轻量级节点,它们使用 SPV。这是一种自上而下的方法。
SPV 节点仅保留所有块的块头,这仅占完整区块链所需存储空间的一小部分。为了验证一个事务,它们检查块以找出特定事务属于哪里,然后确保在该块的顶部至少有六个块。通过这种方式,轻量级节点依靠完整节点所做的工作来证明正在被验证的事务是有序的,并且没有被重复花费。轻量级节点通过检查事务所属的块链中的工作证明来有效地验证事务。很多比特币钱包,尤其是智能手机上的,都是轻量级节点。可以使用下图进一步说明该过程:
比特币 P2P 网络
比特币 P2P 网络包含遍布互联网的大量节点,这些节点协同工作。比特币网络有两个主要部分:
- 主网
- 测试网
主网
mainnet 是托管在互联网上的核心比特币网络,所有现实生活中的交易都在这里进行。我们在互联网上看到的所有比特币交易都发生在主网上。
mainnet 包含全球比特币交易中使用的所有重要信息。所以,你可能会问自己,如果有新的升级会怎样?会对比特币网络产生怎样的影响?这个问题的解决方案是 testnet。
测试网
除了名为 mainnet 的主要比特币网络,还有一个测试网,在那里测试新项目和协议功能。testnet 是用于测试和研究的替代区块链。testnet 是一项安全措施,旨在确保主比特币网络在实验过程中不会受到危害。在这个网络中,我们使用 Testnet 硬币。
测试网硬币是独立的,不同于真正的 mainnet 比特币。它们不应该有任何价值。这使得应用程序开发人员或测试人员可以进行实验,而不必使用真正的比特币或让主要的区块链面临软件故障的风险。
附加实体
除了主比特币网络,还有其他实体运行全节点与主网接口。这些实体向网络提供特定的服务。以下是使用的一些实体:
- 挖掘池:挖掘池可以构建为一个运行完整节点的服务器,许多其他计算机将连接到它并运行工作证明计算,但不需要存储完整的区块链。
- 交易所:交易所是比特币和其他加密货币日常交易的场所。
- 区块链探索者:区块链探索者基本上是区块链交易的搜索引擎。
摘要
在本章中,我们了解到比特币是第一个用于支付和价值转移的去中心化 P2P 网络。该系统运行平稳高效,无需任何第三方干预。我们了解了控制的分散化,比特币网络中不同类型的节点,以及比特币网络的结构。
在下一章,我们将了解支持比特币的软件代码库。