比特币(4):网络架构

比特币采用去中心化的P2P(点对点)的网络架构,所谓P2P是指网络中的每个节点都是对等的,不存在「特权」节点,这也是比特币「去中心化」的底层实现。

虽然比特币P2P网络中每个节点是对等的,但根据其功能不同,分为如下几种节点类型:

下面我来一一阐述每种节点的作用:

1. 网络路由节点

拥有网络路由功能的节点都可以作为网络路由节点,所有的网络路由节点通过TCP协议连成一张巨大的P2P网络。这里需要注意,对于单个节点来说,它并不需要与其它所有节点建立直接连接,否则性能会成为瓶颈,它只需要跟其相邻的几个节点建立直接连接即可,和其它节点是间接连接。

2. 全节点

全节点是指包含完整区块链数据库的节点,我们知道比特币从2009年1月诞生以来,平均每10分钟产生1个区块,目前为止已经产生了51万个区块,至少需要占用150G的磁盘空间。比特币刚诞生的时候,区块链数据库很小,大部分都是全节点,但随着区块链数据库越来越大,全节点的比例在不断缩小。

3. 简单支付验证(SPV)节点

对于跑在智能手机上的钱包客户端来说,下载整个区块链数据库肯定是不可行的(想象下如果你的iPhone手机为了跑比特币客户端需要占用超过150G的空间,我相信你肯定不会用它)。于是,简单支付验证(SPV)节点孕育而生,SPV节点只需要下载区块头,不用下载区块身(即交易信息),因此它占用的空间大大减少。

4. 独立矿工节点

所谓独立矿工节点是跟矿池相对立,是指不依赖其它节点的算力、单独进行挖矿的节点,因此它拥有完整的区块链数据库。在比特币前期,由于全网的算力不大,独立矿工还有生存空间(比如前几年比较流行的个人买矿机挖矿,甚至有些人还在手机上挖矿),但随着比特币价格一路攀升,全网算力越来越大,独立矿工节点的生存空间越来越小,除非是大的数据中心。

5. 矿池及其挖矿节点

前面说过,随着比特币全网算力越来越大,独立矿工挖到矿的概率越来越小,因此就产生了矿池。所谓矿池是指很多个挖矿节点集合在一起组成挖矿联盟,如果挖到矿,所获得的收益根据挖矿节点贡献的算力分摊,当然矿池还会收一部分管理费。这个挖矿联盟一般基于Pool或Stratum协议。

综上所述,比特币网络架构如下图所示:

未完待续,关注我的公众号可获取后续文章:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180321G0747V00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券