关键词:钱包、矿工、节点、比特币网络、架构
接下来白皮哥将用三篇的篇幅解释区块链的运行机制,相比于其他的科普文,我更倾向于把细节讲清楚而不是一味省略,因为我相信适度的细节是有助于理解的。
Here we go!
为什么这篇文章叫节点即细胞呢?先来一张《精通比特币》里的经典架构图(细节略有问题,有出入以下面解说为准)。
不要害怕,听白皮哥慢慢道来。
一定能懂。
图中每一个浅蓝色方框表示一个节点(可以是专业服务器、个人电脑、笔记本甚至是手机),他们之间通过橘黄色的比特币协议连接。我们可以把整个系统看成一个人,那么每一个节点就是一个细胞,比特币协议就是遍布全身的神经。
细胞分血细胞、脑细胞等等,比特币网络里的节点自然也有不同的功能和分工,我们先来看看这些“比特币的细胞”里的工具:
1. 橙色的圆是网络路由,好比你家里的路由器,有了它,节点才能用比特币协议连接到比特币网络中,所以使用比特币协议的节点都有网络路由。
2. 深蓝色的圆是完整的区块链记录,里面记录了从创世区块(第一个区块)至今所有的转账。因为09年至今区块链交易已经非常多了,所以完整的区块链记录大小已经超过170G(截至2017年12月),对于存储和网络传输是个挑战。但如果一个节点有完整区块链,它就可以自己来校验收到的交易是不是有效的,而不需要外部参照,最安全稳妥。
3. 绿色的圆是钱包,就像上面说的,完整的区块链记录太大了,在个人电脑、手机上不适合维护,这时候就可以抛弃完整的记录,使用钱包。每个钱包对应一个或多个地址(也就是账户),它可以储存,查看比特币,当钱包里的账户发生转入或转出时,它可以使用简易方式(具体请期待本系列下篇)来从完整节点获取信息(目前大约1M)并验证完成单笔交易,这样的话就极大地减少了数据量。
4. 黑色的圆代表矿工,矿工负责将收到的交易打包并记入区块链,根据比特币的设计,无论有多少节点,多少算力,大约每十分钟就会有一个矿工完成挖矿,然后他打包的区块就会被加入区块链。
5. 浅黄色的圆是Pool/Strutum服务器,它们主要是负责通过Pool协议和Stratum协议更加高效地维护大量的矿工,如图所示,这些矿工通过一个中心的Pool/Stratum服务器(大浅黄色圆)连接到比特币网络中。
我们把这些工具组合起来就获得了不同功能的细胞(节点)。
核心客户端(脑)
由钱包、矿工、完整区块链和网络路由节点组成,它可以实现比特币网络的所有核心功能,开发者们一般会运行核心节点来进行测试和开发,对比特币协议进行改进和升级,可以说是比特币的大脑。
全节点客户端(骨)
具有完整的区块链的节点都称为全节点客户端(实际上,上面提到的核心客户端和下面将要讲到的边缘路由器都属于全节点客户端)。全节点客户端支撑起了比特币的主要业务及应用,可谓是比特币的骨架。
在这里(https://bitnodes.earn.com/)可以查看全节点客户端的分布和数量,目前(2018年2月)全球共有11000+个全节点客户端。全节点客户端越多,比特币网络越稳定,越不容易被篡改。
边缘路由器(肉)
在传统网络中,边缘路由器指的是位于一个网络组织边缘的路由器,连接一个网络和另一个网络,比如我们的家用路由器都是边缘路由器,因为它连接了我们家里的内网和互联网。比特币网络中也类似,因为全节点客户端中有些节点存在钱包以及和资产相关的业务,而大多数的业务其实不需要对钱包进行修改(查询钱包的次数肯定大于转账的次数),因此边缘路由器就像是肌肉一样保护着存在钱包和业务逻辑的全节点客户端,帮助它处理大多数事务,避免它被黑客攻击。
SPV钱包(皮)
钱包是离广大用户最近的部分,数量也远大于全节点客户端,好比整个网络的皮囊。由于完整区块链过大,目前大家所见到的大多数钱包应用都是轻量钱包。轻量钱包在转出时过程和完整钱包类似,主要区别在于当查询转入资金时,因为自身没有账本,它需要向全节点客户端询问是否有人给自己账户转币。当有入账交易出现时,全节点客户端会把交易信息和验证方式告诉轻量钱包,轻量钱包收到并验证后,即可确认入账。
矿工(血)
a. 独立矿工:
这里简述一下什么是挖矿(详情见本系列下篇):当一定数量的比特币交易被发到网络里之后,每一个矿工就会把这些交易打包,然后在最上面增加一条无中生有的交易,收币人是自己(这个交易就是挖矿成功后的收获,称为coinbase交易)。打包完成后(一个打包就是一个区块)就开始计算区块链给到每个矿工的谜题,第一个解开谜题的矿工会先把区块加到自己的区块链尾端,然后将区块发到网络中,其他矿工收到后会验算是否正确,如果正确则会把它加到区块链尾端并放弃当前计算,重新打包进行下一轮解题。这样获胜的矿工就获得了coinbase交易的比特币(目前是12.5个/区块)和交易中的手续费。比特币网络中矿工越多,则系统越稳定越不容易被攻击。
在比特币诞生早期,矿工中还有很多独立矿工,使用自己的笔记本或PC就可以挖到比特币。因为要校验计算正确性,所以独立矿工节点需要自己维护一个完整区块链。但是随着挖矿竞争越来越激烈,独立矿工现在想挖到比特币可谓难于登天,矿池应运而生。
b. Stratum矿工:
Stratum矿池本质上是一种托管矿池,因为老的GBT协议基本过时了,所以这里用Stratum代指。Stratum矿池中的众多矿工通过Stratum协议连接到矿池服务器。一旦池中有一个矿工挖到矿,奖励将打到矿池地址,当多次奖励达到一定数量后,矿池将根据每个矿工贡献的算力论功行赏。这样每个矿工就不需要自己保管区块链了,并且可以获得更稳定的挖矿收入(如果独立挖矿挖到了则获得一个区块奖励,挖不到则一直是0)。
c. P2P矿池矿工:
托管矿池的问题是,中心服务器一旦故障,则矿池中矿工都被迫停工,并且中心服务器的管理者有可能监守自盗甚至卷款跑路。而P2P矿池是一种去中心化的矿池组织形式,每个P2P挖矿节点都运行一个P2P矿池软件,这就像是在一个比特币节点又开一个子区块链,避免了矿池管理者权利过大的问题。它的运行机制相对复杂,这里不作介绍。
可以看到,不管是独立矿工还是矿池,他们就像比特币网络的血脉,他们是区块链生生不息精确运行的能量来源,没有矿工,区块链寸步难行。
再看一遍这张图,是不是懂了?如果有问题欢迎在下方留言,白皮哥知无不言。
千千万万个细胞节点分别扮演着自己的角色,维护着比特币机体的健康,而与DNA同为链状结构的区块链本身就像是整个比特币的DNA。它稳定、安全、多重备份、自我纠错、难以摧毁。它在每个细胞中以或完整或简洁的形式存在着,定义着比特币的本质。
下一篇将为您带来,比特币?看这篇就够了!(中):算法即魔法
欢迎在本文评论区留言提出你的见解。将本文转发给志同道合的好友,一起学习交流,共同成长。
如果想要投资数字货币,请点击公众号下方菜单的交易平台,选择平台后即可进入。
或向后台直接发送“投资”,您将收到投资入口。
领取专属 10元无门槛券
私享最新 技术干货