一文读懂区块链的共识机制

科技新闻 2019-08-26 09:41198网络整理

前言:本文简单明了地阐述了达成共识的两个主要流程:区块的提议和区块的共识达成。区块的提议主要涉及到PoW和PoS机制,也就是工作量证明和权益证明的机制,用以抵抗女巫攻击,安全地选出可靠的区块提议者。区块的共识达成则涉及到共识算法,主要包括中本聪共识和经典共识。中本聪共识采用最长链规则,经典共识则可实现最终性。每种共识算法都有自己的权衡取舍。本文作者Julian Koh 和Cheryl Sew Hoy,由“蓝狐笔记”社群的“晓L”翻译。
 
区块链共识是2017年和2018年最广为讨论的区块链子领域之一。可以看到,很多公司试图从零开始构建新的智能合约平台,并与以太坊竞争,而其中的一个差异化或创新点就在区块链的共识算法方面。试图理解这些算法,并能对它们进行批判性比较,这对很多加密投资者来说,都是一项全职工作,毫无疑问,要掌握它们并不简单。
 
为揭开这些“共识算法”的神秘面纱,不少人做了很多工作。但是,对于普通人来说,它们太过于技术化。一些概念,例如同步、安全/活性证明、不可能结果,这些有助于人们通局了解。不过,在我看来,对于大多数人来说,完全理解并不特别重要。
 
本文重点是区块链的共识算法,而没有提及更大的也是超级复杂的分布式系统领域。为了简单易懂,还会放弃一些技术概念。
 
本文结束时,你应该理解PoW和PoS的区别,了解BFT的意思,最重要的是,当考虑在哪个区块链上构建你的应用时,你应该知道它们的权衡是什么。
 
什么是共识?为什么很重要?
 
简单来说,区块链是一种公共数据库,其中用户就什么是正确的达成一致。比特币是记录所有交易的公共数据库,保留了货币系统的完整性。有两个主要问题需要理解:
 
1.就什么达成共识?
2.如何达成共识?
 
我们需要有人提议,然后让其他人选择,直到达成某种形式的共识。就区块链的情况,我们需要有人提议区块,然后需要剩余节点接受区块。
 
一个简单的例子如下:

一文读懂区块链的共识机制

4个人尝试并安排共同的时间来做事。每个人提出其可用时间(空白格)。可以看到,网卓新闻网,有两个共同可用的时间段,下午2点和6点。他们如何达成共识?在他们提出可用时间前,他们同意一个特定规则:每个人必须选择最早的共同可用时间。在这种规则下,这意味着,他们将会在下午2点而不是下午6点见面。由此,他们达成了共识。
 
按照这种框架,我们将它类比扩展到比特币区块链:
 
人们就什么达成共识?
 
人们就区块数据达成共识。区块中包含有效的比特币交易。在比特币中,任何人都可以提议区块,只要他们率先解决一个计算谜题(PoW)。
 
人们如何达成共识?
 
人们同意接受最长链上的区块。例如,如果链A的高度为100,而链B的高度为200,如果你收到链A上的区块101和链B上的区块201,你必须接受区块201。有人在更短的链上添加区块,可能是因为他们没有意识到更长的链,但“最长链规则”确保一旦区块在整个网络中传播,每个人最终就相同的事情达成共识。
 
该框架支持所有共识算法。不同算法可以采用不同的方法来提议区块,也可以使用不同的方式来对区块达成共识。
 
提议区块
 
考虑区块提议时,最大的问题是谁来提议区块。如果任何人随时都可以提议区块,会很难达成共识,因为这类似于人们不停地相互交谈。必须以某种方式选出代表,这样剩余的人可以一次看到一个提议。
 
最幼稚的方式是让协议随机选择一个人来提议新区块。然而,在互联网上,一个人可以通过运行相同程序的一百个实例来伪装成一百个人。因此,我们需要创造某种形式的稀缺性,以抵抗女巫攻击。(蓝狐笔记注:女巫攻击主要是指网络中的少数节点控制多个虚假身份,并利用这些身份控制网络中大量正常节点的攻击方式。)。
 
因此,这个游戏必须能够抵挡单一黑客操纵很多人的攻击。这正是PoW和PoS给你带来的:一种让计算机受到某些资源限制的方式。(蓝狐笔记注:也就是说,通过设立门槛,比如PoW的算力投入和PoS的代币投入,通过竞争性的方式,解决了谁有资格提议区块并由此获得奖励的问题。)
 
PoW如下:为获得提议区块的权利,你必须率先完成计算密集型的任务。模拟一个虚拟的计算机抛硬币任务,直到它得到连续100次的虚拟硬币的正面。这是计算密集型的,没有人能伪装成一百人,因为这受制于其算力。
 
然而,通过采用这种“抗女巫攻击”机制,人们已经建立了数千台计算机组成的矿场,以便在算力竞争中胜出,从而获得提议区块的权利。这些服务器矿场消耗巨量电力,因此它们集中于可获得最便宜电力的国家或地区。
 
那么,当大多数比特币矿工位于中国时,这对于去中心化意味着什么?这种地理上的中心化给系统的长久性构成了真正的威胁,因为这些挖矿公司很容易被监管。

一文读懂区块链的共识机制

一文读懂区块链的共识机制
转载请表明文章出处
本文地址:https://www.5zhuo.com/keji/49913.html

站长统计代码放在此处

联系QQ:1466191513 邮箱地址: