区块链: 技术驱动金融 - 第2章 比特币如何做到去中心化

2.1 中心化与去中心化

    中心化和去中心化并非水火不容,其实没有一个系统是完全中心化,或者完全去中心化的。如,电子邮件是一个去中心化系统,任何人只要愿意,都可以设计自己的电子邮件服务器,只是对于大多数普通人来说,这是没必要的,所以就把这个任务交给了电子邮件服务商。同样的,比特币系统是去中心化的,但是比特币交易所(将比特币转换成其他货币的平台)、钱包软件、用户管理比特币的软件,可以是中心化或去中心化的。

    要理解比特币如何做到去中心化,我们需要理解下面的五个问题:

谁在维护交易账本?

谁有权利批准哪个交易是正当有效的?

谁在制造新的比特币?

谁在制定系统变化规则?

比特币是如何取得交易价值的?

    点对点(P2P)网络是最接近去中心化的体系,用户只需要下载比特币客户端,就可以在其电脑上运行一个节点。一个节点既可以作为普通用户,也可以作为矿工(将在比特币挖矿中详细讲解),但是挖矿需要很多资金投入,所以并不是所有用户都是矿工

2.2 分布式共识

    分布式共识(distributed consensus)是区块链中一个非常重要的概念。

    计算机界对分布式共识研究了多年,一个直观的例子是:一个社交网络的后端平台包含一个由几万台服务器组成的分布式数据库,每一条信息都被记录在若干个节点上,对于整个系统,这些节点必须做到同步。

    以下给出分布式共识协议的定义:

分布式共识协议  在一个具有n个节点的系统中,每一个节点都有一个输入值,其中一些节点具有故障,甚至是恶意的。一个分布式共识协议有以下两个属性:

输入值的中止必须经过所有诚实节点来确定。

这个输入值必须由诚实节点来生成。

 

    要理解分布式共识在比特币中的用途,需要注意:比特币系统是点对点系统,当AliceBob付款时,她实际上是在向构成比特币网络的所有节点广播其交易信息。如图2.2.1换句话说,Alice把这笔交易广播给所有节点,防止Bob收款后抵赖

区块链: 技术驱动金融 - 第2章 比特币如何做到去中心化

2.2.1 Alice向比特币网络广播交易信息

    在比特币网络中有各种各样的用户在向网络广播交易信息,节点必须对哪些交易可以进行广播交易发生的次序达成共识,以此系统将形成一个唯一的全球交易总账。因此,在比特币系统里,我们将对每一个区块进行共识处理。

    在任何时刻,每个节点都有:

总账本。包含一系列区块,每个区块中包含已经被所有节点达成共识的交易清单。

交易池。包含没有被打包进区块、还没有达成共识、尚待确认的交易。

    每个节点的总账本是一致的,而交易池则略有差别,因为点对点网络是不完美的,所以在任何时刻,有些节点收到了交易信息,而有些则没有收到

    所有节点如何对一个区块达成共识?

    一个直观的方法是:在一个时间段里,比如每隔十分钟,每个节点提议,从自己的交易池中选择未被确认的交易打包进区块,作为已经达成共识的区块链的下一个区块。这时候,每个节点都会把这个区块发给所有其他节点,其他节点将这个区块作为共识协议的输入,检验区块中的交易是否有效。当所有其他节点都确认了这个区块中的交易是正当有效的,那么这个区块就被增加到区块链的末尾(当然,这里会涉及到共识协议的一些细节问题)。

    可能有人会指出,这个区块没有包含所有的正当有效的交易,但这没关系,那些还没有被打包进区块的交易,可以等待下一次机会。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpyjx.html