31

POW会被取代吗?共识算法的演变和作用

 4 years ago
source link: https://www.jinse.com/blockchain/551561.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

区块链系统不是基于参与者的诚实或信任,他们是不信任的系统。区块链确保网络安全的唯一方法是通过设置规则来强制每个参与者做正确的事情,规则可以包括投资或花钱的时间等等,使参与者甚至无法考虑做恶意的事情,这些规则称为 共识算法

mEz6byR.jpg!web

众所周知,区块链是网络参与者之间共享的分布式账本。没有中央机构可以验证交易并确定哪些交易有效,哪些交易无效。那么,我们如何确保网络参与者是诚实的? 网络中的每个人如何就他们要更新的账本形成共识呢?

区块链系统不是基于参与者的诚实或信任,他们是不信任的系统。区块链确保网络安全的唯一方法是通过设置规则来强制每个参与者做正确的事情,规则可以包括投资或花钱的时间等等,使参与者甚至无法考虑做恶意的事情,这些规则称为共识算法。目标是为每个人提供激励,使他们最有效地参与网络,这是区块链和不信任系统魔力的一部分。

拜占庭将军问题(BGP)

拜占庭将军问题是一个虚拟问题,说明了个人网络在达成共识方面面临的困难。

BGP如下:

伟大的拜占庭帝国试图征服一个以武力抵抗的城市,拜占庭帝国的将军们围绕着这个城镇,每个人都有自己的军队。因为只有一名将军和他的军队发动进攻,这座城市的防御才会攻不可破。如果他们将被击败,所有其他将领将不会再有机会了,他们需要所有军队一起战斗才能赢得战斗。

将军获胜的唯一方法是同时与所有军队进攻。他们必须进行通信,并且正在通过不可靠的信使进行通信。如果将军发出要攻击的消息,其他将军会接到攻击命令,该消息可能会被拦截,他们可能会要求撤退。将军们的问题是,他们需要就何时发动攻击达成共识,并且需要依靠不信任的信使系统来达成共识。听起来有点熟?共识算法解决了源自BGP的问题。

JnUVNnZ.jpg!web

拜占庭容错

拜占庭式容错(BFT)是指可以容忍属于BGP的故障类别的系统。如果我们将其翻译成故事的背景,那么就会存在一个可以容忍一个或多个将军叛徒的系统,即使收到正确的攻击信息,他们也可能会撤退。

容忍这种错误的共识称为BFT共识系统。即使某些方面未遵循共识规则,它仍然可以按预期工作和执行。

即使在区块链之外,BFT也是最具挑战性的问题之一。在故障非常严重威胁人类生命的安全系统(例如飞机引擎系统或核电厂)中,一直需要BFT。

为什么我们需要共识算法

区块链技术的概念并不新鲜。在比特币出现之前,我们已经采用了分布式系统,密码学和网络通信的方式,但是将所有内容粘合在一起并使之运行异常出色的“胶水”是共识算法。

中本聪(Satoshi Nakamoto)提出了一些规则,规则强制分布式网络的所有节点以绝对确定的方式就单个真理达成共识。它增加了博弈论的要素,通过提供正确的激励措施和惩罚不诚实的参与者,避免了系统中不道德的参与者增加虚假交易和障碍。

在区块链中没有共识算法的情况下,我们无法同意哪些交易和区块需要添加到区块链中。

矿工是网络的一个节点,负责创建区块并将其添加到区块链中。每个矿工将向区块链添加不同的区块和交易,从而使其成为其他区块链的独立区块链。每个节点将具有不同的区块链,并且其数据库上具有不同的交易。因此,这不是一个单一的事实。

比特币的工作证明

工作量证明(PoW)是第一个区块链共识算法。中本聪(Satoshi Nakamoto)在原始比特币白皮书中提出了这一建议。

在PoW区块链中,矿工是需要在网络中进行工作的。

· 从Mempool中选择要打包的在区块中的交易(所有交易等待打包在区块中的位置)

· 用选择的交易创建一个候选区块并将其哈希(对区块中的所有交易应用“单向”加密功能)以获取“ 默克尔根”。

· 从区块链的最后一个区块中选择“区块头”

· 花费大量计算能力来尝试对先前的块头和一个称为“ nonce”的随机数进行哈希处理,以获得小于预定义数字(目标)的结果。这意味着矿工每次都需要尝试随机的“ nonce”值,直到发现小于预定目标的结果为止

· 如果该矿工是网络中第一个找到“ nonce”的矿工,则将其添加到块中并将该块发送给所有同级

· 网络中的对等方可以快速验证随机数正确。如果正确的话,他们将区块添加到区块链的本地副本中以扩展所选区块链

· 如果有多个矿工找到随机数并开始在整个网络中传播该区块,则添加链最长的区块是最可信赖的区块,而矿工将选择该区块。

· 获胜块完成后,整个过程将再次开始

这种共识算法的主要优点是我们知道它可以工作,比特币已经存在了将近十年,并且从来没有出现关于共识算法的问题。

比特币网络一直在遭受攻击,并被证明是可靠的。然而,由于它需要的消耗资源挖矿,它开始被认为是一种传统技术,现在存在其他更“有效”的替代方案。

51%攻击

