区块链中的共识机制以及共识算法

什么是共识

共识,从字面上来看,是在某方面达成一致。打个比方,一个部门最近来了几位新同事,部门主管为了欢迎新同事的加入,以能让新同事融入到新环境,提议下班后聚个餐,对于聚餐了,大伙对此举双手赞成,毕竟能蹭个免费餐的事并不是每月都有的,这时便可以说,大家对下班后聚餐迎新达成了一致认同。

什么是共识机制

共识机制是一整套由协议、激励和想法构成的体系,使得整个网络的节点能够就区块链状态达成一致。

共识机制类型

我们知道,区块链是一个分布式的去中心化网络,它提供了不可更改性、隐私性、安全性和透明度。没有中央机构存在来验证和核实交易,但区块链中的每一笔交易都被认为是完全安全和核实的。这是可能的,因为共识协议的存在,这是任何区块链网络的核心部分。共识算法是一个程序,通过这个程序,区块链网络的所有对等人就分布式账本的当前状态达成共同协议。通过这种方式,共识算法实现了区块链网络的可靠性,并在分布式计算环境中的未知对等体之间建立了信任。从本质上讲,共识协议确保每一个添加到区块链的新区块都是区块链中所有节点同意的唯一版本的真相。区块链共识协议包括一些具体的目标,如达成协议、协作、合作、每个节点的平等权利,以及每个节点在共识过程中的强制性参与。因此,共识算法的目的是找到一个共同的协议,对整个网络来说是一个胜利。现在,我们将讨论各种共识算法以及它们是如何工作的。

1、基于工作证明(Proof of Work PoW

工作证明是用来选择下一个区块生成的矿工。比特币使用这种PoW共识算法。这种算法的中心思想是解决一个复杂的数学难题,并轻松地给出一个解决方案。这个数学谜题需要大量的计算能力,因此,尽快解决这个谜题的节点就可以开采下一个区块。

工作证明共识是目前流通的大多数加密货币的首选机制。该算法用于验证交易并在区块链中创建一个新的区块。工作证明(PoW)的想法最早由Cynthia Dwork和Moni Naor于1993年发表,后来由中本聪在2008年的比特币论文中应用。工作证明 "一词是由Markus Jakobsson和Ari Juels在1999年的出版物中首次使用。

以太坊(初期)、莱特币和比特币等加密货币目前都在使用PoW。

共识机制的目的是使所有的节点达成一致,也就是在一个节点不信任对方的环境中,相互信任。

新区块中的所有交易被验证,然后新区块被添加到区块链上。
该区块将被添加到具有最长区块高度的链上(。
矿工(网络上的特殊计算机)进行计算工作,解决一个复杂的数学问题,将区块添加到网络上,因此被称为工作证明。
随着时间的推移,这个数学问题变得更加复杂。

PoW的特点

主要有两个特点促成了这个共识协议的广泛流行,它们是。

很难找到一个数学问题的解决方案。
验证该解决方案的正确性是很容易的。

PoW是如何工作的?

PoW共识算法涉及通过采矿过程验证交易。

挖矿

工作证明(Proof of Work)共识算法涉及解决一个具有计算挑战性的难题,以便在比特币区块链中创建新的区块。这个过程被称为 “挖矿”,而网络中从事挖矿的节点被称为 “矿工”。

挖矿交易的激励在于经济回报,竞争的矿工会得到6.25个比特币和小额交易费的奖励。
这个奖励会随着时间的推移而减少其当前价值的一半。

挖矿中的能源和时间消耗

验证要添加的区块中的交易,将这些交易按时间顺序组织到区块中,并向整个网络宣布新开采的区块,这个过程不需要花费太多的能量和时间。

消耗能量的部分是解决 “硬数学问题”,将新区块与有效区块链中的最后一个区块联系起来。
当矿工最终找到正确的解决方案时,节点会同时向整个网络广播,获得PoW协议提供的加密货币奖(奖励)。

挖矿奖励

目前,在比特币网络中开采一个区块会给获胜的矿工6.25个比特币。
赢得的比特币的数量每四年减半。所以,下一次比特币数量的减少是在2024年左右(以目前的速度和增长)。
随着更多矿工的出现,挖掘新区块的时间也不可避免地变短。
这意味着新区块的发现速度会更快。为了持续地每10分钟找到一个区块(这是比特币开发者认为在达到2100万的最大数量(以目前的速度预计在2140年左右)之前,新币的稳定和递减所需的时间),比特币网络会定期改变开采新区块的难度水平。

比特币的PoW系统

比特币使用Hashcash工作证明系统作为采矿基础。这个 "硬数学问题 "可以用一种抽象的方式写出来,就像下面这样。

给定数据A,找到一个数字x,使x的哈希值附加到A的结果是一个小于B的数字。

矿工们将一组交易捆绑成一个区块,并试图进行开采。为了挖矿,必须解决一个艰难的数学问题。
这个问题被称为工作证明问题,必须解决这个问题,以表明矿工在找出问题的解决方案方面做了一些工作,因此,开采的区块必须是有效的。
该问题的答案需要比区块的哈希值低,才能被接受,这被称为 “目标哈希值”。

目标哈希值是一个数字,哈希值区块的头必须等于或小于一个新的区块,连同奖励,将被授予矿工。

目标值越低,生成一个区块就越困难。

矿工继续测试不同的唯一值(称为nonce(s)),直到产生一个合适的值。
成功解决该问题的矿工将获得比特币奖励,并通过广播将该区块添加到区块链中。

注意:目标哈希值每2016个区块调整一次,或者大约每2周调整一次。所有矿工立即停止在上述区块上的工作,开始挖掘下一个区块。

PoW中使用的常见加密协议:最广泛使用的工作证明共识是基于SHA-256,作为比特币的一部分被引入。其他包括Scrypt、SHA-3、scrypt-jane、scrypt-n等。

工作证明的挑战

工作证明的共识机制有以下一些问题。

51%的风险。如果一个控制实体在网络中拥有51%或超过51%的节点,该实体可以通过获得网络的大多数来破坏区块链。
耗费时间。矿工必须检查许多nonce值,以找到必须解决的谜题的正确解决方案来挖掘区块,这是一个耗时的过程。
资源消耗。矿工为了找到难解的数学谜题,要消耗大量的计算能力。这导致了宝贵资源(金钱、能源、空间、硬件)的浪费。预计到2018年底,全球0.3%的电力将用于验证交易。
不是瞬时交易。交易确认大约需要10-60分钟。因此,它不是瞬时交易;因为需要一些时间来挖掘交易并将其添加到区块链上,从而承诺交易。

2、基于权益证明(Proof of Stake PoS

这是最常见的PoW的替代品。以太坊已经从PoW转为PoS共识。在这种共识算法中,验证者不是投资于昂贵的硬件来解决一个复杂的难题,而是通过锁定他们的一些硬币作为赌注来投资于系统的硬币。之后,所有验证者将开始验证区块。验证者如果发现他们认为可以添加到链上的区块,就会通过下注来验证区块。根据区块链中实际添加的区块,所有验证者都会得到与他们的赌注成比例的奖励,他们的赌注也会相应增加。最后,根据他们在网络中的经济利益,选择一个验证者来生成新的区块。因此,PoS通过激励机制来鼓励验证者达成协议。

旨在实现区块链的分布式共识。这种实现共识的方式最早是由量子力学在此提出的,后来Sunny King和他的同行写了一篇关于它的论文。这导致了基于Proof-of-Stake(PoS)的Peercoin。

赌注是我们押在某个结果上的价值/金钱。这个过程被称为赌注。

为什么是股权证明。

在股权证明之前,最流行的实现分布式共识的方式是通过工作证明(在比特币中实施)。但是,工作证明是相当耗能的(开采比特币时的电能)。所以,基于工作证明的共识机制,如果一个实体拥有更多的计算资源,就会增加其挖掘新区块的机会。除了上面两点,基于PoW的共识机制还有其他弱点,我们将在后面讨论。在这种情况下,基于权益证明的机制有其优点。

什么是权益证明(Proof-of-Stake)。

从名称上可以理解,网络上的节点押上一定数量的加密货币,成为验证新区块的候选人,并从中获得费用。然后,一个算法从候选人池中选择将验证新区块的节点。这种选择算法将赌注的数量(加密货币的数量)与其他因素(如基于硬币年龄的选择,随机化过程)相结合,使选择对网络上的每个人都是公平的。

  • 基于硬币年龄的选择。
    该算法跟踪每个验证者候选节点保持验证者的时间。节点的年龄越大,它成为新验证者的机会就越大。
  • 随机区块选择。
    以 "最低哈希值 "和 "最高赌注 "的组合来选择验证者。具有最佳加权组合的节点成为新的验证者。

一个典型的基于PoS机制的工作流程。

  • 1、节点进行交易。PoS算法将所有这些交易放在一个池中。
  • 2、所有竞争成为下一个区块的验证者的节点都提出一个赌注。这个赌注与其他因素如 "币龄 "或 "随机区块选择 "相结合来选择验证者。
  • 3、验证者验证所有的交易并发布区块。他的股权仍然被锁定,伪造的奖励也还没有被授予。这是为了让网络上的节点能够 "确定 "新区块。
  • 4、如果区块被 "确定 "了,验证者就可以拿回股权和奖励。如果算法是使用基于币龄的机制来选择验证者,那么当前区块的验证者的币龄将被重置为0,这使得他在下一次验证者选举中处于低优先级。
  • 5、如果该区块没有被网络上的其他节点验证,该验证者就会失去其股权,并被算法标记为 “坏”。这个过程又从第1步开始,伪造新的区块。

特点

  • 固定存在的币。
    始终在网络中流通的硬币数量是有限的。不存在带来新币的情况(如在比特币和其他基于PoW的系统中通过挖矿)。请注意,网络以有限数量的硬币开始,或者在某些情况下 “最初以PoW开始,然后转移到PoS”。这种以PoW启动的方式是为了将硬币/加密货币引入网络。
  • 交易费作为对挖矿者/锻工的奖励。
    每笔交易都要收取一定的费用。这笔费用被积累起来,并给了伪造新区块的实体。请注意,如果伪造的区块被发现是欺诈性的,那么交易费就不会得到奖励。此外,验证者的股份也会丢失(这也被称为削价)。
  • 51%攻击的不实用性。
    要进行51%的攻击,攻击者必须拥有网络中总加密货币的51%,这是相当昂贵的。这说明进行攻击过于繁琐、昂贵,而且利润不高。在积累总的加密货币份额时,会出现一些问题,因为可能没有那么多货币可以购买,而且购买越来越多的硬币/价值会变得越来越贵。此外,验证错误的交易将导致验证者失去其股份,从而成为负面的奖励。

PoS的优势

  • 能源效率高
    由于所有的节点都没有相互竞争将一个新的区块附加到区块链上,因此可以节省能源。此外,没有问题需要解决(如工作证明系统),从而节省了能源。
  • 去中心化
    在像比特币这样的区块链中(工作证明系统实现分布式共识),加入矿池的额外奖励是指数级的,导致区块链的中心化程度更高。在基于权益证明的系统(如Peercoin)的情况下,奖励与权益金额成比例(线性)。因此,加入矿池绝对没有额外的优势;从而促进了去中心化。
  • 安全性
    试图攻击一个网络的人必须拥有51%的赌注(相当昂贵)。这导致了一个安全的网络。

PoS机制的弱点

  • 大额赌注的验证者
    如果一组验证者候选人结合在一起,并拥有总加密货币的巨大份额,他们将有更多机会成为验证者。机会的增加导致选择的增加,从而导致越来越多的伪造奖励的赚取,导致拥有巨大的货币份额。这可能导致网络随着时间的推移变得集中化。
  • 新技术
    PoS仍然是比较新的。研究正在进行,以找到缺陷,修复它们,并使其在实际的货币交易网络中可行。
  • 无利害关系 "的问题
    这个问题描述了在区块链分裂(区块链分叉)的情况下,支持多个区块链的节点几乎没有任何不利因素。在最坏的情况下,每一次分叉都会导致多个区块链和验证器的工作,网络中的节点永远不会达成共识。

使用Proof-of-Stake的区块链。

以太坊(Casper更新)
Peercoin
Nxt

3、实用拜占庭容错(practical Byzantine Fault Tolerance pBFT)

Barbara Liskov和Miguel Castro在90年代末推出的一种共识算法。pBFT被设计为在异步(对何时收到请求的响应没有上限)系统中有效工作。它针对低开销时间进行了优化。它的目标是解决许多与已有的拜占庭容错解决方案相关的问题。应用范围包括分布式计算和区块链。

在这里插入图片描述

什么是拜占庭容错?

拜占庭容错(BFT)是分布式网络的特点,即使网络中的一些节点没有回应或回应的信息不正确,也能达成共识(对同一数值的协议)。BFT机制的目标是通过采用集体决策(正确的和有问题的节点)来防止系统故障,旨在减少有问题节点的影响。BFT源于拜占庭将军问题。

拜占庭将军问题

LESLIE LAMPORT、ROBERT SHOSTAK和MARSHALL PEASE于1982年在微软研究院的一篇论文中对这个问题进行了恰当的解释。

“想象一下,拜占庭军队的几个师在敌人的城市外扎营,每个师由自己的将军指挥。将军们只能通过信使相互沟通。在观察了敌人之后,他们必须决定一个共同的行动计划。然而,有些将军可能是叛徒,试图阻止忠诚的将军们达成协议。将军们必须决定何时攻城,但他们需要有强大的大多数军队在同一时间进攻。将军们必须有一个算法来保证:(a)所有忠诚的将军都决定采用相同的行动计划,(b)少数叛徒不能使忠诚的将军们采用一个糟糕的计划。忠诚的将军们都会按照算法所说的去做,但叛徒们可以做任何他们想做的事情。无论叛徒做什么,算法必须保证条件(a)。忠诚的将军们不仅应该达成协议,而且应该就一个合理的计划达成协议。“

如果网络中正确工作的节点就其数值达成一致,拜占庭容错就可以实现。可以给缺失的信息一个默认的投票值,也就是说,如果在一定的时间限制内没有收到信息,我们可以认为来自某个节点的信息是 “有问题的”。此外,如果大多数节点的响应是正确的,我们也可以分配一个默认的响应。

Leslie Lamport证明,如果我们有3m+1个正确工作的处理器,如果最多只有m个处理器是有问题的,就可以达成共识(对同一状态的协议),这意味着严格来说,超过三分之二的处理器总数应该是诚实的。

拜占庭式故障的类型。

有两类故障被考虑。一种是故障停止(节点故障并停止运行),另一种是任意节点故障。下面给出了一些任意节点的故障。

  • 未能返回一个结果
  • 回复一个不正确的结果
  • 回应一个故意误导的结果
  • 对系统的不同部分作出不同的结果反应

在这里插入图片描述

pbft的优点。

  • 能源效率:

    pBFT可以实现分布式共识,而无需进行复杂的数学计算(如PoW)。Zilliqa采用pBFT与PoW的复杂计算相结合,每100个区块进行一轮计算。

  • 交易的最终性:交易在最终完成并达成一致后,不需要多次确认(就像比特币的PoW机制一样,每个节点在将新区块添加到区块链之前都会单独验证所有的交易;确认可能需要10-60分钟,取决于有多少实体确认新区块)。

  • 低奖励差异:

    网络中的每个节点都参与响应客户的请求,因此每个节点都可以得到激励,导致帮助决策的节点获得的奖励差异较低。

pBFT如何工作?

pBFT试图提供一种实用的拜占庭状态机复制,即使在系统中存在恶意节点时也能正常工作。
在一个支持pBFT的分布式系统中的节点是按顺序排列的,其中一个节点是主节点(或领导节点),其他节点被称为次节点(或备份节点)。请注意,系统中任何有资格的节点都可以通过从次要节点过渡到主要节点而成为主要节点(通常在主要节点失败的情况下)。我们的目标是让所有诚实的节点利用多数规则帮助达成关于系统状态的共识。
一个实用的拜占庭容错系统可以在以下条件下运行:恶意节点的最大数量不能大于或等于系统中所有节点的1/3。随着节点数量的增加,系统变得更加安全。

pBFT共识轮分为4个阶段(参考下面的图片)。

  • 客户端向主(领导)节点发送一个请求。

  • 主节点(领导者)将请求广播给所有的次节点(备份)。

  • 节点(主节点和副节点)执行请求的服务,然后向客户发送回复。

  • 当客户端收到来自网络中不同节点的’m+1’个相同结果的回复时,该请求就被成功服务,其中m是允许的最大故障节点数。

    在这里插入图片描述

主节点(领导者)在每个视图(pBFT共识轮)中都会被改变,如果领先节点没有向后备节点(次要节点)广播请求,则可以通过视图改变协议进行替换。如果需要,大多数诚实的节点可以对当前领先节点的合法性进行投票,并将其替换为下一个领先节点。

pBFT的局限性。

pBFT共识模型只有在分布式网络中的节点数量较少时才能有效工作,因为通信开销很大,网络中每增加一个节点,通信开销就会呈指数级增长。

  • Sybil攻击:

    pBFT机制很容易受到Sybil攻击,即一个实体(一方)控制许多身份。随着网络中节点数量的增加,Sybil攻击变得越来越难以实施。但由于pBFT机制也有可扩展性问题,pBFT机制与其他机制结合使用。

  • 扩展性:

    pBFT不能很好地扩展,因为它的通信(与所有其他节点在每一步)开销很大。随着网络中节点数量的增加(增加为O(n^k),其中n是消息,k是节点的数量),响应请求的时间也会增加。

使用pBFT变体的平台。

Zilliqa - 与PoW共识相结合的pBFT
Hyperledger Fabric - pBFT的许可版本
Tendermint - pBFT + DPoS(Delegated Proof-of-Stake)

4、烧毁证明(Proof of Burn PoB

通过PoB,验证者不需要投资昂贵的硬件设备,而是通过将硬币发送到一个无法恢复的地址来 "燃烧 "硬币。通过将硬币投入到一个无法到达的地址,验证者获得了基于随机选择过程在系统上挖矿的特权。因此,在这里烧币意味着验证者有一个长期的承诺,以换取他们的短期损失。根据PoB的实现方式,矿工可以燃烧区块链应用程序的原生货币或替代链的货币,如比特币。他们烧的币越多,他们被选中开采下一个区块的机会就越大。虽然PoB是PoW的一个有趣的替代方案,但该协议仍然无谓地浪费了资源。而且还有人质疑,挖矿权只是流向那些愿意烧更多钱的人。

为什么需要燃烧证明?

在PoW共识算法中存在一些缺点,这使得研究人员致力于开发一种新的共识算法,即PoB。

第一个缺点是,PoW的功耗非常高。矿工通过升级POW模式下的账本获得奖励。计算能力被用来解决一个数学问题以换取报酬。矿工为解决这个问题所花的钱越多,他们被允许开采区块的机会就越大。
PoW需要非常高的资本投资。

PoB如何工作?

1、正如名字本身所暗示的,有一些东西应该被烧掉。在这里,我们谈论的是虚拟货币,所以很明显,在PoB中,虚拟货币被烧毁。矿工烧掉的货币越多,他们就越有能力创造区块。

2、我们所说的燃烧并不完全是指燃烧。它意味着不使用该币。如果把它送到不能使用的地方,就可以这样做。因此,矿工将这些硬币发送到这样的地址,从那里它们不能被使用。它被发送到一个公共可验证的地址,在那里它不能被访问,因此不能被使用。

3、当硬币被烧毁时,它的可用性就会下降,导致硬币的潜在价值增加。

4、现在的问题是,为什么我们需要烧毁硬币?对此的基本解释是,通过销毁货币,消费者通过放弃狭隘的利润来换取长期的利润,显示出对货币的巨大承诺。

5、为了避免早期采用者获得任何不当的好处,PoB设计了一种方法,允许定期燃烧加密货币,以保持采矿能力。任何时候开采一个新的区块,燃烧币的能量都会略有下降。

7、这是一个通货紧缩的想法,即货币的数量随着时间的推移而减少,增加不足,因此,货币持有者的价值。另一方面,随着时间的推移,数量增长的硬币,往往会失去价值。

PoB比PoS的优势。在Pos区块链中,市场的稀缺性不是永久性的。稀缺性只是在一定的时间内,即直到伪造者将他们的硬币锁定,这通常是通过锁定它们来完成的。但是,如果离开的伪造者拿着这些币在市场上出售,这些币就会重新进入流通。而在PoB的情况下,钱币被销毁,因此稀缺性是永久性的。

PoB的优点。

与PoW相比,它所需要的能量非常少。
它通过燃烧硬币时浪费无关紧要的资源来减少能源消耗。
它鼓励长期参与一个项目,因为消费者通过放弃狭隘的利润来换取长期的利润,显示了对货币的巨大承诺。
与所有其他共识相比,硬币的分配更加公平。

抵押贷款的弊端。

它是有风险的,因为人们不知道他们是否会在未来获得他们所燃烧的财富。
由于钱币被烧毁,所以从技术上讲,如果我们看到资源被浪费了。
它可能会受到富者愈富现象的影响。在这种情况下,那些富有的人通过拥有更多的硬币而变得更加富有。

5、容量证明(Proof of Capacity PoC

在容量证明共识中,验证者应该投资他们的硬盘空间,而不是投资于昂贵的硬件或燃烧硬币。验证者拥有的硬盘空间越多,他们被选中开采下一个区块并获得区块奖励的机会就越大。

容量证明挖矿是一种非常新的挖矿方法,目前被一种加密货币Burstcoin采用。尽管如此,许多人认为容量证明是目前使用的挖矿技术的一个可行替代方案。它能够通过使用硬盘空间进行挖矿。像这样的策略提供了很多好处,这也是很多项目现在正在关注的事情。

容量证明的目的

PoW是现今最知名的挖矿方法之一。这需要矿工利用计算机资源来解决困难的数学哈希函数。在比特币的案例中,利用了一种叫做SHA-256算法的著名散列方法。这些散列函数是单向函数,只有一个可能的解决方案。他们需要这种原始的计算能力来定位准确的函数输入,以实现预期的函数输出。散列函数将 "nonce "作为其输入变量之一。矿工将循环计算nonce,直到找到合适的哈希值。这是粗暴的计算,需要大量的时间和精力来完成。
虽然PoW算法在比特币还是一个相对较新的技术时运行良好,但网络已经以指数级的速度增长。为了保持区块时间的一致性,比特币系统旨在增加采矿难度。因此,挖矿已经变得非常艰难,只有最强大的计算机,即ASIC,才能做到这一点。
为了解决哈希函数,他们也需要大量的计算能力。所有无法及时解决哈希函数的矿工所投入的能量将被浪费掉。
因此,较小的采矿作业对较大的节点所做的关键选择的影响将大大降低。因此,迫切需要一种新的挖矿方法,它比PoW的能源密集度低,并允许充分的网络分散。这就是容量证明的概念发挥作用的地方。

特点

容量证明共识是对著名的工作证明(Proof-of-Work)区块链共识技术的改进。
即使在开始挖矿之前,也需要专门的处理能力和硬盘存储。正因为如此,该系统比PoW要快。
容量证明只需要4分钟就能产生一个区块,但工作证明需要10分钟。
它试图解决PoW系统的散列问题。如果计算机上有更多的解决方案或情节可用,那么赢得挖矿冲突的机会就更大。

容量证明如何运作?

容量证明有两个组成部分。首先,是硬盘上的绘图,然后是实际的区块挖掘

  1. 绘图

    创建绘图文件可能需要几天甚至几周的时间,这取决于硬盘的大小。绘图是用Shabal哈希值完成的。Burstcoin中使用的加密/哈希函数被称为Shabal。Shabal是一种迟缓而厚重的加密货币。因此,它是像Burstcoin这样的能力证明加密货币的优秀加密货币。这是由于预先计算的哈希值被储存起来,同时仍能进行较小的实时验证。Burst使用Shabal256,这是Shabal的一个256位变体。Shabal哈希值是预先计算的,并保存在硬盘上,因为它们很难计算。

首先,硬盘被绘制出来。通过哈希数据,包括矿工的账户,一遍又一遍地构建一个所有潜在的nonce值的列表。每个nonce是由8192个哈希值组成,编号从0到8191。所有的哈希值被耦合成 “勺子”,即两个相邻的哈希值的组。

  1. 挖矿

    第二阶段是实际开采,这需要由矿工计算出一个勺子的数量。例如,如果一个矿工开始挖矿并创建了40号铲子,那么矿工就会去找nonce 1的40号铲子,并利用该铲子的数据来计算一个最后期限值。对于存储在矿工硬盘上的每一个nonce,都会重复这个程序来计算最后期限。矿工在计算完所有的最后期限后,选择最后期限最短的那个。在矿工被授权生产一个新的区块之前,最后期限表示自上一个区块产生以来已经过去的时间(秒)。如果没有人在这个时间范围内这样做,矿工就可以制造一个区块并索取区块奖励。例如,如果矿工A设定了40秒的最低期限,并且没有其他矿工能在这个时间内伪造区块,那么A将被保证有机会伪造下一个区块并获得报酬。

应用

Burstcoin是一种根据能力证明原则运作的加密货币。Burstcoin团队计划研究各种用例,包括从支付解决方案到智能合约、众包和随机消息等一切。Burstcoin是一个值得测试PoC可能性的举措,因为它为消费者、公司、开发者和矿工提供了一个引人注目的想法。尽管现在使用能力证明的加密货币不多,但有几个项目正在这个领域获得牵引力。
能力证明,根据BXTB(这是一个双区块链,一个由BXTB公司支持的双代币平台)在允许用户挖掘BXTB治理代币方面具有吸引力。
Permacoin将比特币的PoW重新用于一个更普遍的目的,建立一个可靠的分布式存储系统。PermaCoin的参与者必须另外保存一个巨大的文件块,以便有资格参加领袖选举。一个签署文件块的权威 "经销商 "负责分发文件。
参与者在SpaceMint的共识机制中构建并承诺一个独特的难得的卵石图,该机制是基于一种非交互式的容量证明(称为空间证明)的形式。

优势

任何标准的硬盘都可以使用,所以与其他投资于专业设备的矿工相比,有一定的优势,如用ASIC挖比特币。
用硬盘挖矿比用ASIC挖矿节省了30倍的能源。
因为每个人都有一个硬盘,所以能力证明更加分散。我们甚至可以从安卓手机的硬盘上挖矿。
矿工不需要定期升级他们的设备。旧的硬盘和新的硬盘一样能够存储数据。
挖矿完成后,人们可以擦拭硬盘,将其放回原来的用途。

也许这就是为什么比特币世界的许多人把挖矿算法看作是去中心化、环保的新补救办法。

劣势

另一方面,容量证明挖矿也有一些缺点。

技术已经被少数开发者所接受。
除了挖币之外,在硬盘上绘制的数据是无用的。这表明,有很多空间没有被使用。
虽然产能证明挖矿减少了入门障碍,但消费者也可能购买更大的硬盘。没有什么能阻止一个人获得大得多的硬盘,并利用它们来挖掘大部分的钱。
如果挖矿变得流行,黑客有可能会试图利用它。目前,挖矿的恶意软件正在感染世界各地的许多电脑。PoW挖矿偶尔也会被检测出是导致电脑速度变慢的原因之一。另一方面,能力证明使得确定你的多余硬件空间是否被用于非法原因的难度大大增加。

最吸引人的挖矿方法之一是能力证明。它不仅重新思考了近年来的挖矿方式,而且也是许多人认为对环境有利的解决方案。它也适合最流行的加密货币灵丹妙药:一个完全去中心化的环境。这仍然是一个新鲜的概念,还没有看到广泛的采用,像其他算法。现在,像BXTB这样的倡议正着眼于通过概念验证创建的原生币的现实世界应用,该行业正在进入一个新时代。将加密货币推向公众是一项艰巨的任务,但如果每个人都能参与,而不必在额外的技术上花钱,情况可能会有所改善。能力证明是否能克服比特币和以太坊等更成熟的区块链正在经历的一些扩展问题,还有待观察。

6、逝去的时间证明(Proof of Elapsed Time PoET

PoET是最公平的共识算法之一,它只使用公平的手段选择下一个区块。它被广泛用于许可的区块链网络。在这种算法中,网络上的每个验证者都有公平的机会来创建他们自己的区块。所有的节点都是通过等待随机的时间,在区块中加入他们等待的证明。创建的区块被广播到网络上供其他人考虑。赢家是在证明部分拥有最少计时器值的验证者。来自获胜验证者节点的区块被添加到区块链中。算法中还有一些额外的检查,以阻止节点总是在选举中获胜,阻止节点产生最低的计时器值。

时间证明(PoET)是英特尔公司开发的一种共识算法,它使许可的区块链网络能够决定谁创建下一个区块。
PoET遵循一个抽签系统,将获胜的机会平均分配给网络参与者,让每个节点都有相同的机会。
PoET算法为区块链网络中的每个节点生成一个随机的等待时间;每个节点必须在该时间段内睡眠。
等待时间最短的节点将首先醒来并赢得区块,从而被允许向区块链提交一个新区块。
PoET工作流程类似于比特币的工作证明(PoW),但由于它允许一个节点在指定的时间内睡眠并切换到其他任务,从而提高了网络能源效率,所以消耗的电力更少。

PoET是如何工作的?

基于每个节点被选中的可能性相同的公平抽签系统的原则,PoET机制将获胜的机会分散到尽可能多的网络参与者身上。

在PoET下,网络中的每个参与节点都必须等待一个随机选择的时期;第一个完成指定等待时间的人赢得新区块。区块链网络中的每个节点都会产生一个随机的等待时间,并在这个指定的时间内睡觉。

最先醒来的那个–也就是等待时间最短的那个–会醒来并向区块链提交一个新区块,向整个对等网络广播必要的信息。然后重复同样的过程来发现下一个区块。

PoET与PoW有何不同?

从本质上讲,该工作流程类似于比特币的工作证明(PoW)算法所遵循的共识机制,但没有其高耗能。它允许一个节点在指定时间内睡眠并切换到其他任务,从而提高网络的效率。

时间证明并不像工作证明那样促进去中心化和开放性,因为它需要向任何想加入网络的人发放一个证书。

在安全环境中运行可信代码的机制也照顾到了许多其他的网络需求。它确保受信任的代码在安全环境中运行,并且不能被任何参与者改变。它还确保结果可由参与者或其他经许可的实体验证,从而提高网络共识的透明度。

PoET控制了共识过程的成本,并使其保持灵活,从而保持与该过程产生的价值成正比,这是加密货币经济继续蓬勃发展的一个基本要求。

什么是Hyperledger Sawtooth?

Hyperledger Sawtooth是一个分布式账本–类似于区块链–设计用于供应链和物流等企业用途。它甚至可以用于库存管理、会计或其他消耗时间和容易出错的商业任务。
是否有时间证明币?

PoET主要用于Hyperledger Sawtooth。截至2022年1月,还没有一种加密货币使用PoET。
工作证明和过期时间证明的区别是什么?

PoW是一种竞争性工作机制,而PoET是一种随机选择机制。

投资加密货币和其他首次代币发行(“ICO”)具有高度风险和投机性,本文不是Investopedia或作者对投资加密货币或其他ICO的建议。由于每个人的情况都是独特的,在做出任何财务决定之前,应始终咨询合格的专业人士。Investopedia对本文所含信息的准确性或及时性不作任何陈述或保证。
用100,000美元的虚拟现金进行无风险竞争
用我们免费的股票模拟器来测试您的交易技巧。与数以千计的Investopedia交易员竞争,并以交易方式达到顶峰 在你开始用自己的钱冒险之前,在虚拟环境中提交交易。练习交易策略,这样当你准备进入真正的市场时,你已经有了你需要的练习。今天就试试我们的股票模拟器吧 >>

7、委托持股证明(Delegated Proof Of Stake DPoS

是一种共识算法,它是持股证明基本概念的一个进步。委托持股证明(DPoS)共识算法是由BitShares、Steemit和EOS的创始人Daniel Larimer在2014年开发的。

在权益证明共识系统中,每个人都可以参与 "造币 "过程,这意味着他们有机会选择进一步验证区块的第二层节点,并因向区块链添加区块而获得奖励。DPos系统由一个选举系统维护,用于选择验证区块的节点。这些节点被称为 "证人 "或 “区块生产者”。

DPoS共识的运作方式

投票:
在DPoS共识中,用户可以直接投票,也可以将自己的投票权交给其他实体代表他们投票。被选中的证人负责通过验证交易来创建区块。如果他们验证并签署了一个区块中的所有交易,他们将获得奖励,这通常与那些投票给证人的人分享。如果一个证人未能在给定的时间内验证所有的交易,区块就会被错过,所有的交易都没有被验证,也不会向该证人分配奖励。奖励被加到验证该区块的下一个证人的奖励上。这样的交易被下一个证人收集,这样的区块被称为被盗。

投票与每个投票者的股权大小成正比。一个用户不需要有很大的利益来进入最高层的证人。相反,拥有大额赌注的用户的投票可以导致赌注相对较小的用户被提升到最高层的证人。

证人:
最高层的证人数量有一定的上限,通常在21-101之间。这些证人负责验证交易和创建区块,并获得相关费用。见证人可以阻止特定的交易被纳入区块,但他们不能改变任何交易的信息,这使他们类似于工作证明区块链的矿工。投票是一个持续的过程,每一个处于最高层的见证者总是有可能被一个获得更多票数的用户取代,因此被认为是更值得信任的。随着申请证人的人数增加,竞争也在增加,声誉对每个证人保持竞争力变得至关重要。

证人通过威胁其收入损失、锁定股权和声誉分数来控制自己。见证人必须锁定其股权的某些部分,如果他们有恶意行为或试图攻击区块链,则会被扣押。

在有N个区块生产者/见证者的DPoS区块链中,一个回合遵循以下的循环顺序。

N个区块生产者从证人候选人库中选出。
第k个区块生产者签署第k个区块,直到k=N。
当一个区块被(2/3+1)的区块生产者投票通过时,该区块就被最终确定。在有两条链的情况下,遵循最长的链规则。添加的区块不能被逆转。

代表:
DPoS系统中的用户也会投票给监督区块链治理的一组代表。他们不参与交易控制。代表们可以提议改变区块的大小,或验证区块的证人应得到的回报金额。一旦代表们提出这些变化,区块链的用户就会投票决定是否采用这些变化。

区块验证器。
DPoS中的区块验证器指的是验证由证人创建的区块是否符合共识规则的完整节点。任何用户都可以运行一个区块验证器并验证网络。成为区块验证者没有任何激励措施。

优势:

DPoS区块链有很好的保护作用,可以防止重复消费。
由于用户/节点所需的赌注较少,因此DPoS更加民主和具有财务包容性。
DPoS提供了更多的去中心化,因为进入门槛低,更多的人参与到共识中。
DPoS不需要大量的电力来运行网络,这使得它更具可持续性。
DPoS中的交易不依赖于运行网络所需的计算能力,因此它更具有可扩展性。
DPoS将区块生产者的选举与区块生产本身分开,这为更多的创造性模式打开了大门,以单独解决这两个问题。
DPoS方法为在区块链应用中实施有趣的治理模式提供了基础。在某种意义上,它形成了一种民主。

劣势 :

网络的有效运作和决策需要委托人充分了解情况并指定诚实的证人。
证人的数量有限会导致网络的集中化。
DPoS区块链很容易受到加权投票问题的影响。拥有较小利益的用户可以在认为他们的投票无关紧要的情况下拒绝参与投票。

以下是一些DPoS区块链的例子。

Blockchain Number of Witnesses
EOS 21
BitShares 101
Steemit 21
Lisk 101
Ark 51

8、权威证明(Proof of Authority PoA

在区块链平台中,共识机制可分为无权限(如以太坊、比特币)和有权限(如Hyperledger、Ethereum Private)。与任何人都可以成为节点的无权限区块链不同,在有权限的区块链中,所有节点都是预先选定的。这允许使用具有高可扩展性和带宽的共识类型。这些共识类型之一是权威证明(PoA)共识,它提供了高性能和容错。这个术语是由以太坊和Parity Technologies的联合创始人Gavin Wood在2017年提出的。

PoA的工作

在PoA中,产生新区块的权利被授予那些已经证明他们有权力这样做的节点。这些节点被称为 “验证者”,他们运行的软件允许他们将交易放入区块。这个过程是自动化的,不需要验证者不断监控他们的计算机,但需要维护计算机不受影响。PoA适用于私人网络和公共网络,如POA网络,其中信任是分散的。
PoA共识算法利用了身份的价值,这意味着区块验证者不是在赌币,而是在赌自己的声誉。PoA通过对所选身份的信任来保证。

PoA共识和常见攻击。

1、分布式拒绝服务攻击(DDos)
分布式拒绝服务(DDoS)攻击是一种试图通过用来自多个来源的流量使在线服务不可用。攻击者向目标网络节点发送大量的交易和区块,试图破坏其运行并使其不可用。

PoA机制使得防御这种攻击成为可能,因为网络节点是预先认证的,区块生成的权利只能授予那些能够承受DoS攻击的节点。

2、51%的攻击:
在PoA共识中,51%的攻击要求攻击者获得对51%的网络节点的控制。这与工作证明共识类型的51%攻击不同,攻击者需要获得51%的网络计算能力。在许可的区块链网络中,获得节点的控制权比获得计算能力要难得多。

在PoA中,个人获得了成为验证者的权利,所以有动力保留他们所获得的地位。验证者受到声誉的激励,这使他们能够保持他们作为节点的权威。PoA只允许来自任何一个验证者的非连续区块批准,这意味着严重损害的风险集中在权威节点上。

达成PoA共识的条件。

1、PoA共识可能根据不同的实施方式而有所不同,但一般来说,它们是通过以下条件应用的。
2、验证者需要确认他们的真实身份。
3、候选人必须愿意投入资金,并将其声誉置于危险之中。严格的程序可以减少选择有问题的验证人的风险,并激励对区块链的长期承诺。
4、挑选验证人的方法必须对所有候选人平等。
5、验证者的身份必须得到验证,以保持区块链的完整性。应该有某种程序来选择诚实的验证者。

PoA共识的优势:

只要51%的节点没有恶意行为,就有很高的风险容忍度。
产生新区块的时间间隔是可预测的。对于PoW和PoS共识,这个时间是不一样的。
高交易率。
远比工作证明等需要计算能力的算法更具可持续性。

局限性:

PoA不是去中心化的,只是为了让中心化的系统更有效率。
PoA的验证者对任何人都是可见的。知道验证者的身份有可能导致第三方的操纵。

PoA共识的应用 :

PoA共识算法可以应用于各种场景,被认为是物流应用的最佳选择,如供应链。
权限证明模型使公司能够在利用区块链技术的好处的同时保持他们的隐私。微软Azure是正在实施PoA的另一个例子。Azure平台为私人网络提供解决方案,其系统不需要像以太坊上的以太’气’那样的原生货币,因为不需要挖矿。Azure的节点是预先选择的。

9、零知识证明(Zero Knowledge Proof ZKP)

是一种加密方案,最初由麻省理工学院的研究人员Shafi Goldwasser、Silvio Micali和Charles Rackoff在1980年代提出。

零知识协议是概率评估,这意味着它们不能像简单地揭示全部信息那样肯定地证明某些东西。他们提供不可联系的信息,这些信息可以共同表明断言的有效性是可能的。

目前,一个网站将用户密码作为输入,然后将其散列值与存储的散列值进行比较。同样,银行需要你的信用评分来为你提供贷款,使你的隐私和信息泄露风险受到主机服务器的摆布。如果可以利用ZKP,客户的密码对验证者来说是未知的,而登录仍然可以被验证。在ZKP之前,我们总是质疑验证者的合法性或证明系统的合理性,但ZKP质疑验证者的道德。如果验证者试图泄露信息怎么办?

例一:一个色盲的朋友和两个球。
有两个朋友Sachin和Sanchita,其中Sanchita是色盲。萨钦有两个球,他需要证明这两个球是不同颜色的。桑奇塔在背后将球随机调换,然后给萨钦看,萨钦要判断球是否被调换了。如果球的颜色相同,而萨钦提供了错误的信息,那么他回答正确的概率是50%。当这个活动重复进行几次后,萨钦在虚假信息下给出正确答案的概率就会大大降低。这里萨钦是 “验证者”,桑奇塔是 “核实者”。颜色是绝对的信息或要执行的算法,在不向验证者透露颜色信息的情况下证明其合理性。

例子-2:寻找瓦尔多。
寻找瓦尔多是一个游戏,你必须从上面拍摄的大量人群的快照中找到一个叫瓦尔多的人。Sachin有一个寻找Waldo的算法,但他不想把它透露给Sanchita。桑奇塔想买下这个算法,但需要检查这个算法是否有效。萨钦在纸板上剪了一个小洞,放在瓦尔多身上。Sachin是 “证明者”,Sanchita是 “验证者”。在对算法一无所知的情况下,该算法被证明。

零知识证明的属性:

零知识 -
如果声明是真的,验证者将不知道该声明或曾经是。这里的声明可以是一个绝对值或一个算法。

完备性–如果声明是真的,那么一个诚实的人就会知道这个声明是真的。
如果声明是真的,那么一个诚实的验证者最终可以被说服。

健全性 -
如果证明者是不诚实的,他们无法说服验证者证明的健全性。

零知识证明的类型 :

交互式零知识证明 -
它要求验证者不断提出一系列关于验证者所拥有的 "知识 "的问题。上述寻找Waldo的例子是交互式的,因为 "验证者 "做了一系列的动作来向验证者证明知识的正确性。

为了使 "交互式 "解决方案发挥作用,验证者和校验者都需要同时在线,这使得它很难在现实世界的应用中扩大规模。非交互式零知识证明不需要交互过程,避免了串通的可能性。它需要挑选一个哈希函数,由验证者随机挑选挑战。1986年,菲亚特和沙米尔发明了菲亚特-沙米尔启发法,成功地将交互式零知识证明改为非交互式零知识证明。

10、非交互式零知识证明(Non-Interactive Zero Knowledge Proof NIZKP)

早期的零知识证明验证系统曾经是互动的。被称为 "证人 "和 "验证人 "的信息 "证明人 "必须同时在线,以便成功执行操作。

这使得整个过程含糊不清,无法扩展。1986年,菲亚特和沙米尔发明了菲亚特-沙米尔启发式,将交互式零知识证明改为非交互式零知识证明。

菲亚特-沙米尔启发式是一种技术,用于获取交互式知识证明并在此基础上创建数字签名。这样,"证人 "或事实可以被公开验证,而不需要证明者一直在线。

非交互式零知识证明与离散算法:

Sanchita想向Sachin证明,她知道y=g^a为基数g的值。
桑奇塔从数值集合Z中随机抽取一个数值v,并计算t=g^v。
Sanchita计算c = H(g, y, t),其中H()是哈希函数。
Sanchita计算出d = v - c*a。
然后,Sachin或任何人都可以检查t是否=g^d * y^c。

Fiat-Shamir启发式允许我们用非交互式的随机神谕访问代替交互式步骤3,但在实践中,使用的是Hash函数。

在交互式ZKP中,Sachin会从集合Z中挑选随机值c,并将其发送给Sanchita。

如果下面使用的哈希值不依赖于y的(公共)值,那么方案的安全性就会被削弱,因为恶意验证者可以选择某些值x,从而使乘积c*a被知道。

优势:

它不要求验证者或核查者一直在线。
可转移性 -
如果验证人证明了一次证人,它可以被公开,而同样的过程不需要对不同的验证人再次重复。

应用

区块链 -
它可以用来验证公共区块链中的交易,即使发送者、接收者和交易的信息是匿名的。
对其他协议的基础 -
在2017年发布了Bulletproofs。Zk-SNARK也是非交互式ZKP的后续产品。

猜你喜欢

转载自blog.csdn.net/coco2d_x2014/article/details/128175169