2008年11月1日,一个自称中本聪(SatoshiNakamoto)的人在P2P foundation网站上发布了比特币白皮书《比特币:一种点对点的电子现金系统》。次年1月,一种叫做比特币的电子货币正式诞生。

根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络可以看出,比特币是一种P2P形式的虚拟加密数字货币。其中,点对点的传输意味着一个去中心化的支付系统。这种去中心化的系统后来被称为区块链,并在此基础上诞生了诸如以太坊、EOS等知名公链,也在不断更新迭代中催生了Algorand、Conflux、TOP Network等公链市场新宠。因此,说P2P网络是区块链的源头也不为过。

打开网易新闻 查看更多图片

什么是P2P网络?

如果说公链是区块链的底层基础设施,那么P2P网络就是所有公链的基础,无论是比特币、以太坊、EOS,还是Algorand、Conflux、TOPNetwork都离不开P2P网络,可以说区块链本质上就是一种P2P网络。

P2P网络也叫“Peer-to-Peer”对等网络,是分布式系统和计算机网络相结合的产物。对等的意思就是网络中的节点角色、地位是平等的,任何节点具有极强的自由,可以任意加入、离开网络。所有节点既充当客户端,又充当服务器,任何节点出现问题都不会对整个网络产生致命的影响,具有极强的伸缩性。

与P2P网络不同的是传统的C/S模型,也就是“客户端-服务器(client-server)”模型。我们平常使用的App、网站基本都是C/S 模型,在这种模型中是用客户端去访问网站的服务器。比如,在使用微博的时候,实际上是用微博客户端去向微博的服务器请求数据。如果微博的服务器出现问题,将会导致整个网络的瘫痪。这也就是为什么发生热点事件时,微博经常瘫痪的原因。

但是,在P2P网络网络中,就不存在这个问题,而且可以充分利用带宽,具有很高的扩展性;能够开发每个节点的潜力,有很高的容错性。其实,P2P网络并非新生事物,它的诞生已经超过20年。很多下载软件能够快速下载文件的原理就是利用了P2P网络的优势。

比如用迅雷下载文件的时候,下载冷门资源速度非常慢,而下载一些热门资源速度相对会快很多。原因就是在下载热门资源的时候,下载的人群(客户端)构成了一个P2P网络,大家互相分享自己已有的文件片段,并互相请求对方已经下载好的片段,所以其实下载请求是同时发给了很多人,并非单一一个迅雷服务器。这样就能达到并行下载的效果,下载速度会大大提高,也就能够把带宽利充分地利用起来。相反,因为下载冷门资源人数少,形成的P2P 网络中的节点也少,所以导致下载速度相对较慢。

一言以蔽之,P2P网络就是一个“我为人人,人人为我”的网络系统,在一定程度上具有去中心化的特点。

P2P网络的创新应用

尽管P2P网络有诸多优点,也已经具有了去中心化的特点,但是P2P网络并不等同于区块链。而且,很多公链在利用P2P网络的时候都进行了一定程度上的改进和创新,以适应自身公链的定位和业务需求。

众所周知,P2P网络是一个开放网络,允许节点随意进出。但随意进出网络会带来网络的震荡,造成网络的不稳定,尤其是当持续有节点入网或者退网发生,就需要尽快让网络稳定下来,减少动荡带来的通信影响。

以TOP公链为例,为了更好地控制流量,在P2P网络中利用了布隆过滤器,并经过多次验证和测试,使得TOP公链的 P2P网络既能快速地发现节点,也能做好流量控制。布隆过滤器是一种比较巧妙的概率型数据结构(probabilistic data structure),通过高效地插入和查询,告知“某样东西一定不存在或者可能存在”。简言之,布隆过滤器就是一个利用有限空间来实现高效过滤的过滤器。

同时,为了防止节点隔离,TOP 公链还对某个字段的节点进行了限制,避免同一个IP段可能造成的攻击。所谓节点隔离就是一群来自同一个区域的节点把某个节点围起来,已到达作恶的目的。

假设有一个黑客要攻击一个节点,他伪造了一批节点,通过一些手段,把他的节点都放到了某个节点的邻居表中,一个节点与这个网络的联系靠的是这些邻居,但是如果这些邻居都来自一个黑客,且这些节点都是作恶节点,那本质上就是这个节点与这个网络隔离开来了,该节点获得的数据可能是被篡改过的。

区块链网络还有一种攻击叫异形攻击。简单说就是各个不同的公链的节点互相污染,渗入到对方的主网当中。这种问题产生的原因就是很多公链都复制了以太坊的代码,当然也包括底层P2P模块的代码,那么只要有一个节点接入了以太坊系的主网,那么这两个网络就会产生节点污染,形成异形攻击。

为了防止出现这类问题,TOP公链在构建P2P网络以及设计整个公链的过程中,所有代码都原创,从而避开了与以太坊等知名公链“撞车”的隐患。

可以说P2P网络为区块链的发展提供了底层的支持,而区块链技术的进一步创新和提升也促进了P2P网络的进一步提升。

底层公链之争

当然,P2P网络并不只存在于公链中,联盟链和私有链也同样属于P2P网络。但是就去中心化这一特点而言,只有公链最好地继承并发扬了P2P网络的优势。因此,公链才是真正的区块链的底层基础设施,开发者可以在公链上随意发挥,而不像联盟链和私有链一样受中心化组织控制。

正因为公链的基础性作用以及广阔的发展前景,公链市场的竞争也格外激烈,而且正在经历着更新迭代。

在所有公链中,最广为人知的要数中本聪设计的比特币,因为他确定了区块链基本的运作逻辑。但从严格意义上来说,比特币不能算是公链,因为比特币链上的交易相对单纯,也限制了其他应用在区块链上发展自己生态的可能性。

真正确立公链概念的是2014年出现的以太坊,它的智能合约设计几乎让所有人都可以在以太坊上开发自己的应用。这也让以太坊成为到目前为止名声最响亮,活跃用户数也最多的区块链。以太坊虽然降低了开发难度,提高了社区参与度,却牺牲了效率和拓展性,特别是低效的性能让区块链技术落地显得遥遥无期。

继以太坊之后,各种新生公链如雨后春笋般层出不同,Algorand、Conflux、TOPNetwork,一条高性能、低延时、高拓展性又低成本的公链呼之欲出。特别是TOP Network目前已经实现了全状态分片。分片概念是一个公认的可以提高公链性能的解决方案。分片相互之间在某种程度上是可以独立运作,互不影响。所以包括以太坊在内的很多公链都在分片技术上发力,以期达到提升公链性能的目的。但是到目前为止,只有TOP公链实现了真正的全状态分片。

2020年,市场将会迎来更多新生公链,也会有很多老牌公链完成技术上的更新,最终都将加入这场公链大战。尽管目前鹿死谁手,尚难定论,但可以确定的是,谁能拥有绝对的技术优势,能让更多应用落地,吸引更多用户,谁就会笑到最后。