PoW区块链上存在一些风险,而51%的攻击是需要考虑的最重要的风险之一。51%的意思是,如果一个矿工或一组矿工的算力超过50%(计算能力比其余所有矿工更高),则有可能重新编写区块链,这意味着他们可以操作已在区块链中结算的交易。

让我们用一个例子更好地说明它:

莎拉(Sarah)是比特币区块链的矿工,由于某种原因,她能够获得网络51%的计算能力。现在,她可以将交易“ X”发送到网络。例如,验证该交易并将其添加到区块编号100。在方框100之后,又有两个方框添加到网络,因此我们进入方框102。

同时,莎拉(Sarah)希望将交易“ X”花费双倍,这意味着她希望将相同数量的比特币(BTC)发送到另一个地址。她将需要返回到块99,使用事务“ X”创建另一个块,并将其发送到另一个地址。然后,找到该块的PoW“ nonce”,将其添加到区块链,然后为以下两个块找到PoW“ nonce”,添加它们,然后创建另一个块以扩展块102以拥有最长的链。萨拉(Sarah)需要在其他任何矿工继续进行102区块之前执行此操作,因此她将需要在不到10分钟的时间内开采最少4块区块(平均创建区块时间)。

我们还需要考虑网络越强大,矿工之间的竞争力越强。这提高了PoW算法的难度,这意味着以这种幅度进行攻击更具挑战性。因此,在像比特币这样的网络中,这种攻击极不可能实现。尽管值得一提的是,在较小的系统中,参与者较少且总体算力较低,这种攻击是可能出现的。

以太坊的共识算法

Ethash

以太坊当前的共识算法称为Ethash,这是一种PoW算法。Ethash最初的目的是避免中心化。

PoW中的许多矿工都使用ASIC硬件(专用集成电路)来获得比标准GPU(显卡)更多的功能和优势。这导致网络更加集中,只有少数矿工拥有足够的资源来投资ASIC硬件。因此,它们控制着大多数算力。

Ethash数学问题经过明确设计,很难用ASIC(抗ASIC)解决,这意味着资源较少的矿工可能会更公平,因为使用ASIC硬件或GPU挖矿不会带来太大的变化。

另一个重要方面是,以太坊始终表示计划采用权益证明(PoS)算法,这使得在共识规则变更后不再适合的特定采矿硬件投资变得更加困难。当然,除非存在其他代币供ASIC与Ethash一起挖矿。近年来,我们看到用于Ethash的ASIC硬件有所增加,因为以太坊经典(Ethereum Classic)没有计划转向PoS,越来越多的山寨币正在使用Ethash。

Casper:权益证明

Casper是以太坊的新PoS共识算法的建议使用名称。它仍处于开发阶段,计划于2020年第一季度进行部署。

网络中持有特定数量的代币(在这种情况下为ETH)的任何人都可以成为验证者(矿工)。验证器轮流对下一个有效块提出建议并投票。每个验证人投票都有一个“权重”,具体取决于他们的保证金(抵押)的大小。如果验证者以不道德的方式行事,并提出了一个包含双重支出的区块,例如,大多数验证者拒绝了该区块,那么不道德的验证者将失去自己的本金。如果其他验证者接受他们提议的区块,验证者将获得ETH的奖励。因此,有消极和积极的动机确保验证者做正确的事。

但是,一些PoS批评家说,这可能导致中心化的富豪制度,因为一些富人可以拥有大量的ETH进行抵押。

另一个批评是继续所有分叉的链挖矿符合所有矿工的最大利益。这意味着如果两个矿工同时用两个不同的块扩展区块链,则在不同的块上会发生分叉。由于没有真正的挖矿成本,矿工可以挖两条链,以避免在叉上选择不正确的链,而不会从中获利,这可能导致潜在的双花攻击。

其他共识算法

PoW和PoS是最流行的共识算法。为什么?主要是因为它们已被使用或计划在当前最流行的区块链上使用:比特币和以太坊。

另一种流行的共识算法是“委托权益证明”(DPoS)。DPoS共识具有由代币持有者选举验证者。例如,EOS是最受欢迎的实现DPoS的区块链。在EOS中,由代币持有者选举出21个块验证器。定期对验证器进行改组,并下达命令以交付。验证程序需要发布一个块,如果验证者连续未能提供块或发布无效的块,则大家将其投出并替换。

共识规则会有所不同,并且会根据系统的重点和要求而有所不同。例如性能、稳定性、安全性、去中心化、匿名性等。其他不太常见的共识算法是:授权证明(PoA)、权重证明(PoWeight)、拜占庭容错(BFT)、信誉证明(PoR)等。

结论

共识算法是区块链技术的一部分。没有它们,区块链网络将永远无法达成共识。因此,不要增加他们提供的价值,最重要的是,PoW是十多年以来最安全,经过验证的共识算法。PoS距离很近,但尚未得到证实。

大多数共识算法的当前状态是“实验模式”。由于它们是相对较新的协议,因此需要随着时间的推移以及在不同的情况下进行测试。随着区块链技术用例的不断发展,这些协议的未来看起来还是很有希望。

来源| https://link.medium.com/acHjWQ9ts2

作者|Sheinix

编译| 头等仓(First.VIP)_ Mark

译文版权属头等仓 (First.VIP) 所有,任何转载请保留文末信息。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK