主页 > imtoken如何区分官网 > 区块链共识算法介绍

区块链共识算法介绍

imtoken如何区分官网 2023-11-17 05:07:35

本文大纲:

1、什么是共识机制?

2、主流共识算法有哪些?

3、目前主流区块链(比特币、以太坊等)使用哪种共识算法?

4、哪种共识算法最好?

1、什么是共识机制?

我们都知道,区块链可以看成是记录所有交易的分布式公共账本,区块链网络中的每个参与者都将其视为所有权的权威记录。

公共账本的历史数据不可篡改,只能后期添加。每个节点的权限相同,这就带来了一个问题:

公共账本的每个新区块由谁负责编写?

因为所有节点都是一样的,如果所有节点同时写账本数据,那么数据肯定会不一致。

因此,需要一种机制来保证区块链中的每个区块只能被一个节点写入。如何选择写入账本数据的节点是共识机制。让平等的参与者按某种顺序达成一致。

例如,

现在有一个中央数据库,所有客户端都可以查询比特币的算法是谁规定的,每个客户端都拥有相同的权限,但是如果你想增加、删除、修改数据库,对不起,一次只允许一个客户端操作。通俗的说,就是让数据库串行修改数据库。通过一种算法机制来确定客户端的操作。这种机制是一种共识机制。所谓共识,就是在一个人人平等的社会中,需要大家共同形成共识,会产生一个操作者和一个临时决策者,代表大家进行中心化操作。每个人都遵循这个共识来保持去中心化。网络世界。

2、主流共识算法有哪些?

区块链中的共识算法仍然是分布式系统中最重要的一致性问题:

如何确保分布式网络中的数据一致性。

说到一致性问题,不得不提著名的拜占庭将军问题。这是 Leslie Lamport 在 1982 年提出的一个虚构的模型来解释一致性问题。拜占庭是古东罗马帝国的首都。由于地域辽阔,多个守在边疆的将军(系统中的多个节点)需要通过信使传递消息以达成某些共识决策。但是由于将军中可能存在叛徒(系统中的节点错误),这些叛徒会尝试向不同的将军发送不同的消息,试图干扰共识。

具体细节可以google,这里我只说结论:

Leslie Lamport 证明,当叛逃者的数量不超过 1/3 时,无论叛逃者如何,都有一个有效的算法。折腾,忠诚的将领总能达成一致的结果。如果叛变者太多,则无法保证一致性。

拜占庭将军问题有两种情况:

1)对于非拜占庭错误,一般包括Paxos、Raft及其变种。

分布式数据库设计一般基于paxos或raft算法。

关于paxos原理,可以参考我之前写的一篇文章:

碧霞:理解了这两点也就明白了paxos协议的本质​​zhuanlan.zhihu.com

数据库基本采用raft和paxos的变种:

2)对于可以容忍拜占庭错误的情况,一般包括PBFT系列、PoW系列算法等。

从概率的角度来看,PBFT系列算法是确定性的,一旦达成共识是不可逆的;而PoW系列算法是不确定的,随着时间的推移,被推翻的概率越来越小。

具体共识算法介绍:

1)拜占庭共识算法系列PBFT/DBFT机制:

拜占庭假设是现实世界的模型,由于硬件错误、网络拥塞或断开连接以及恶意攻击,计算机和网络可能会出现不可预测的行为。拜占庭容错协议必须处理这些故障,这些协议也必须满足要解决的问题所要求的规范。这些算法通常以它们的弹性 t 为特征,它表示算法可以处理的错误过程的数量。许多经典算法问题只有在n≥3t+1时才能解决,例如拜占庭将军问题,其中n是系统中进程的总数。

拜占庭容错可以容纳近 1/3 的故障节点错误。 IBM 创建的 Hyperledger 使用该算法作为共识算法。

DBFT机制是通过权益来选择记账人,然后记账人通过拜占庭容错算法达成共识。这种方法的优点是:

缺点:

拜占庭一般问题,大家可以自己在网上找资料,很多这里不再赘述。

2)工作量证明

Proof of Work,工作量证明,通过计算来猜测一个值(nonce)以解决指定的哈希问题(衍生自 hashcash)。保证一段时间内只有少数合法提案可以出现在系统中。

同时,这几个合法的提案会在网络中广播,接收到的用户会根据它认为最长的链继续计算拼图。因此,系统中可能会出现链分叉(forks),但最终一条链会成为最长的链。

3)权益证明 PoS

Proof of Stake 于 2013 年提出,最早在 Peercoin 系统中实现,类似于现实生活中的股东机制,拥有更多股份的人更容易获得记账权。

典型的流程是通过押金(代币、资产、声誉等具有价值属性的物品)押注一个合法区块成为新区块,收益为抵押资金服务费的利息和交易。提供的保证金越多(例如通过转移货币记录)作为证明,获得记账权的可能性就越大。合法的簿记员获得报酬。

PoS 是一种尝试解决 PoW 中浪费大量资源的缺点。恶意参与者将面临押金被没收的风险,即丧失经济利益。

一般来说,对于PoS来说,需要掌握比全网更多的资源,才能影响最终的结果。这也很容易理解。三个人投票,前两个支持一方。此时,由第三方投票决定最终结果。

