小世界网络

什么是小世界网络?

在数学、物理学和社会学中,小世界网络是一种数学上图的类型,在这种图中大部分的结点不与彼此邻接,但大部分结点可以从任一其他点经少数几步就可到达。若将一个小世界网络中的点代表一个人,而连结线代表人与人认识,则这小世界网络可以反映陌生人由彼此共同认识的人而连结的小世界现象。

small-world-network

比特币节点组成的网络是一个小世界网络,这是论文《Exploring the Bitcoin Network》中得到的结论:

One important result concerns the relationship of network usage and exchange rate, where a strong connection could be confirmed. Moreover, there are indicators that the Bitcoin system is a “small world” network and follows a scale-free degree distribution.

这意味着,比特币网络中节点的紧密度比许多人想象的要密得多。

小世界网络的意义

小世界网络的意义在于,参与的节点大部分会紧密连接,使得信息广播在整个网络中的得以高效传递。同时这些节点组成的网络具有良好的扩展性,新加入的节点可以根据自身情况迅速融入其中,退出的节点也不会影响到整个网络系统。

在谈论网络拓扑结构的时候,人们通常会认为是以下几种形式。

Centralised-decentralised-and-distributed-networks

作为一个去中心化的网络,比特币网络很容易让人认为它是处于上图中第二和第三种状态之间。这样的网络结构也被称为 Mesh 网络。在这种状态下,平均每十分钟一个区块要传播至全网,需要通过若干节点的几跳(相邻节点的一次传递叫一个跳)的传递,才能使得区块从网络的一端传递至另一端。

而在实际情况中,节点会倾向于与连接性良好的其它节点保持紧密关联,以便能尽快地接收交易信息以及将自己打包的区块传递出去。这使得节点在加入比特币网络后,会尽量与更多节点直接关联,从而让整个比特币网络慢慢变成了一张近完全图(Near Completed Graph)。下面的视频,生动地显示了新节点不断加入比特币网络后整体变得更加紧密的过程。

Block Propagation

(视频需要翻墙 https://www.youtube.com/watch?v=D0Jqah-DrpU)

小世界网络使得在比特币网络中广播区块交易信息非常高效,平均在两跳之内即可将信息同步到大部分的节点。这也是比特币网络自然进化的结果:各个节点之间是竞争关系,因为它们需要争取下一个块的打包权;同时他们又不得不与其它节点保持良好沟通,以保证自己在挖矿过程中不处于劣势。

小世界网络是否让比特币变得中心化?

这是一个很多人无法理解的坎:要尽可能地与更多节点保持连接意味着需要提升节点的硬件性能。如果最后变成了都是服务器级别的节点,这不会让很多爱好者无法自己在家运行,最后只有少数几个大矿场参与的游戏?

这是一个很值得讨论的问题。

关于去中心化的更详尽讨论,我今后会另外撰文。在这里,希望读者能够先思考一下:去中心化的度应该如何衡量?在人人自建节点挖矿和只有屈指可数的节点参与之间,怎么样算足够去中心化?如何尽量保证比特币网络能够足够分散而不会因为单点故障而崩溃,同时又能尽可能保持整个网络高效运作?

中本聪在比特币初期,孤独地一个人挖了一年之久,那时的比特币网络是中心化的,因为如果中本聪关了机后整个网络将停止运作。但那也是去中心化的,因为它对任何人开放,也随着后来加入的人越来越多,一直发展至今天的模样。

因此,对于这个问题,比特币的节点组成的小世界网络是对外开放的,它不像 EOS 这样指定了候选人,任何节点都可以自由地加入其中并有机会挖到块。同时这也是竞争激烈的,通过优胜劣汰的方式,让一些过时的设备不得不出局,从而让整个网络的承载能力能逐渐提升。

矿工网络的经济激励

很多人认为矿工的挖块就是刷哈希、扔色子,其实并非如此。PoW 并不是 Proof of Hashing,比拼的不是哪个矿工能以最快的速度出块,而是让所有其它矿工接受自己的工作成果。矿工可以选择在哪一个块上计算下一个块的哈希值,你出的块诚实、速度快、传播性好,匹配了当前网络效率,那么你才会被其它矿工所接受,人家才愿意在你的账本版本上投票。将来我们要把区块上限拿掉,在这以后,比特币 SV 将没有区块大小的限制,但这并不意味着矿工会打包巨块,因为整个网络有承载上限。假设当前网络绝大部分的矿工只能接受 10GB 的区块,当有人决定发一个 100GB 的区块来尝试脱垮大家,很显然,这个区块太大了,大到大家所有的其它矿工都来不及验证,无法有效地在这个区块上投票,那么它一定会成为孤块,因为没有人会在它上面继续投票。

所以,在这个模式的驱动下,矿工之间会保持一个紧密连接、高效高速的带宽组成的小世界网络,在这个小世界网络里面,矿工在合理大小的区块的传递上是高效的,任何的从一个矿工到达另外一个矿工的消息通讯,最多只需要经过两跳。

所有的矿工为了减少损失,增大收益,会尽可能提高和其它矿工的连通性,速度收到来自其它矿工刚出的块,并开始挖自己的下一个块。同时,在自己出块时,尽快把自己的块传递给其它的矿工,让别人在自己的区块上工作。由此可见,矿工之间的联通性受到矿工出块、孤块率的影响,同时被矿工追求更高收益的贪婪驱动力所推动着不断提升。在比特币世界里面,矿工自然而然地形成了一个小世界网络,每一个矿工节点和其它矿工基本上都保持着良好的连接,这样任何一条信息最多经过两次跳跃,就能够完成在矿工中的传播,它意味矿工之间的网络将成为下一代互联网的核心骨干基础设施。

在这种情况下,我们所有的用户和服务提供商并不是矿工,他们都会运行一个叫做 SPV(简单支付验证)节点的东西,和矿工之间的小世界网络保持紧密连接,全世界可能有几十上百号矿工,那么你可以选择一个离你速度最快、最近的矿工进行连接,然后你可以委托他们帮你把消息传递给你的目标的另外一个用户,这是接下来作为矿工的基础设施可以为大家提供的服务。

矿工和用户之间的每一个连接全部都将是由公钥进行控制和识别的,在接下来的 IPV6 地址背后由于 CGA(Cryptographically Generated Address) 的加持,都会具备公钥和私钥。那么可以通过这种方式,极大改善我们当前互联网的连接,当每一个参与者通过自己的电脑,委托矿工,就可以在四跳之内将信息传递给目标服务器,这个结果足够让人惊讶了!因为在当前,十跳之内已经是很快的结果了,尤其在中国网站里你要访问美国服务器,你需要层层往上找到边界网关服务器,再层层往下去翻到目的地址,这中间的过程没有十几跳是完不成的。但是在可以预见的未来,我们将可以看到所有的浏览器、所有的用户、所有的手机都可以使用 SPV 的方式和矿工保持直接连接。这是比特币这个点对点的现金系统的真正奥义所在,在双重的比特币网络一节中,我们将更清楚地说明这一点。


results matching ""

    No results matching ""