引言
比特币是由一系列概念和技术作为基础构建的系统。本系列文章希望通过描述这些概念和技术来讲清楚比特币是什么。
第一课先讲比特币里涉及到的最基础的概念。
第1章 什么是P2P网络
P2P网络(peer-to-peer,简称为P2P),又称为对等式网络,也叫说点对点网络。这是一种无中心服务器、完全由客户端交换信息的互联网体系。
有中心服务器的中央网络系统可以用下图来描述:
而P2P网络,可以用下图来理解:
和有中心服务器的中央网络不同的是,P2P网络的每一个用户端即是一个客户节点,又具有服务器的功能。P2P网络的一个重要的目标就是让所有的客户端都能提供资源,包括带宽,存储空间和计算能力。这种网络的容量可以远超过有中心服务器的网络。中心服务器结构的网络你每增加一个客户端,就意味着所有用户的数据传输速度要降低,而P2P网络不会。
P2P网络的健壮性也远超过中央服务器结构的网络。因为只要中央服务器出现问题,那整个网络就崩溃了。而P2P网络任意客户端出现问题,整个网络照样正常工作。
比特币系统就是一个P2P网络系统,我们先记下这个概念。
第2章 什么是分布式计算
我们知道计算一个简单的数学问题,比如1+1等于几,用一台电脑就够了。但如果要计算一个超级复杂的问题呢?这可以使用多台电脑一起来运算,而如果这些多台电脑都处在互联网上,那它们如何相互链接?如何传递消息和通信?如何协调各自的任务和分工?这些问题就是分布式计算系统要解决的事。
分布式系统是一系列电脑,通过网络相互链接传递消息与通信后并协调它们的行为而形成的系统。电脑之间彼此进行交互以实现一个共同的目标。把需要进行大量计算的工程数据分区成小块,由多台计算机分别计算,再上传运算结果后,将结果统一合并得出数据结论的科学。
因为计算能力超强的超级计算机实在是太昂贵了,世界上很多非常复杂的科学问题,就是通过分布式计算来完成的。比特币就是其中之一。
第3章 什么是比特币
比特币本质上就是一个分布式的P2P网络系统。它由一系列电脑(或其它计算设备)相互连通构成一个P2P网络。每个电脑上都装有一系列的软件,这些软件就构成一个分布式计算系统,用于协调这些电脑完成相互链接、相互传递消息和通信、协调各自的任务和分工。最终这些电脑彼此交互要实现一个共同的目标——维护一套数据库的完整和更新。
这套数据库就被称之为比特币区块链,而这套被称为区块链的数据库记录的内容就被我们当成货币来用。这和我们使用的网银是银行里记录的数据库是一个道理。
从狭义上说比特币就是一货币,可以用来储存和传输价值。而在广义上讲比特币是一种P2P网络、是一种分布式计算系统。这套系统除目前应用最广泛的就是货币,当然它还有其他功能或者说表现形式。
第4章 一个简化的比特币系统模型
想象这么一个场景,有一个村庄有10个人,每个人都有一台电脑。这些电脑里都存在全村所有人的资产账本,张三有多少钱、李四有多少钱……。这套账本还详细记录了所有人的资金流动记录,张三在某个时间点给了李四多少钱、李四在某个时间点给了王五多少钱……。
现在的问题是,每个人都完全控制自己的电脑,每个人都可以自由修改自己电脑里的账本里记录,比如张三可以给自己的账户上加几个零。而且全村又没有一个绝对的权威来仲裁谁作弊了。
那在这个场景中,如何将这10台电脑联成一个对等网络,并且通过一套分布计计算的系统让每一台电脑真实记录全村的资金流动和各个村民的资产,并且达到以下要求:
- 一个人的账户向另外一个人发送了资金,所有电脑都能及时更新账本,并保持一致;
- 电脑之间交换数据(即资金流动)的过程不被篡改;
- 所有电脑里的历史记录不可篡改;
- 任何人都可以自由开机加入,或者关机退出这套系统,并且不会影响整套系统的正常工作。
这么一个场景及这套P2P网络和分布式计算就构成了比特币的简化模型。这样村民就可以使用这套系统来充当货币,完成经济活动的支付。当然比特币发展到现在,已经相当复杂。
比特币就是一套全球级别的P2P网络系统,比特币协议以各种开源软件的形式实现,这些软件可以在PC机、智能手机、专用的计算设备等上运行,用户可以借用这些终端自由接入比特币系统,而且不需要任何人审批。这套系统能完美地在没有任何中心机构和政府的控制下完成记录所有参与者的资金流动,从第一笔比特币到现在所有的比特币流动和所有权都完整无差错地记录来下,形成了一整套叫比特币区块链的数据,这套系统就可以被当成一个全球化的无国界货币。
第5章 结束语
比特币是由一系列概念和技术作为基础构建的系统,理解起来并不会很难,只要一个一个概念慢慢摸清楚,就OK了。