区块链的网络层使用的是Peer to Peer技术实现分布式网络的联络机制。网络这一层包括P2P组网机制、数据传播机制和数据验证机制(包括令只是证明类的相关技术方案)。网络中的每一个分布式的节点作为系统中单独的个体进行信息的接收、处理、反馈。这些节点既接受信息也产生信息。P2P网络也叫做对等式网络,他的具体定义是什么呢?
一、定义
对等式网络:是无中心服务器,依靠用户群交换信息的互联网体系,它的作用在于,减低以往网路传输中的节点,以降低资料遗失的风险。与有中心服务器的中央网络不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其机群进行信息交流。
由此可以看出,P2P网络是一个分布式的网络,由各个不同的计算机节点共同组成网络整体,通过协议传输特定的信息。其实P2P并不是一个新的技术,早在2000年的时候技术模型就已经出现,当时的Winsows系统版本还是98。他与之前的计算机集群最显著的不同是,在P2P网络中,不存在中心化的节点/服务器。由中心化的网络拓扑,转向分布式的多对多拓扑结构。这或许是最初分布式、去中心化结构的原始模型。
你可能听说过,国内的迅雷公司宣布过自己是最早使用P2P技术的公司,其实迅雷公司所使用的就是在P2P网络发展过程中,随之而生的另一个技术:BT下载。恰巧BT下载的创始人也是密码朋克的成员之一。BT下载是P2P文件共享的代表,普通的互联网用户不需要通过中央服务器,就可以之间建立网络结构,完成文件的分享和下载任务。不要小看BT下载技术,他是为互联网上人与人之间的交流奠定基础。
二、特点
P2P网络与传统的中心化服务器由很大的不同,主要体现在几个方面:资源使用方式、容错及安全性、匿名性等。
首先在资源方面,中心化服务器的带宽和存储资源是固定的,随着接入系统的用户变多,每个端口可以分得的带宽和存储资源就会变少,因此就会影响用户的使用体验,如果需要维持之前资源使用量的话必须要在中心服务器处增配新的资源。P2P网络中的资源和服务是分散在所有的节点上,信息的传输和服务的实现都直接通过网络中的各个节点进行,随着接入系统使用的节点增多,虽然服务的需求增加,但是系统整体的资源和服务能力也在同步扩充,相当于在不增加主动资源使用的情况下依然可以满足用户的需求。而且从理论上说,新增节点的资源使用需求是低于其为P2P网络贡献的资源量。
然后是容错性。中心化服务器由于资源和数据全部存储在单个或者可锁定的几个固定的节点上,如果黑客对这些节点进行针对性的攻击,一旦系统的防火墙攻破,整个系统就会崩溃,数据发生泄漏之后的失态发展无法预期。而P2P网络本身就是分布式的,在信息和数据的传递都存储在各节点中,部分节点收到攻击损坏并不会对整体系统造成大的影响,因为可以迅速的被其他节点补位,保持系统的连通性。同时用户的隐私信息被获取和利用的可能性会变得很小,各个节点可以获取的数据都是不完整的,即使被获取也无法简单的挪作他用。在这个层面上,P2P网络比中心化的服务器更安全。
这里举个简单的例子来说明,之前发生的经济酒店住客信息泄露事件,就是由于这些经济酒店的系统选择将自己的数据存储在中心化的服务器中,黑客黑进数据存储中心的数据库之后,将这些信息散播出去,给一些人造成极大的困扰,毕竟很多人去酒店可能不是一个人。而如果这些信息是存储在P2P网络中,也不会有这样的问题,因为黑客攻破任何一个节点可以获取的信息都是非常零散的,在A节点获取的住户数据只有一个人,而与其同住的另一个人信息可能在几万个节点中的另一个里。这样就在很大程度上保证匿名性。
在P2P网络里面,挖到根本的技术原理,是拓扑理论。这个概念是比较专业,我会在未来的文章中试着写明白,现在想要了解的小伙伴,可以参照Peer-to-Peer综述