从技术层面讲,在计算机科学领域,比特币协议在达成共识所碰到的问题上采用的是一种灵巧的解决方案。“达成共识”的概念非常普遍 – 许多参与者为达成关于世界状态的一致意见或者对共同感兴趣的问题一起进行运算。
由于它的一般性,可以使用不同的方法来分析和验证这些共识协议,这些方法来自应用数学和计算机科学的不同领域。这些方法使用不同的语言和术语,并包括不同的假设和观点。但产生的结果,它们并不总是与彼此一致,从而产生困惑。由于人们具有一种或另一种世界观,导致人们经常产生分歧。在这篇文章中我会介绍两种主要模型,用来分析比特币共识系统中的安全问题。
传统的达成共识的方法是分布式数据库。一个好的例子是数据库中心,它拥有许多的节点,共同管理同一数据,这种系统需要被保护好,避免它的组件工作失灵,但相对轻微的那种失灵可能没法避免 – 节点可能崩溃,或者最糟的情况是,它可能没有规律地运行。随着互联网上恶意和攻击越来越普遍,分布式共识的研究人员也研究了拜占庭将军问题(Byzantine faults)——它的节点可能被怀有恶意的人控制,以致以不可预知的方式运行。在这个领域的研究,一般的目标是为了证明在不同的情况下这种达成共识的系统是否可以有效地运行。我们可以认为一部分的节点是“诚实的”,意思是它们始终按规定好的协议运行,其它一些是“恶意的”,就是说它们可能故意地破坏协议。
随着比特币的发展,人们在寻找一些用来分析它的行为的模型,假如我们稍微对拜占庭将军共识模型做出一些调整,它可能非常适合用来实现这个功能,尤其是当我们谈论到比特币节点的时候,必须通过它的算力来衡量它在网络中的比重。原始的白皮书就是使用这个模型来分析安全性,以及后来出现的一些工作。
然而需要注意的是,比特币不同于这个模型所意味的传统应用。在一种分布式系统中,一个好的方法是,在太多节点遭到入侵并妥协前,系统管理员会注意到所出现的一些问题并修复它们。假定一些节点总是诚实的,这是有意义的假设。但是用什么方法来督促每一个节点或者矿工遵守协议呢?
实际上,矿工获得了巨大的金钱形式的奖励,一个让人争议的地方是他们会尝试不择手段地最大化所获得的利润,而不顾是否需要遵守协议。数学上有一个分支专门研究相交互的追求奖励的参与者的行为,叫做博弈论。这是另外一种应用于比特币的主要模型。
这种模型中,我们没有把节点分成诚实的和恶意的,而采用的是,我们假定每一个节点选取(随机)策略来最大化利润,并参考其它节点可能采用的策略。假如协议或奖励被设计得很好,那么大部分时候,众多的节点将遵守规则,“诚实的”行为只是众多策略中的一种,我们没有附有任何道义上的责任。
这种模型具有某种程度的巧妙。避免了武断的难以验证的假设——如50%的节点是坦诚的这样的假设。实际上,客户端实现呈多样化,随着时间的推移,它的协议会进化,所以,甚至,“指定一些行为是诚实的”,这某种程度上,是武断的。
但是单单理论的巧妙是不足够的。在策略语言完善,和利润最大化的需求之下,我们能够有效地利用它所有相互关联的组件来建立起这个系统的模型吗?容易应对所建成的模型吗?我们能够使用数学方法或某种模式来分析它吗?最重要的是,预测到的跟我们在实践观察到的现象相吻合吗?在接下来的一篇文章我将讨论这些问题。
摘自:
巴比特资讯