4)授权权益证明机制DPOS

PoS的改进算法,DPOS的原理与POS类似。与 POS 的主要区别在于节点选举若干个代理,这些代理由代理验证和计费。

虽然PoW机制和PoS机制都可以有效解决记账行为的共识问题,但现有的比特币PoW机制纯粹依赖算力,造成了一群专业从事挖矿的矿工。完全脱离了比特币社区,一些矿池的巨大算力变成了另一个中心,这与比特币的去中心化理念相矛盾。 PoS 机制虽然考虑到 PoW 的不足,但基于权益余额的选择会导致首富账户的权力更大,并可能主导记账权。

委托权益证明(DPoS)机制的出现是基于解决PoW机制和PoS机制的不足。

当然,随着技术的发展,未来可能会诞生更好的共识机制。

3、目前主流区块链使用哪些共识算法?

主流区块链采用的共识算法总结如下:

图片

图片

1)PoW共识算法代表:比特币&莱特币&以太坊

比特币使用PoW(Proof of Work),工作量证明,通过计算猜测一个值(nonce),来解决指定的哈希问题。

直接看比特币源码:

图片

图片

以下参数是必需的:

块的版本版本

上一个区块的hash值:prev_hash

需要写交易记录的哈希树的值:merkle_root

更新时间:ntime

当前难度:nbits

挖掘的过程是找到x使得以下方程成立:

SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET

上式中x的范围是0~2^32,TARGET可以根据当前难度计算。由于hash的特性,找到这样一个x只能靠蛮力来完成。

PoW共识算法的核心是所有节点都通过暴力搜索x,所以上面的等式成立。

谁找到第一个将获得写这个块的权利或获得奖励。因此,pow共识机制对所有节点都是公平的,谁的算力越强,获得写入权的机会就越高。

以太坊也使用PoW工作量证明算法,具体实现算法称为(Ethash)

详情请参考官方wiki:

2) PoS 机制代表:Peercoin & Nxt

Peercoin 的权益证明机制结合了随机化和币龄的概念。至少 30 天未使用的币可以参加下一个区块的竞争。更大的一组硬币有更大的机会签署下一个区块。然而,一旦一个币的权益被用于签署一个区块,币龄将被重置为零,因此必须等待至少 30 天才能签署另一个区块。同时,为了防止非常古老或非常大的利益控制区块链,找到下一个区块的最大概率在 90 天后达到最大值,这个过程保护了网络并随着时间的推移逐渐产生新的硬币而不消耗大量的计算能力。 Peercoin 的开发人员声称这将使恶意攻击变得困难,因为没有集中式矿池要求,并且购买超过一半硬币的开销似乎超过了获得 51% 工作量证明所需的哈希能力。

Proof of Stake 必须使用某种方法来定义任何区块链中的下一个合法区块,基于账户余额的选择会导致中心化,例如,单个最富有的成员可能具有长期优势。为此,已经设计了其他不同的方法来选择下一个合法区块。

NXT 使用随机的方法来预测下一个合法区块,并使用公式找到最小哈希值结合权益大小。由于权益是公开的,因此每个节点都可以合理准确地预测哪个账户有权构建区块。

3)DPoS 共识算法代表:Bitshare & EOS

Bitshare是一种采用DPoS机制的加密货币。它希望通过引入一个技术民主层来减少中心化的负面影响。

比特股引入了见证人的概念,见证人可以产生区块,每个持有比特股的人都可以为见证人投票。 The top N (N is usually defined as 101) candidates from the total number of consent votes can be elected as witnesses, and the number of elected witnesses (N) must satisfy: at least half of the participants believe that N足够了。去中心化。

每个维护期(1 天)更新一次候选见证人列表。然后随机排列见证人,每个见证人有 2 秒的授权时间依次生成区块。如果见证人在给定的时间片内无法出块,则出块权限将移交给下一个时间片对应的见证人。这种 DPoS 的设计使区块的生成更快、更节能。 DPoS充分利用为了通过股东投票以公平、民主的方式达成共识,他们投票的N个见证人可以被视为N个矿池,这N个矿池的权利是完全平等的这些见证人(矿池)随时可以被投票取代,只要他们提供的算力不稳定、电脑宕机比特币的算法是谁规定的,或者他们试图利用自己的力量作恶。

BitShares 还设计了另一种类型的活动,代表活动。 Elected delegates have the privilege to propose changes to network parameters, including transaction fees, block size, witness fees, and block interval.如果大多数代表同意提议的更改,则持有人有两周的时间进行审查。在此期间,代表可以被免职,提议的更改可以被撤销。这样的设计保证了代表在技术上没有直接修改参数的权利,并且所有网络参数的变化最终都要得到股东的批准。

4、哪种共识算法最好?

每个共识算法都有自己的应用场景,没有绝对的好坏之分。选择哪种共识来实现区块链取决于什么样的网络和数据。

最近反感一个现象:很多新的区块链都说他们的共识算法是PoA,PoB~PoZ(a到z的字母都用得差不多了)。完结了),动辄颠覆,但其实是对上面介绍的共识算法的模仿或小改造,让刚接触区块链行业的人很迷茫,觉得自己那么高大上,纯属吓人。人。