主页 > imtoken钱包注册 > 4种共识机制详解
4种共识机制详解
区块链科普:4种共识机制详解
区块链作为一种按时间顺序存储数据的数据结构,可以支持不同的共识机制。 共识机制是区块链技术的重要组成部分。 区块链共识机制的目标是让所有诚实节点在满足两个属性:一致性和有效性的同时,保持对区块链的一致看法。
区块链的自信任主要体现在分布在区块链中的用户无需信任交易对方或任何中心化机构,只需要信任区块链协议即可实现交易,而这种自信任的前提是区块链的共识机制(consensus)。 共识机制可以保证系统中的每个节点都会自发地、诚实地遵守协议中预先设定的规则,判断每条记录的真实性,最终将真实的记录记录到区块链中。
共识机制是区块链技术的核心,它从基础层面决定了区块链系统的安全性、可扩展性和分布式特性。
火将火币
火币集团创新的数字资产国际站,服务于全球专业交易用户。
APP下载官网注册
4 共识机制
我们现在将通过一系列的共识机制来解决拜占庭将军问题。
工作证明
比特币创造者中本聪通过发明工作量证明协议解决了这个问题。 首先,让我们看看它在拜占庭将军问题下是如何工作的。
假设左边的军队想向右边的军队发送一条名为“星期一进攻”的消息,他们将遵循特定的步骤。
首先,他们会在原文中附加一个“随机数”。 nonce 可以是任何随机的十六进制值。 之后,他们用随机数对文本进行哈希处理并查看结果。 假设军队决定只共享经过哈希处理以给出以 5 个“0”开头的结果的消息。
如果满足哈希条件,他们会将消息的哈希发送给消息发送者。 如果不是,那么他们将不断随机更改 nonce 的值,直到获得所需的结果。 此操作繁琐且耗时,并且需要大量的计算能力。
如果信使确实被城市捕获,并且消息被篡改,哈希值本身将发生巨大变化,具体取决于哈希函数属性。 如果右边的将军看到散列消息不是以所需的“0”开头,那么他们可以简单地取消攻击。
但是,这可能存在漏洞。
没有哈希函数是 100% 无冲突的。 那么,如果城堡收到该消息,对其进行篡改,并相应地更改随机数,直到获得所需的结果(带有所需的“0”),该怎么办? 这将非常耗时,但仍有可能。 为了解决这个问题,将军们会动用大量的数字资源。
假设不是左边的将军向右边的将军发送消息,而是左边的三位将军共同向右边的所有将军发送消息。 为此,他们可以制作自己的消息,然后对累积的消息进行哈希处理,将随机数附加到生成的哈希值中,然后再次对其进行哈希处理。 这次他们想要一条以六个“0”开头的消息。
显然,这会非常耗时,但是这一次,如果信使真的被城堡抓住了,他们将花费大量时间,可能是数年时间来篡改累积的消息并为哈希找到相应的随机数。 所以如果将军派出多个使者而不是一个使者,他们会在城堡计算到一半时被攻击并摧毁。
右边的将军很容易做到。 他们所要做的就是在消息中附加将提供给他们的正确随机数,对它们进行哈希处理,然后查看哈希值是否匹配。 哈希字符串非常容易,这本质上是工作量证明背后的过程。
为合适的哈希目标寻找随机数的过程应该是非常困难和耗时的。 但是,检查结果以查看它们是否未被篡改的过程应该非常简单。 因此,我们想总结一下工作量证明协议如何与区块链一起工作。
- 矿工解决密码难题以“挖掘”一个块以添加到区块链中。 这个过程需要大量的能量和计算。 密码谜题的设计方式非常费力,会给系统带来负担。
- 当矿工解决密码难题时,他们将他们的区块提交给网络进行验证。 验证一个块是否属于链是一个非常简单的过程。
在解决拜占庭将军问题时,工作量证明机制无疑回答了很多问题,但是工作量证明机制还存在一些问题:
- 首先,工作量证明是一个非常低效的过程,因为它消耗大量的精力和时间;
- 其次,能够负担得起更快、更强大的 ASIC 的个人和组织通常比其他人拥有更好的挖矿机会;
- 最后,比特币并没有像它应该的那样去中心化。
我们来看看算力分布图:
我们发现大约 65% 的算力分布在 5 个矿池之间!
理论上,这些大型矿池可以相互合作,发起对比特币网络进行 51% 攻击的交易。
使用工作量证明协议的典型公链:比特币区块链
股权证明
以太坊即将计划从工作证明 (POW) 转移到股权证明 (POS)。 股权证明将使整个挖矿过程虚拟化,并用验证者取代矿工。 以下是该过程的工作原理:
- 验证者必须锁定部分数字货币作为权益证明。
- 之后,他们将开始验证块。 即:当他们找到一个他们认为可以添加到链中的区块时,他们将通过对其下注来验证它。
- 如果添加了一个区块,验证者将获得与其赌注成比例的奖励。
事实证明,POS 协议比 POW 协议更加资源友好。 在 POW 中,可能需要浪费大量的资源来配合协议工作,这从根本上说是为了浪费资源而浪费资源。 这也是权益证明的最大障碍。
以太坊开发人员最终计划采用股权证明。 然而,在这样做之前,他们必须解决权益证明 (POS) 的最大缺陷之一。
让我们考虑一下这种情况:
假设我们有像上面这样的情况:有一条主链和一条红链,它们是从主链本身分叉出来的。 那么有什么办法可以阻止恶意矿工挖红块,强制硬分叉呢?
在工作量证明 (POW) 系统中,可以减轻这种风险。
假设恶意矿工爱丽丝要在红链上挖矿。 即使她将所有的算力都投入其中,也没有其他矿工会加入她的新链。 其他人仍然会继续在蓝链上挖矿,因为在更长的链上挖矿更有利可图且无风险。
但请记住,POW 在资源方面非常昂贵。
矿工在一个即将被网络拒绝的区块上浪费这么多资源是没有意义的。 因此,在工作量证明系统中避免了硬分叉,因为攻击者必须浪费大量金钱。
但是,使用 POS 时情况看起来有些不同。
如果你是验证者,你只要把钱放在红蓝链上,不用担心被打。 无论发生什么事,无论你的行为多么恶意,你总是赢,没有什么可输的。
这就是所谓的“无利害关系”问题。
为了整合 POS 共识系统,加密货币需要解决这个问题,而以太坊将通过调整其 Casper 协议以一种非常有趣的方式实现这一点。
Casper 是以太坊选择的 POS 协议。 当整个团队忙于创建它时,Vlad Zamfir 通常被认为是“Casper 的代言人”。
那么,Casper 协议与其他权益证明协议有何不同? Casper 实施了一个惩罚所有恶意元素的程序。 这是 POS 在 Casper 协议下的工作方式:
- 首先,验证者将质押部分以太币作为权益证明。
- 之后,他们将开始验证块。 即:当他们找到一个他们认为可以添加到链中的区块时,他们将通过对其下注来验证它。
- 如果添加了一个区块,验证者将获得与其赌注成比例的奖励。
- 但是,如果验证者以恶意方式行事并试图做“无所事事”,他们将立即受到谴责,并且他们所有抵押的以太币将被削减。
正是因为 Casper 协议被设计为工作在去信任的系统中,具有更高的拜占庭容错能力。 任何以恶意/拜占庭方式行事的人都会立即受到削减股份的惩罚。 这与大多数其他 POS 协议不同。 恶意分子有失去的东西,所以不会有什么危险。 如果以太坊计划扩展,实施 Casper 协议和权益证明至关重要。
权益证明协议的典型代表:以太坊区块链
委托权益证明
现在,我们来看看一种有趣的权益证明形式,称为 DPOS 或委托权益证明。 EOS 正在使用这种共识机制来扩展到每秒数百万笔交易。 任何在 EOS 区块链上持有代币的人都可以通过连续投票系统选择区块生产者。 任何人都可以参与区块生产者的选举,他们将有机会生产与所有其他生产者的总票数成正比的区块。
- 每轮开始时,选出 21 个区块生产者。 系统自动选出前 20 名,而第 21 名的选择与他们相对于其他生产者的得票成正比。
- 然后,使用从块时间派生的伪随机数对生产者进行洗牌。 这样做是为了确保与所有其他生产者的平衡连接。
- 为确保正常出块并保持 3 秒的出块时间,生产者因不参与而受到惩罚,将其从考虑中移除。 生产者必须每 24 小时至少生产一个区块。
DPOS 系统不会遇到麻烦,因为生产者必须竞争合作而不是寻找区块。 在分叉的情况下,共识会自动切换到最长的链。
DPOS 区块链通常有 100% 的区块生产者参与。 通常,99.9% 的节点会在广播后的 1.5 秒内确认交易。 为了保证交易的绝对有效性,节点只需要等待15/21(即2/3多数)的生产者达成共识。
那么,如果由于疏忽或恶意导致分叉,会发生什么情况呢?
默认情况下,所有节点都不会切换到不包含任何未由 15/21 生产者最终确定的块的分叉。 无论链长如何,都是如此。 每个区块都必须在 15 月 21 日获得批准才能被视为链的一部分。
由于出块时间短,无论是在主链还是副链上的节点都可以在9秒内得到告警,原因很简单。 请记住,每个块之间经过的平均时间为 3 秒。
- 如果节点连续错过 2 个区块,它们有 95% 的机会进入少数分支。
- 如果一个节点错过了 3 个区块,他们有 99% 的机会在少数链上。
作为股权证明或 TAPOS 的交易是 EOS 软件的一项功能。 系统中的每笔交易都必须具有最新区块头的哈希值。 这将执行以下操作:
- 防止重播不同链上的交易。
- 向网络发送用户及其兴趣在特定分支上的信号。
这可以防止验证者对其他链进行恶意操作,并将拥有快速有效的权益证明协议。 但是有什么陷阱吗? 根据以太坊联合创始人 Vitalik Buterin 的说法,DPOS 系统无法协调游戏。
考虑以下矩阵:
在这个矩阵中,有两个纳什均衡:(A,A)和(B,B),偏离任何一个状态对它们都没有好处。 博弈论的核心点是,如何说服人们从(A,A)切换到(B,B)? 如果只有一小部分人参与,则相对简单,只需通过电话或电子邮件进行协调即可。 然而,当我们涉及一大群人时,这种情况就会改变。
囚徒困境与协调问题的根本区别在于,在囚徒困境中,双方都必须选择(B,B),因为(A,A)虽然是道德上更好的解决方案,但这是最有利可图的选择。 在协调问题中,这与道德或收益无关,而是与一个人从一种状态转移到另一种状态的动机有关。 为什么一大群人要改变他们做事的方式?
当只有少数群体改变状态而大多数人没有改变状态时协调博弈失败比特币共识机制是什么,相反,当大多数群体改变状态时协调博弈成功。 让我们看一个例子。
假设我们要将语言更改为基于符号的语言。 示例:原始语句:“给我你的电话号码?” 新声明:“#?”
如果你只说这种语言,你就会失败,因为大多数人不会理解你在说什么,而且你会被谈话所避开,也就是说你的回报很低,而且你没有改变的动力。
但是,如果您社区中的大多数人都切换到这种语言并且只使用它,那么您将不得不更改语言,否则您将永远无法适应。 现在,加入这个团体的动力非常强烈。
DPOS系统可以利用协调博弈论来弥补其不足。 在某些情况下,块生产者可能会偏爱某些与其余节点不匹配的情况。
假设主节点想要将链从状态 A 转换到状态 B,需要帮助整个链与它们进行相同的转换可能是一项艰巨的任务,尤其是在其他节点反对状态 B 的情况下。只有时间才能证明 EOS 是否能够正确整合DPOS。
使用委托权益证明的协议的典型代表:EOS 区块链
授权的拜占庭容错算法
下面说说NEO对共识机制的选择。
想象一个拥有许多公民的国家“Blockgeeks”。 这些公民中的每一个都选出一名代表来代表他们并让他们开心。 这些代表的工作是通过法律,让公民开心,如果他们的工作做得不好比特币共识机制是什么,下次公民可以简单地投票给另一个代表。
那么代表如何通过法律呢?
随机选择一名代表作为发言人。 议长研究公民的所有要求并制定法律。 然后他们计算这些法律的“幸福系数”,看看这个数字是否足以让公民满意。 他们将其传递给代表。 然后,代表们分别检查发言人的计算。 如果发言人的人数与代表的人数相符,则可以; 否则,不赞成。 66% 的代表需要批准才能通过法律。 如果没有得到多数人的批准,将选出新的领导者并重新开始该过程。
我们来看看这种共识决策模型在区块链中的应用。
公民是拥有 NEO 代币(又名普通节点)的人。 代表是簿记节点。 要成为记账节点,需要满足一定的条件:拥有专用设备、专用互联网连接和一定数量的 GAS(根据 basiccrypto 的文章,1000)。
- “公民的需求”基本上是代币持有者进行的各种交易。
- “法律”是当前要添加到区块链的区块。
- “Happiness Factor”是当前区块的哈希值。
现在,有两种情况其中一名演员可能以恶意方式行事。 让我们来看看:
在这种情况下,发言人向两名代表发送了一条恶意消息 B,并向一名代表发送了一条准确的消息。 由于多数规则,这可以很容易地缓解。 两名代表将看到他们的哈希值与演讲者的哈希值不匹配,而一名代表将看到他们的哈希值完全匹配。 然而,三分之二的人会拒绝该提案,因此无法达成共识。 之后,议长将被废除,议长将重新选举。
发言人向所有代表发送了正确的消息,但其中一名代表决定恶意行事,并表示他的号码与发言人的号码不符。
然而,由于 3 名代表中有 2 名是非恶意的,他们将批准该法律,该法律将获得通过,因为有 66% 的共识。
可以看出,dBFT 提供了一种非常有趣的共识机制形式。
授权拜占庭容错算法的典型代表:NEO区块链
总结
这些是公共链中使用的 4 种最常见的共识机制。 然而,还有更多的共识机制可以提供选择。 他们是:
- 容量证明
- 经过时间的证明
- 工作量证明(entangled proof of work and knowledge, EWoK)集成到知识证明中
- 工作量证明(entangled proof of work and knowledge, EWoK)集成到知识证明中
虽然工作量证明和权益证明无疑是最受欢迎的选择,但不时出现更新的共识机制。 没有“完美”的共识机制,它可能永远不会出现,但未来新的公链往往会诞生新的共识协议。
本期总结
区块链共识机制是区块链技术的核心,未来的发展趋势主要包括以下几点:
安全层面:设计并完善可证明安全的区块链共识机制,解决POS机制面临的安全威胁; 将经典的分布式共识算法与区块链技术相结合,利用委员会实现强一致性,解决委员会重构安全问题;
扩展层面:采用分片技术,通过计算分片、通信分片和存储分片,实现交易处理的可扩展性,解决跨分片交易问题; 使用DAG技术,采用并行块的架构,使得区块链同时能够容纳更多的交易;
启动级:通过安全多方计算等密码学技术,完成协议在不可信任环境下的自启动,解决区块链协议的初始化问题; 通过对区块链历史数据的合理切割,新节点可以快速获取当前区块链状态,参与共识运行,解决新增节点的启动问题;
激励层面:设计合理可行的奖惩机制,以理性用户为出发点,鼓励用户以诚实的行为参与共识机制的运行维护; 合理惩处恶意用户,对举报者给予一定奖励。