当前位置 : 主页 > 编程语言 > 其它开发 >

【区块链与隐私保护从入门到精通系列教程】第四篇 区块链网络通信

来源:互联网 收集:自由互联 发布时间:2022-07-12
4. 区块链网络通信 当我们开始接触区块链时,总能听到这样一种说法:区块链技术集成了P2P协议。所以要想真正搞懂区块链的内部原理和技术细节,需要我们先深入理解区块链网络层中
4. 区块链网络通信

当我们开始接触区块链时,总能听到这样一种说法:区块链技术集成了P2P协议。所以要想真正搞懂区块链的内部原理和技术细节,需要我们先深入理解区块链网络层中的一个最主要的概念,P2P。

4.1 P2P概述

P2P即Peer-to-Peer,peer在英文中有“对等者,同龄人,同辈”的意思,因此从字面上,P2P即指对等网络(Peer-to-Peer network)或对等计算(Peer-to-Peer computing)。有些说法也将P2P称之为“点对点”或“端对端”,学术界则统一称为对等网络或对等计算。在罗杰文《Peer-To-Peer综述》中定义了P2P:网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者(Server),又是资源、服务和内容的获取者(Client)。

简单来说,P2P网络就是一种分布式网络,多个计算机或节点共同组成一个网络,不需要中间服务器进行协调。

既然不需要中间服务器,P2P就打破了传统的C/S模式(客户机/服务器模式),在网络中各个节点的地位都是对等的。

4.2 P2P网络的特点

总结一下P2P网络的特点,通过对特点的深入理解,可以方便我们更加容易地理解什么是P2P。

  • 非中心化:网络中的资源和服务都分布在所有节点中,信息的传输和服务的实现都直接在节点间进行,无需中间环节和服务器的介入。提高了网络的可扩展性和健壮性。

  • 可扩展性:随着用户的加入,虽然服务的需求增加了,但是系统整体的资源和服务能力也在同步增加,所以可以满足用户的需要,理论上可扩展性可以认为是无限的。

  • 健壮性:由于服务是分布在各个节点之间进行的,部分节点或网络遭到攻击对其他部分的影响很小。P2P网络是自组织建立的,允许节点自由加入或离开。

  • 高性价比:P2P架构可以有效地利用互联网中散步的大量普通结点,将计算任务或存储资料分布到所有节点上,利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。

  • 隐私保护:由于信息在各节点之间传输,无需经过某个集中环节,用户的隐私信息被窃听和泄露的可能性大大缩小。

  • 负载均衡:每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好地实现了整个网络的负载均衡。

目前,P2P被很好地应用在文件下载和在线视频等领域。

4.3 P2P网络的不足

任何一项技术既然有足够的优势,必然也会存在一些不足。

  • 首先是影响用户计算机的性能:对等网络中的计算机需要同时承担服务器与工作站两方面的任务,这就使原先的单用户计算机被当作多用户计算机来使用。在进行大批量的数据交换时,网络的性能会受到较大的影响。

  • 网络安全性较差:在对等网络中,资源分散地位于整个网络之中,被若干用户所管理着,无法保证所有的用户都可以保护好各自的资源。另外对等网络中用户账号与密码的管理也是个重要问题,一个用户要记忆多套账号与密码才可以访问不同计算机中的资源。

  • 备份、恢复资源困难:对等网络中的资源较为分散,对所有计算机中的资源进行备份与恢复都是较为复杂的。由于上述特点,对等网络适用于用户少、规模小及安全性能要求较低的场合。

4.4 P2P网络的主要模式
  • 集中目录模式

集中目录式的P2P模式也称为结构化的P2P模式。在这种模式中,通过设置一个中心服务器来负责记录和管理所有结点的共享信息资源。每个对等结点通过查询该服务器来了解对等网络中哪一个结点拥有自己所需要的共享信息资源,查找到以后,获取其主机地址,然后进一步向该主机请求自己所需要的信息资源,最后由该主机将其共享信息复制并发送给请求的主机集中目录式P2P网络。

  • 非集中目录模式

非集中目录的P2P模式也称为纯P2P模式。在非集中式的P2P模式中,对等网络不需要设置一个中心服务器来负责记录和管理所有结点的共享信息资源。任何一个结点要获取某个共享信息资源都是首先询问其相邻结点是否有该资源,如果某个相邻结点没有,则进一步向它的相邻结点询问(询问报文中必须包括初始请求结点的地址),直到具有该信息资源的结点接收到询问请求,那么就由这个结点向最初的请求结点进行肯定应答(同时指明自己的地址)。最后,由初始请求结点向这个结点提出资源请求,这个结点就将其共享信息复制并发送给初始请求结点。

4.5 P2P网络的拓扑结构
  • 中心化拓扑

中心化拓扑最大的优点是维护简单发现效率高。由于资源的发现依赖中心化的目录系统,发现算法灵活高效并能够实现复杂查询。最大的问题与传统客户机/服务器结构类似,容易造成单点故障,访问的“热点”现象和法律等相关问题,这是第一代P2P网络采用的结构模式,属于集中目录模式(或结构化模式)。典型的有MP3共享软件Napster。

Napster通过一个中央服务器保存所有Napster用户上传的音乐文件索引和存放位置的信息。当某个用户需要某个音乐文件时,首先连接到Napster服务器,在服务器进行检索,并由服务器返回存有该文件的用户信息;再由请求者直接连到文件的所有者传输文件。

这种对等网络模型存在很多问题,主要表现为:

(1)中央服务器的瘫痪容易导致整个网络的崩溃,可靠性和安全性较低。

(2)随着网络规模的扩大,对中央索引服务器进行维护和更新的费用将急剧增加,所需成本过高。

(3)中央服务器的存在引起共享资源在版权问题上的纠纷,并因此被攻击为非纯粹意义上的P2P网络模型。对小型网络而言,集中目录式模型在管理和控制方面占一定优势。但鉴于其存在的种种缺陷,该模型并不适合大型网络应用。

  • 全分布非结构化网络

全分布非结构化网络在面对网络的动态变化时有较好的容错能力,因此具有较好的可用性。同时可以支持复杂查询,如带有规则表达式的多关键词查询,模糊查询等,最典型的案例是Gnutella。

Gnutella是一个P2P文件共享系统,它和Napster最大的区别在于Gnutella是纯粹的P2P系统,没有索引服务器,它采用了基于完全随机图的洪泛(Flooding)发现和随机转发机制。为了控制搜索消息的传输,通过TTL的减值来实现。

在Gnutella分布式对等网络模型中,每一个联网计算机在功能上都是对等的,既是客户机同时又是服务器,所以被称为对等机。

随着联网节点的不断增多,网络规模不断扩大,通过这种洪泛方式定位对等点的方法将造成网络流量急剧增加,从而导致网络中部分低带宽节点因网络资源过载而失效。所以在初期的Gnutella网络中,存在比较严重的分区,断链现象。也就是说,一个查询访问只能在网络的很小一部分进行,因此网络的可扩展性不好。所以,解决Gnutella网络的可扩展性对该网络的进一步发展至关重要。

由于没有确定拓扑结构的支持,非结构化网络无法保证资源发现的效率。即使需要查找的目的结点存在发现也有可能失败。由于采用TTL、洪泛(Flooding)、随机漫步或有选择转发算法,因此直径不可控,可扩展性较差。

因此发现的准确性和可扩展性是非结构化网络面临的两个重要问题。目前对此类结构的研究主要集中于改进发现算法和复制策略以提高发现的准确率和性能。

4.6 P2P的主要应用
  • 文件内容共享和下载,用户可以直接从任意一台安装同类软件的PC上下载或上传文件,并检索、复制共享的文件。

  • 计算能力和存储共享,可用于在网络上将存储对象分散存储,或利用其空闲时间进行协同计算。

  • 基于P2P技术的协同处理与服务共享平台,可用于企业管理。

  • 即时通讯工具,如QQ多个用户可以通过文字、语音或文件进行交流。

  • P2P通讯与信息共享,例如Skype。

  • 基于P2P技术的网络电视和网络游戏,如QQLive等。

4.7 关于P2P协议在区块链中的集成

P2P作为区块链的组网方式,在区块链网络中没有中心节点,任意两个节点间可直接进行交易,任何时刻每个节点也可以自由加入或退出网络。

区块链平台通常选择完全分布式且可容忍单点故障的P2P协议作为网络传输协议。区块链网络具有平等、自治、分布等特性,所有节点以扁平拓扑结构相互连通,不存在任何中心化的权威节点和层级结构,每个节点均拥有路由发现、广播交易、广播区块、发现新节点等功能。

区块链网络的P2P协议主要用于节点间传输交易数据和区块数据,比特币和以太坊的P2P协议基于TCP协议实现,Hyperledger Fabric的P2P协议则基于HTTP/2协议实现。在区块链网络中,节点时刻监听网络中广播的数据,当接收到邻居节点发来的新交易和新区块时,其首先会验证这些交易和区块是否有效,包括交易中的数字签名、区块中的工作量证明等,只有验证通过的交易和区块才会被处理(新交易被加入正在构建的区块,新区块被链接到区块链)和转发,以防止无效数据的继续传播。

网友评论