Bitcoin Core

今天的主角是 Bitcoin Core 。那我们先聊什么是 Bitcoin 呢?当首字母 B 小写的时候,bitcoin 指的是一种加密货币,也就是比特币。当 B 大写的时候,Bitcoin 代表比特币协议或者比特币网络。所谓网络就是由很多台计算机连接成的,每台计算机上都要安装一个软件,那么你猜猜这个软件叫什么名字呢?最早中本聪写这个软件的时候,就把它叫 Bitcoin ,但是后来人为了区分,就把软件的名字改了一下,叫做 Bitcoin Core 。

Bitcoin Core 是一个开源软件

Bitcoin Core 是 Bitcoin 协议的实现,是一个开源软件。

先说什么是实现呢?Bitcoin 作为一套协议,只是规定了游戏规则。这套规则要得到执行就需要有人开发出实实在在的软件,也就是说要有实现,实现是一个术语,英文叫 implementation 。一套协议的实现当然不局限于一个,比特币的实现也有多个,但是 Bitcoin Core 是使用量占绝对优势的实现。

Bitcoin Core 是一个开源软件。软件仓库地址在 https://github.com/bitcoin/bitcoin 。谁,在什么时间,修改了哪一行代码都是一目了然的。我们说比特币是一个真正开放的系统,开放的含义分为很多个层面,代码的开源也就是游戏规则的透明,就是其中的一个层面。

核心功能

接下来,介绍一下 Bitcoin Core 都包含哪些核心功能。

Core 要提供一个节点运行的基础功能。比特币是一个点对点的网络,所以网络上的机器全都是客户端,没有服务器。而 Core 作为客户端上的软件就要承担起维持网络运行的全部职责,其中主要包括:第一,下载并保存完整的比特币区块链。第二,包含一个带图形界面的钱包软件,能够构建并签名交易并广播到整个网络,能够发送和接收比特币。第三,接收网络上的交易,验证交易并打包到区块中,实现挖矿功能。

总之,比特币的功能基本上都要通过 Bitcoin Core 来实现。

背后团队

Bitcoin Core 背后的开发团队是一个人员不断变动的松散组织,不会被任何个人所控制。

最早的开发者只有一个人,就是中本聪。虽然中本聪已经消失多年,但是中本聪开创了很多东西,一直都被继承了下来,例如,使用 C++ 作为主要开发语言,使用 Qt 开发图形界面,使用椭圆曲线密码学等等。直到今天依然有人把 Bitcoin Core 称为中本聪客户端。

后来,团队的领导权又发生了两次变化。接替中本聪的嘉文安德森因为感觉维护项目工作过于琐碎,后来选择了离开。目前的开发由来自不同公司的人共同开展,其中 Blockstream 这个公司享有相对比较多的话语权。

但是,没有任何个体能够操纵比特币的开发。Bitcoin Core 之所以流行是因为在所有的实现中,它最为优秀,如果项目被恶意操控,开发方向偏移,那么矿工们完全可以选择其他的实现去安装。跟其它的开源项目一样,比特币也是一样可以被 fork 的,是一种尊重选择的文化。

总结

Bitcoin Core 是比特币协议的一个实现,是安装在比特币节点上的软件,软件是开源的,没有任何个体能够操纵它的开发,新功能的添加都需要社区首先达成共识。

参考: