主页 > imtoken华为手机更新不了 > 一篇文章了解Dipperin与BTC、ETH、EOS共识算法的对比

一篇文章了解Dipperin与BTC、ETH、EOS共识算法的对比

imtoken华为手机更新不了 2023-01-19 05:35:30

简介:在当今的三大公链:BTC(PoW)、ETH(待转换为PoS)和EOS(DPoS)中,使用完全不同的共识算法,各有优势,也各有不足。通过对比这些主流公链采用的共识算法的优缺点,我们可以更清楚地了解Dipperin采用DPoW共识算法的底层逻辑。

由于区块链是去中心化的,也就是说,在一个区块链系统中,所有节点或参与者的地位都是平等的。由于参与者的地位是平等的,所以需要一个机制来决定谁有权打包区块,这个机制就是共识算法。区块链中共识算法的本质是谁有权打包区块(即记账权)的问题。谁拥有簿记权,谁就可以获得簿记的奖励。

BTC:工作量证明/PoW(工作量证明)

BTC是区块链的鼻祖,它使用的是PoW(Proof of Work),即工作量证明。这个概念首先由 Cynthia Dwork 和 Moni Naor 于 1993 年在一篇学术论文中提出,并于 1999 年由 Markus Jakobsson 和 AriJuels 关于工作量证明这一术语发表。PoW的核心设计思想是提出计算复杂度计算值的操作流程。用户通过一定的算力计算出满意的值,提供给服务提供者进行快速验证,从而防止服务被攻击和数据资源被滥用,保证数据交易的公平和安全。

在 BTC 中,PoW 工作实际上就是如何计算一个区块的目标哈希值。这个哈希值还必须满足一些必要的条件。这个条件实际上是区块链中的一个难度系数值。哈希值是否符合前 N 位全为 0 的事实,最终实现工作量证明。由于哈希值计算的随机性,用户只能通过大量的力竭来完成。

图1:比特币的共识机制原理

例如:

例如,现在给定一个固定字符串“Hello,Dipperin”,现在需要计算的挑战是将这个字符串与一个随机数(Nonce)连接起来,并通过 SHA256 哈希计算一个固定的 256 位长度的哈希值,如果至少得到的计算结果的前4位全为0,认为满足计算条件,证明得到的随机数(Nonce)值是工作量证明的有效随机数。

eth算法

中本聪最开始提出比特币的时候,比特币并没有被少数人认可,而当时的 PoW 无疑是最合适的:买币不方便,公众可以通过劳动和挖矿获得币,所以挖矿是最合适的。合适的。好办法。

然而,随着越来越多的人参与挖矿,PoW 的缺点也越来越被诟病:

1. 消耗大量能量。随着全网参与算力的增加,下一次调整的难度值可能会更高,能耗也会更严重。

2. 网络性能低,需要等待多次确认,容易分叉。

ETH(Casper):权益证明/PoS(权益证明)

虽然 PoW 存在这些缺点,但以太坊在当前版本中仍然使用 PoW 方法进行挖矿。不同于比特币的 PoW 挖矿算法,以太坊使用的是内存难处理的 PoW 算法。因为它的计算效率基本上与CPU无关,所以它与内存大小和内存带宽正相关。因此,通过共享内存大规模部署矿机芯片,在挖矿效率上不可能有线性或超线性的提升。这在一定程度上可以避免像比特币那样的算力中心化,但是仍然需要消耗大量的能量,所以以太坊一直声称要从 PoW 共识切换到 PoS 共识。

PoS 共识算法的优势很明显:能耗极少,可扩展性强。但它也有一个严重的问题:“Nothing at Stake”问题,即如果你在 PoS 链(蓝色链)上,如果你是验证者,在你完成验证并退回押金后,你可以再次对蓝色主链进行投票,形成一条从主链分支出来的红色链(如下图所示)。这时候,你分叉链后,就不用担心间接的不良后果了。无论发生什么,无论您的行为多么恶意,您总是可以输赢。这就是所谓的“无权益”问题,也是以太坊最新的 Casper 算法(一种 PoS 算法)必须解决的问题。

eth算法

图 2:“无赌注”双掷

Casper 通过引入质押(deposit)和检查点(checkpoint)等机制来解决“无质押”问题。(Vitalik Buterin 本人在他关于 Casper 的论文中):

1.长距离攻击问题:即一旦部分验证人联手退出质押,且其质押量长期占总质押量的三分之二以上,就可以使用历史绝对多数连接巩固两个相互冲突的检查站,而不必担心抵押品被没收。

2.灾难性崩溃的问题:虽然这种问题的概率比较小,但是理论上是有可能的。假设总存款超过三分之一的验证者同时崩溃,由于网络、计算机故障或他们自己是邪恶的,他们无法连接到网络。此时,由于全网无法达成共识,最终无法生成可以确认的链。Casper 对解决方案采用了“非活跃泄漏”的方法,即从总保证金中缓慢释放未投票的验证者的保证金,最终总保证金将下降到允许剩余活跃验证者大部分情况的水平. 但是这样做的问题是由于一些偶然或恶意的原因,整个网络可能被软分叉成两部分,除非节点放弃释放链上的押金,否则无法返回释放链。.

3.隐式中心化问题:如果用户持有更多的币,比如30%,那么理论上他有可能不断成为验证者,实现自己的币在全链占比超过50%。这会在链上产生 51% 的攻击问题。

之所以比特币和以太坊的共识算法各有问题,是因为区块链技术长期以来面临着一个“三重悖论”,也被称为“不可能三角”。也就是说,在分布式计算系统中,一致性、可用性和分区容错性是不相容的,最多只能考虑其中的两个。

eth算法

图 3:PoW 与 PoS

作为典型的分布式系统,区块链的共识算法是系统的安全性、可扩展性和去中心化之间的权衡。比特币的去中心化最强(当然,算力的中心化在所难免),但是相应地牺牲了它的可扩展性,每10分钟一个区块,每秒7笔交易,这个性能太低了。以太坊目前的 PoW 算法,一旦交易量过大,会导致大量交易在链上排队,造成链拥塞,交易成本上升,性能问题严重。至于以太坊将采用的 Capser 算法eth算法,从他们自己的分析来看,他们优先考虑一致性,因为它不允许在没有绝大多数验证者同意的情况下完成检查点,

EOS:委托权益证明/DPoS(委托权益证明)

EOS采用的DPoS(Proof of Share Equity)的原则是让每个持有EOS的人都可以投票,产生21个代表,可以理解为21个超级节点或矿池,而这21个超级节点的权利分别是彼此完全相等。从某种角度看,DPoS 有点像议会制或人大制。如果代表未能履行职责(轮到他们时,未能生成块),他们将从列表中删除,网络会选举新的超级节点来替换它们。这种机制的好处是可以大大减少参与验证和记账的节点数量,秒级实现共识验证;缺点是选举固定数量的见证人作为会计候选人可能不适合完全去中心化的场景。在具有少量网络节点的情况下,民选证人的代表性并不强。

图 4:PoS 与 DPoS

eth算法

Dipperin:确定性工作证明/DPoW(确定性工作证明)

针对 BTC、ETH 和 EOS 的共识算法及其存在的不足,Dipperin 提出了自己的共识算法——Deterministic Proof of Work (DPoW)。随机函数验证)、PBFT等共识和加密技术,以及防阻塞机制eth算法,在保证高扩展性的同时尽可能保证安全和去中心化。下面我们来介绍一下 Dipperin 的 DPoW 共识算法及其与三种主流公链共识算法的对比。

首先,对于 BTC 的 PoW 算法,Dipperin 做了一定的改进,使用了分片的工作量证明。基本原理如下:

1.分片服务器将整个工作量证明的搜索空间划分为多个部分,需要保证划分出来的单元格不会相互重叠,然后分配给为其工作的矿工节点.

2.矿工节点将在分配的搜索空间上计算哈希拼图以寻求完成工作量证明。矿工节点在计算过程中需要定期监听分片服务器的消息通知,防止分片服务器更新工作负载搜索空间或重新分配任务。一旦矿工完成工作量证明,他们就会向分片服务器提交符合条件的区块。

3.分片服务器收到矿工提交的区块后,将其提交给验证服务器集群,等待验证结果。

其次,Dipperin 引入了验证者节点的作用。这些验证者节点的主要作用是通过共识确认一个区块,只有在区块通过共识确认后才能加入区块链。这样就可以避免纯PoW算法确认时间过长的问题。

eth算法

Dipperin 使用 PBFT 共识算法在验证者之间达成共识。PBFT是共识算法中的强一致性和高效代表。但是,为了保证其安全和生存,2/3以上的共识节点必须是诚实节点。因此,如何从大多数节点中尽可能多地选择诚实节点作为验证者代表变得极为重要。

图 5:Dipperin 的原始 DPoW 共识算法

Dipperin 使用基于 VRF 的验证人抽签机制。为了抵御 Sybil 攻击,Dipperin 为每个用户设置了一个权重,这个权重来自于用户自身的声誉。Dipperin 的系统量化了用户的声誉,并用声誉来衡量用户的权重。验证人通过抽签方式选出,声誉高的人被选中的机会更高。Dipperin 假设网络中 2/3 的信誉良好,则可以保证链的安全性。Dipperin 认为,基于声誉的安全假设比基于计算能力或份额的安全假设更合理、更公平。

Reputation: Reputation=F (Stake, Performance, Nonce)

其中,Stake 存款的数量代表作恶的成本,Performance 代表用户过去作为验证者的表现,Nonce 是与账户相关的交易数量。在其他数据相同的情况下,交易次数越多,信誉值越高。

最后,Dipperin 使用密码折腾选择验证者。密码折腾的作用是选择少数区块提议者或验证者,他们的身份可以被所有其他用户验证。密码折腾的实现是VRF算法。对于已识别的输入(输入),用户可以使用私钥SK和哈希函数生成哈希值和证明。其他用户可以利用这个Hash值和Proof,结合用户的公钥PK,来验证这个Hash值是否是这个用户为Input生成的,并且在这个过程中,用户的私钥自始至终没有泄露。一个用户通过这种方式被认证,其他用户可以信任他在一定时间内成为验证者。这样,一组用户可以通过一个可识别的输入随机选择,并且他们的身份可以被其他人验证。Dipperin结合了用户的信誉R和一个VRF计算的随机数种子种子(用来充当用户的幸运值,防止信誉高的人一直被选中,并为新的参与者提供一些机会)。

这种抽签机制保证了根据用户的权重,只随机选择一小部分用户,其身份可以被所有用户验证。对于攻击者来说,随机结果无法提前预测,也无法被操纵。Dipperin 的抽签机制提供客观的安全性,即整个过程是客观的,决策完全通过计算做出,人为干预无法影响这个过程。

这种客观的安全性也可以避免 EOS 代表选举的贿赂问题。Dipperin 的验证者选举过程是透明的。因为没有人为因素来操纵选举结果,所以不存在选举贿赂的可能。此外,没有人可以预测选举的结果,因此矿工不可能贿赂验证者来打包他们的区块。

总的来说,Dipperin 的 DPoW 共识算法综合考虑了共识的去中心化程度和交易的效率,可以做到秒出块,效率达到 2000TPS。VRF 密码用于抛签,避免了 PoS 算法的公平性和效率问题。DPoS 中的中心化问题。