Bitcoin and Cryptocurrency Technologies – Week 2


第2章 比特币如何做到去中心化

比特币并不是完全使用纯技术手段,而是将技术手段与一种明智的激励机制相结合,做到了去中心化。

2.1 中心化与去中心化

中心化与去中心化也并非水火不容,其实没有一个系统是完全中心化,或者是完全去中心化的:

电子邮件其实是一个去中心化系统,它基于一个标准的中心化协议SMTP,但实际情况是,只有一小部分电子邮件服务商在这个领域占据着统治地位。

虽然比特币系统是去中心化的,但比特币交易所(将比特币转换成其他货币的平台)、钱包软件以及用户管理比特币的软件,可以是中心化的,也可以是去中心化的。

比特币是如何做到去中心化的:

1.谁在维护交易账本?

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

3.谁在制造新的比特币?

4.谁在制定系统变化规则?

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

2.2 分布式共识

建立一个分布式的电子现金系统的关键技术问题,就在于要达成分布式共识(distributed consensus)。

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

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

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

比特币是个点对点的系统。当爱丽丝向鲍勃付款的时候,她其实是在向构成比特币网络上的所有节点广播其交易行为。

注意,鲍勃是否运行节点并不影响他收到爱丽丝转给他的比特币。

在比特币网络里,节点到底要达成什么样的共识呢?

在任何时点,所有在点对点网络上的节点都有包含一系列区块的总账本,每个区块中都包含了已经被所有节点达成共识的交易清单。

除此之外,每个节点还有一堆没有被打包进入区块的交易,就是那些网络节点已经被通知、交易已经发生,但还没有被写进区块的交易。网络节点对于这些交易还没有达成共识,所以每个节点都有一个略有差异、尚待确认的交易池。

存在的问题:

第一,达成共识一般是个难题,因为有些节点会死机或是根本就是恶意节点;

第二,就比特币而言,点对点网络是不完美的,并非所有对应的节点是两两相连的,互联网链接的不良可能会造成网络问题,要执行一个所有节点都参与的共识协议好像并不现实;

第三,由于交易信息是分布在整个互联网上,信息传递会有严重延迟。

比特币协议达成共识时必须直面两大障碍:其一是不完美网络,例如信息延迟和节点死机,其二是某些故意搞破坏的节点。

 

不可能性结论

在全球时间上的不统一,给共识协议算法带来了很多限制。

拜占庭将军问题

拜占庭是东罗马帝国的首都,它的军队分成多个师,每个师都由一个将军统领。这些将军通过信使进行交流,来达成一个共同作战方案,有些将军可能是叛徒,想故意破坏这个过程,这会造成那些忠诚的将军也无法达成一个统一的作战计划。解决这个难题的办法就是让那些忠诚的将军在这样的情况下达成统一作战方案,而避免那些叛徒对作战方案的误导。事实证明,如果叛徒数量超过1/3时,这个难题将无法克服,那些忠臣的计划终会被叛徒们破坏。

Fischer-Lynch-Paterson不可能结果

在一定的条件下(包括节点行为具有确定性特征),甚至在只有一个缺陷的过程中,达成共识都是不可能的。

 

打破传统上的假设

这些所谓的“不可能性结论”都是在一些特定的模式下才成立,这些结论是针对分布式数据库的研究。

比特币打破了经典模型里的哪些假设呢?

第一,比特币引进了奖励的理念。因为比特币也是个货币,所以人们自然而然地会为了金钱奖励而变得诚实起来。所以,比特币并没有真正解决分布式共识问题,它只是在特定货币系统下解决了这个问题而已。

第二,比特币的共识算法很大程度上依赖于随机性。它也不再纠结于规定共识的起点与终点。相反,共识是通过一段较长的时间而达成的。随着时间的流逝,我们对某一个块的认识与最终总体共识相吻合的概率将越来越大,观点出现分歧的概率按指数级下降。

 

2.3 使用区块链达成没有身份的共识

比特币中的每个节点并没有一个稳定的、长期的身份,这一点也是与传统分布式共识算法的不同之处。缺少真实身份给比特币的共识协议带来很多难点。

身份缺失的原因是:在一个点对点网络中,没有一个中央权威机构来发放身份,并保证它们没有制造节点(乱造节点就是所谓的“女巫攻击”(sybil attack)现象);另一个原因是化名制(pseudonymity)。

隐性共识

 

 

声明:自在独行|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Bitcoin and Cryptocurrency Technologies – Week 2


海阔凭鱼跃,天高任鸟飞