FENBUSHIDIGITALx通证通研究院专题报告研究源于数据研究挖掘机会研究呈现价值2目录1什么是区块链:漫谈分布式系统与非中心化...............................................................................41.1记账方式与信任..................................................................................................................................41.2分布式与非中心化的融合..................................................................................................................42分布式对等系统内部的通信与共识...............................................................................................52.1不存在绝对可靠的分布式对等系统..................................................................................................52.2“狼人杀”与拜占庭将军们..................................................................................................................72.3分布式系统不存在完美的确定性算法..............................................................................................82.4CAP原理与区块链共识机制.............................................................................................................83PoW工作量证明——一致性与可用性的权衡..............................................................................93.1BTC实现实际应用中的一致性.........................................................................................................93.2密码学是PoW一致性的基础............................................................................................................93.3最长链原则与“矿工”间的博弈........................................................................................................133.4PoW如何防止拜占庭故障破坏共识...............................................................................................144区分不同共识机制的八个关键要素.............................................................................................16FENBUSHIDIGITALx通证通研究院专题报告研究源于数据研究挖掘机会研究呈现价值3图表目录图表1:理解狭义共识.............................................................................................................................................7图表2:公钥、私钥与地址...................................................................................................................................10图表3:一笔交易的构成........................................................................................................................................11图表4:PoW共识机制图解..................................................................................................................................13图表5:利用算力优势发动双重支付攻击...........................................................................................................16FENBUSHIDIGITALx通证通研究院专题报告研究源于数据研究挖掘机会研究呈现价值41什么是区块链:漫谈分布式系统与非中心化“资本主义实践将货币单位转换成为合理的成本-利润计算的工具,复式记账法是它高耸的纪念塔。”——熊彼特1.1记账方式与信任如果说,商业活动是驱动人类文明发展的一架马车,那么价值记录则是马匹的四只蹄铁。14世纪晚期,在文艺复兴的发源地意大利——中世纪欧洲的海上贸易中心,复式记账法诞生了。这项500多年前的发明也是现代会计学的重要基础。目前最常用的借贷记账法基于一个简单的恒等式:资产=权益+负债。交易的本质是价值的转移,复式记账法使资金转移过程的记录变得清晰,让验证账本的正确性变得简单,与“记流水账”相比,增加了不诚实的记账人造假的成本。随着20世纪电子计算机的发明,人类的记账工具开始向数字化演进。数据库技术与互联网的普及,使电子支付成为了可能,数据的规模与处理效率也得到了极大的提升,但这背后的复式记账法则仍然没有改变。在传统的记账方法中,账本由一个单一的记账人维护。这种由单一的中央机构实现对数据的存储、记录以及维护的模式被认为是中心化的。账本的正确性与不可篡改性以记账人的声誉、信用或资产担保。在中心化的记账体系里,参与交易的双方各自维护着自己的账本,这样就产生了一些问题:双方的账本若不一致该如何处理?如何保证双方不会为了自己的利益篡改账本?为了解决这些信任问题,仍然需要专业机构对公司账目进行审计,带来的额外成本也非常大。于是参与交易的各方共同维护同一个账本的记账方式就应运而生了,这也是分布式账本的思想。1.2分布式与非中心化的融合区块链行业提到的“非中心化分布式”这一概念与传统计算机科学中的分布式计算略有不同。一个分布式计算系统通常出于解决:1.单个节点的计算性能瓶颈;2.属于同一公司或组织的不同计算节点在地理位置上的分散性;3.节点数据的分散储存与备份问题。一般来说,由能够互相通信的多个能够实现“最小功能”的工作单元以实现同一项任务为目标协同工作组成的系统称为分布式系统。分布式系统的一个工作单元称为节点。在理想的分布式系统中,用户可以通过任意节点使用系统的完整功能。那么区块链和传统分布式系统相比有什么特点呢?之前提到,区块链最初的目的是进行非中心化的分布式记账,这要求参与交易的各方(各节点)共同记录同一个账本,意味着各节点都保存账本的完整副本,并能够检验账本的正确性。因此,我们可以认为区块链是由多个具有记账功能的节点以维护一个特定账本的完整记录为目标协同工作的分布式系统。FENBUSHIDIGITALx通证通研究院专题报告研究源于数据研究挖掘机会研究呈现价值5随着技术的发展,其功能也不仅仅局限于单一的“记账”。账本的概念扩展为一个可以增添记录的特定“数据结构”,并定义其为当前系统的“状态”。整个网络的目的就是共同维护一个“系统状态”。但如果整个分布式记账系统由一个中心节点来控制的话,其实依然可以对账本进行整体化的篡改。而区块链的非中心化性解决了这一问题。有别于某一些存在中心节点分发并确认任务的分布式系统,在区块链网络中,没有一个节点能够完全决定系统的当前状态。通常说这种不存在某一个或一些特殊的节点能够决定系统状态的分布式系统是非中心化的。回到区块链究竟是什么的问题上来。大部分人认为它是继互联网之后的又一重大技术革新,极客们认为它是能够不同于中心化体的一套自治的的体系。也有人认为区块链是一个无需第三方信用背书、信息可溯源且不可篡改的数据库。事实上,非中心化与中心化的概念仍然没有明确的定义,人们对两种模式的争论仍然在继续。从技术的层面来说,区块链同时具有分布式系统和非中心化的特征,是两者的有机结合。因此它同时具有:节点以维护账本的正确性为目标、没有中心节点可以控制账本的记录的特点。由此带来应用层面的特性包括无需中心机构的可信任性,以及安全信息记录方式。有些区块链网络还实现了智能合约,能够自动地执行流程化的交易,进一步提升了效率。2分布式对等系统内部的通信与共识“蜂群意识、经济体行为、超级电脑的思维,以及我的生命分布在众多更小的单元上。我们所能发现的最有趣的奇迹——生命、智力、进化,全都根植于大型分布式系统中。”——凯文•凯利2.1不存在绝对可靠的分布式对等系统假设有一个由n个节点共同维护的分布式账本,并且每个节点都能够对账本进行本地处理,也能够向其他所有节点发送消息(称为广播一条消息,在有的消息模型中不存在一对多的广播渠道)。如果有数个节点对账本进行了修改,它们会向其他节点发送一条包含修改内容的消息。在实际情况中,会出现各种各样的意外:消息损坏、消息被恶意篡改:解决方案是为消息添加校验信息。消息丢失:由于通信网络不能正常工作,可能有部分或全部的节点没有收到某条消息。可变消息延迟:由于各节点的地理位置、网络状况不同,收到来自其他节点消息的时刻与该节点发送消息的时刻之间总是存在不可预测的延迟,因此不同节点对其接收到消息的先后顺序有不同的判断。我们一般认为不同的节点本身的时钟也是不完全同步的,又由于消息丢失和不确定延迟的存在,所以当节点在处理消息时,不能使用基于时间的控制流程:“在某时某刻,开始执行某操作”、“先处理来自节点i的消息,再处理来自节点j的消息”,而只能采用基于事件的控制流程:“当收到来自节点i的消息,开始执行某操作”。FENBUSHIDIGITALx通证通研究院专题报告研究源于数据研究挖掘机会研究呈现价值6这种处理方式称为异步模型(AsynchronousModel)。在异步模型中,我们假设节点在本地对消息的处理时间要远远短于消息的延迟。除了传递消息的通信过程会发生意外,有时组成网络本身的各个节点也会发生故障。一个著名的例子就是拜占庭将军问题,在下一节会具体介绍。我们先简单地假设n个节点中存在f个不能正常工作的节点,但网络通信都是可靠的,即不存在消息丢失这一情况,并且假设初始条件下所有节点保存了相同的账本。当一笔交易发生后,需要对账本增加一条记录,参与交易的节点会向其他节点发送一条消息,称这条记录了修改内容的消息为