比特币采用去中心化的P2P(点对点)的网络架构,所谓P2P是指网络中的每个节点都是对等的,不存在「特权」节点,这也是比特币「去中心化」的底层实现。
虽然比特币P2P网络中每个节点是对等的,但根据其功能不同,分为如下几种节点类型:
下面我来一一阐述每种节点的作用:
1. 网络路由节点
拥有网络路由功能的节点都可以作为网络路由节点,所有的网络路由节点通过TCP协议连成一张巨大的P2P网络。这里需要注意,对于单个节点来说,它并不需要与其它所有节点建立直接连接,否则性能会成为瓶颈,它只需要跟其相邻的几个节点建立直接连接即可,和其它节点是间接连接。
2. 全节点
全节点是指包含完整区块链数据库的节点,我们知道比特币从2009年1月诞生以来,平均每10分钟产生1个区块,目前为止已经产生了51万个区块,至少需要占用150G的磁盘空间。比特币刚诞生的时候,区块链数据库很小,大部分都是全节点,但随着区块链数据库越来越大,全节点的比例在不断缩小。
3. 简单支付验证(SPV)节点
对于跑在智能手机上的钱包客户端来说,下载整个区块链数据库肯定是不可行的(想象下如果你的iPhone手机为了跑比特币客户端需要占用超过150G的空间,我相信你肯定不会用它)。于是,简单支付验证(SPV)节点孕育而生,SPV节点只需要下载区块头,不用下载区块身(即交易信息),因此它占用的空间大大减少。
4. 独立矿工节点
所谓独立矿工节点是跟矿池相对立,是指不依赖其它节点的算力、单独进行挖矿的节点,因此它拥有完整的区块链数据库。在比特币前期,由于全网的算力不大,独立矿工还有生存空间(比如前几年比较流行的个人买矿机挖矿,甚至有些人还在手机上挖矿),但随着比特币价格一路攀升,全网算力越来越大,独立矿工节点的生存空间越来越小,除非是大的数据中心。
5. 矿池及其挖矿节点
前面说过,随着比特币全网算力越来越大,独立矿工挖到矿的概率越来越小,因此就产生了矿池。所谓矿池是指很多个挖矿节点集合在一起组成挖矿联盟,如果挖到矿,所获得的收益根据挖矿节点贡献的算力分摊,当然矿池还会收一部分管理费。这个挖矿联盟一般基于Pool或Stratum协议。
综上所述,比特币网络架构如下图所示:
未完待续,关注我的公众号可获取后续文章:
领取专属 10元无门槛券
私享最新 技术干货