主页 > imtoken市场打不开 > POW区块链共识算法分析与展望

POW区块链共识算法分析与展望

imtoken市场打不开 2023-03-23 05:24:41

区块链技术本质上是一个点对点的分布式数据库,通过共识算法维护区块链系统的一致性,实现不同节点之间的信任,并计算出每个节点相应的权益。 POW共识算法是一种工作量证明共识机制,是比特币的核心技术之一。 经过近十年的发展,POW共识算法的性能和安全缺陷越来越明显,基于POW共识算法的改进协议不断被提出。

首先介绍了POW共识算法在比特币网络中的挖矿工作过程,并对其优缺点进行了全面分析,然后介绍了基于POW的共识算法包括Bitcoin-NG、Byzcoin、GHOST、Lightning Network、分片共识算法。 改进共识算法,将改进后的算法分为链上扩容和链下扩容两种,展示POW算法的发展历程,实现对POW共识算法性能的综合分析。 最后给出了POW共识算法未来发展的展望。

比特币(BitCoin)的概念最早由中本聪于2009年提出,该货币是一种点对点形式的数字货币,是一种去中心化的支付系统。 比特币采用椭圆曲线非对称加密算法和工作量证明共识机制来保证货币流通各个环节的安全。 随着比特币的诞生,区块链技术受到越来越多的关注。

区块链技术本质上是一个点对点的分布式数据库,其中各个节点通过共识算法维护区块链系统的一致性,实现不同节点之间的信任,并计算出各个节点对应的权益。 为了构建一个高效、公平、稳定的分布式系统,区块链融合了共识算法、密码学、默克尔树等多种技术,因此区块链是多种成熟技术的完美融合。

在这项成熟的技术中,共识算法是解决区块链一致性问题的关键。 常见的共识算法包括POW(Proof of Work,工作量证明)机制、POS(Proof of Stake,股权证明)机制、DPOS(Delegated Proof of Stake,份额证明)机制和PBFT(Practical Byzantine Fault Tolerence,实用拜占庭机制)等.

POW共识算法作为比特币的共识机制,是区块链共识算法的先驱。 它具有非常大的市场规模和非常重要的应用地位,在目前的公链共识算法中依然占据主导地位。 POW机制是影响区块链性能和安全性的核心环节,具有非常重要的研究意义。

1 概述

比特币使用 POW 算法来达成共识。 POW算法通过暴力破解一道数学题,参与哈希计算后得到一个小于目标值的哈希值。 在比特币交易中,所谓矿工是指以计算机为手段,利用计算机的计算能力进行工作,获得相应的比特币奖励或手续费的人。 矿工不验证单个交易,而是将一系列交易打包成一个区块,矿工通过计算其区块的哈希值来验证。 比特币使用 SHA-256 算法。

1.1 POW安全分析

在 POW 共识协议中,新的货币奖励和交易费用保护了比特币网络的安全。 如果一个贪婪的破坏者能够集中比诚实节点更多的算力,即发动 51% 攻击,他将不得不在利用高算力进行欺骗和利用高算力产生新币之间做出选择。 从经济的角度来看,在大多数情况下,遵守比特币系统规则的好处超过了受到攻击的好处。

随着计算机技术的发展,区块生成的速度也会相应提高。 区块间隔的缩短会导致比特币网络中更多的冲突,降低主链区块的生成速度,最终导致破坏者赶超或赶超。 超级主链,破坏系统。

同时,由于在比特币系统中,使用旧区块计算 POW 不会产生新的货币奖励,这会降低矿工的积极性,降低网络的安全性。 因此,比特币每产生2016个区块,就会调整挖矿难度,使每个区块的验证时间约为10分钟。 难度调整公式如下:

比特币pow算法_哈希算法比特币_比特币挖矿采用的算法

比特币挖矿采用的算法_哈希算法比特币_比特币pow算法

是旧的目标值,

比特币挖矿采用的算法_哈希算法比特币_比特币pow算法

是生成最后一轮 2016 年区块所用的时间。 在POW共识计算中,随机值Nonce是根据算力进行概率更新和广播的,所以在极小的概率下,有可能同时计算出两个满足要求的Nonce值。 此外,由于网络延迟,区块也可能会分叉,带来一系列的安全问题。

哈希算法比特币_比特币挖矿采用的算法_比特币pow算法

1.2 POW 机制的缺陷 POW 共识算法存在三个主要缺陷。

(1)资源浪费。 挖矿需要大量的哈希运算、电力和各种算力资源,找到的哈希值实际上没有任何实际使用价值。

(2)网络性能低下。 由于POW共识算法将比特币出块时间限制为10分钟,交易确认至少需要10分钟,目前只支持每秒7笔交易的交易速度,不适合高并发的商业应用.

(3) PoW共识算法的算力是中心化的。 目前矿池是主力军,个体矿工基本不可能生存。 算力高的矿池有选择权,进而导致算力中心化。

POW算法的核心矛盾:区块大小和区块间隔。 增加区块容量可以提高吞吐量,但过大的区块会造成网络拥塞,增加节点间共识的时间和效率,并可能降低区块效率; 缩短出块间隔也可以提高吞吐量,但是缩短出块间隔会导致链分叉更加频繁,同时也会增加双花等安全问题。

因此,随着公链共识机制的发展,POW共识算法产生了很多变种,提升其性能和安全性的方法大致分为两类。 一是不改变POW工作量证明的核心基础,转变链的增长方式,重新分配记账权,减少无序竞争和出块间隔; 第二,不修改POW共识算法内容,通过链下扩容机制控制链上交易量,提高链上效率。

2 POW共识算法的链上扩展

Bitcoin-NG、Byzcoin、GHOST算法均以工作量竞争为核心共识机制,保留了POW算法核心设计的初衷,但潜移默化地转变了链的增长方式,提高了系统的吞吐量。 2.1 Bitcoin-NGBitcoin-NG是一种序列化交易过程的区块链协议。 Bitcoin-NG的核心概念是将时间单位化,将时间的每一个微单位设置为单位时间。 为此,Bitcoin-NG 引入了两种类型的块:关键块和微块。 图 1 显示了 Bitcoin-NG 区块链的链上结构。 其中,方形块代表关键块,圆形块代表微块。

哈希算法比特币_比特币挖矿采用的算法_比特币pow算法

图1Bitcoin-NG 链结构 2.1.1 区块划分 关键区块:用于选择领导节点。 一个关键块应包含:由前一个块头哈希加密的哈希值、当前系统时间、挖矿奖励机制、目标值、唯一随机数值和用于生成后续微块的公钥。 微块:领导节点通过密钥块中的公钥生成微块。 一个微块包含前一个区块头哈希的加密哈希值、当前系统时间、自己账户的哈希加密哈希值、区块头的加密签名。 2.1.2 鉴权时间和分叉保护 当矿工挖矿成功并生成新的密钥块时,他不能立即知道前任领导节点是否生成了新的微块,即当生成时间间隔小于时关键区块认证时间,原区块链上会出现一个短叉。 图2是微块分叉示意图。 从复杂密码问题被破解到破解信息被认证并生成新的密钥块B的过程中,原领导节点A生成了两个微块A4和A5,因此密钥块B的生成时间为不是认证成功的时间比特币pow算法,而是密码问题被破解的时间,早于A4和A5微块的生成时间。 因此,这两个微块是不能上传到链上的,而是要等待网络传播延迟来确认最终是上传到链上还是被剪枝。 此外,由于微块的创建本身不需要挖矿,它们只能由领导节点以更便宜、更快速的方式生成。 因此,恶意节点可以使这些微块为每个不同的机器重复发送不同的状态机状态。

比特币挖矿采用的算法_哈希算法比特币_比特币pow算法

图2 微区块短分叉示意图

如图3所示,A1-A4对应4个不同的微块,由同一个恶意领导节点控制。 他们分别同时向 3 台机器发送信息。 由于A1-A4反复传播不同的状态机状态,当这部分微块逐渐增大时,会使三台机器都认为自己收到的状态为真。

哈希算法比特币_比特币pow算法_比特币挖矿采用的算法

图3 双花攻击示意图

为了减少此类攻击,Bitcoin-NG在交易过程中增加了一个特殊的账户入口,称为“恶意交易”。 恶意交易在恶意领导节点欺诈之后和恶意领导节点收入被花费之前进行。 恶性交易将使分叉区块链的奖励失效,同时给予当前领导节点一部分奖励,以鼓励其停止欺诈行为。 2.1.3 Bitcoin-NG 安全性分析 为了保证区块链系统的安全稳定运行,Bitcoin-NG 协议需要让所有网络资源不足1/4 的矿工自发遵守协议。 Bitcoin-NG规定前任leader节点可以获得40%的交易收益,后继leader节点可以获得60%的交易收益,但实际上前任leader节点可以假装创建微块获得100%挖矿费。表 1 区块链安全分析变量

比特币挖矿采用的算法_比特币pow算法_哈希算法比特币

比特币pow算法_比特币挖矿采用的算法_哈希算法比特币

在图。 1、

比特币挖矿采用的算法_比特币pow算法_哈希算法比特币

表示矿工算力占区块链整体矿工算力的比例;

哈希算法比特币_比特币挖矿采用的算法_比特币pow算法

表示在一次交易过程中,可以从上一个领导节点的关键区块中获得多少收益。 攻击者通过伪装微块获得的收益应该比正常挖矿少:

哈希算法比特币_比特币挖矿采用的算法_比特币pow算法

如式(2)所示,左边为攻击者收益的收益期望值。如果攻击者挖矿成功,概率为

比特币挖矿采用的算法_哈希算法比特币_比特币pow算法

,获得全额报酬。如果攻击者挖矿失败,他的矿工成功的概率是

比特币挖矿采用的算法_比特币pow算法_哈希算法比特币

.此时攻击者在新节点后继续挖矿,获得的收益为

比特币挖矿采用的算法_比特币pow算法_哈希算法比特币

. 公式右边为正常挖矿收益。 但矿工不一定在最长链的末端挖矿,也有可能在之前的非叶子节点的微区块上挖矿,获得更高的收益:

比特币挖矿采用的算法_比特币pow算法_哈希算法比特币

如式(3)所示,左边是矿工在非叶子节点上进行微块挖矿的收益。此时,矿工生成一个分叉的微块,得到

哈希算法比特币_比特币挖矿采用的算法_比特币pow算法

,那么矿工在这个微区块下继续挖矿,挖矿成功的概率也是

比特币挖矿采用的算法_比特币pow算法_哈希算法比特币

比特币挖矿采用的算法_哈希算法比特币_比特币pow算法

,因为后继节点挖掘的成功奖励是

比特币pow算法_比特币挖矿采用的算法_哈希算法比特币

. 同时不等式 (2) 和 (3) 组得到:

比特币pow算法_比特币挖矿采用的算法_哈希算法比特币

存在

比特币pow算法_哈希算法比特币_比特币挖矿采用的算法

在网络假设前提下,Bitcoin-NG“40%-60%”的奖励分配方式可以完美满足安全标准。

2.1.4 Bitcoin-NG性能分析

首先是吞吐量。 Bitcoin-NG在吞吐量上提升有限,可以提升到比特币的30到60倍,峰值吞吐量可以达到200到400tps。 关于延迟,理论上一旦交易被打包进微块,交易就已经确认,但系统仍然存在分叉的可能,最终确认还需要等待几个核心区块时间,即,大部分交易的延迟都在10秒以上,对于重要的交易,要保证交易不会100%被剪枝,需要等待几百秒。

2.2 拜兹币

Byzcoin在设计上有点类似于Bitcoin-NG,由关键块和微块组成。 找到关键块的矿工称为领导者,包含关键块产生的交易的块称为微块。 Byzcoin交易特点如下。

(1) 密钥块生成微块,微块需要发送给共识组进行联合签名,以验证交易的真实性。

(2) 共识组成员由最近发现关键区块的矿工组成。 微块只有在大多数矿工签名时才能通过验证,以防止双花攻击。

(3) 包含交易的区块不需要经过 POW 验证。 这些区块由相应的领导者负责,并发送给共识组进行签名。 Byzcoin也通过与Bitcoin-NG一致的POW机制选出区块生产者(leader),实现了共识与交易的分离。 在 Bitcoin-NG 中,区块生产者发出的交易是未经验证的。 Bitcoin-NG中的所有节点在同步交易后都需要验证交易的有效性,并通过“40%-60%”的奖励分配方式来控制交易的合法性。 但是,Byzcoin引入了拜占庭容错算法(BFT),在不可信的网络中建立节点间的信任,完成即时的、不可逆的、可信的交易。

BFT算法目前广泛应用于联盟链的共识机制中。 Byzcoin 融合了 POW 算法和 BFT 算法。 在Bitcoin-NG的基础上,以向后兼容的方式集成到比特币系统中,进一步提高了吞吐量。 交易延迟大大降低,使全网在1MB的区块容量下每秒可以处理100多笔交易,同时也提高了交易的安全性。

1)在Bitcoin-NG中,一旦领导者掌权,就极有可能做出不当行为。 在 Byzcoin 协议中,一旦发现欺诈领导者,矿工可以投票,投票数超过 67% 的门槛。 如果他是领导者,他作为领导者的经济奖励也会被取消。

比特币pow算法_比特币挖矿采用的算法_哈希算法比特币

2)在传统的POW机制中,一旦取消区块奖励,矿工的收入来源就只能是交易手续费。 这种情况很可能会带来潜在的攻击风险。 但是,Byzcoin协议提出了延迟奖励的概念,挖矿奖励会按天或按月发放,防止因取消区块奖励而引发的各种攻击。

2.3 GHOST Greedy Heaviest-Observed Sub-Tree 协议(GHOST,Greedy Heaviest-Observed Sub-Tree protocol)起源于以太坊共识算法中的链分叉问题。 在以太坊网络中,区块生成时间从 10 分钟增加到 15 秒,链分叉发生的频率更高。 如果以太坊采用与比特币相同的 POW 共识机制,算力较小的矿池将很难获得产出。 从长远来看,算力低的矿工会拒绝将自己挖出的区块合并到强矿工挖出的区块链中,因为合并就意味着之前的劳动都白费了,还不如在区块链中继续。 在自己挖出的区块上挖矿,说不定就能超越算力强的区块。

显然,这样下去不利于分叉后区块链的快速合并。 基于以上原因,以太坊的设计中引入了GHOST。 如果Bitcoin-NG和Byzcoin采用共识和交易分离的方式来提高工作量证明共识方式的性能和安全性,GHOST则进行了另一种尝试:改变工作量证明共识方式中的主链选择机制. GHOST在选择最长链时,不以哪条链的连续区块最长为标准,而是考虑分叉区块,选择包括分叉区块在内的区块数量最多的一条链为标准。 最长的链条。 如图4所示。

比特币挖矿采用的算法_哈希算法比特币_比特币pow算法

图4 GHOST主链选择

上图的分叉情况,在比特币公链中,最终的赢家是这条链:0 - 1 - 2A - 3A - 4A - 5,一条由最长链规则选出的链。 在以太坊公链中,GHOST最终获得的获胜者是:0 - 1 - 2B - 3C - 4B - 5。原因是在上述分叉的情况下,GHOST也考虑到了分叉区块,统计了总数块数,发现包含块的链:0, 1, 2B, 3B, 3C, 3D, 4B 包含的块最多,所以链胜。 这就是 GHOST 选择最长链的机制。 此外,GHOST协议对于包含在最长链中并导致链分叉的区块也有一套处理机制:

(1) Orphaned blocks,完全无用的区块,挖出来的矿工没有收益。 比特币链中的分叉块是孤立块。

(2)叔块,由一定范围内的后续子块打包存储的块,挖出叔块的矿工将按照一定的算法获得奖励。

可以看出,GHOST协议并没有改变POW共识机制的出块方式,只是在主链的选择上引入了孤儿块和叔块的概念,修改了低性能的主链选择方式在POW共识机制的改进上,提高了个体矿工和小矿池的挖矿积极性,在减少时延的基础上减少了算力的浪费。

3 POW共识算法的链下扩展

对于POW的共识方式,扩链的性能提升非常有限,无法满足商业应用的需求。 许多研究人员将目光投向了链下的扩容方式。 通过改变区块链交易的拓扑结构,减少 POW 共识。 工作负载将链的性能提高了一个数量级。

3.1 闪电网络

闪电网络的核心思想是设计一个链下支付通道,通过该通道可以进行多次交易,而无需记录在链上。 用户每次在链下完成一笔交易,用自己的私钥签名更新自己的资产负债表,只有当通道关闭时,资金才会根据最近签署的资产负债表进行分配,以及初始余额和最终余额的信息余额被广播到区块链。

为了实现闪电网络链下支付通道的建立和使用,闪电网络建立了RSMC(Recoverable Sequence Maturity Contract)和HTLC(Hashed Timelock Contract)的概念,以保证其链下支付通道的建立和使用。支付渠道。 RSMC保证两个人之间的直接交易可以在链下完成,HTLC保证任意两个人之间的转账可以通过“支付”通道完成。 闪电网络具有以下特点和优势。

(1) 提高交易速度和吞吐量。 闪电网络可以实时完成交易,不受传统区块链网络交易确认速度的限制。 对于批量交易,只进行最后的链上确认,提高了吞吐量。

(2)交易手续费低,支持跨链交易。 闪电网络可以在不信任第三方中介的情况下,通过链下交易实现跨链交易,降低了每笔交易的平均手续费,有利于小额交易的应用。

(3) 安全且匿名。 闪电网络建立了安全的支付通道,通过私钥签名和存款系统确保用户资金安全; 同时交易在链下进行,这也使得所有小额支付几乎无法被追踪。 闪电网络虽然提高了区块链的吞吐率,但也带来了一些安全隐患和问题:

哈希算法比特币_比特币pow算法_比特币挖矿采用的算法

(一)网络催收风险。 收款人需要在收到钱之前签署恢复交易,以便付款人知道在恶意关闭通道或拒绝签名的情况下他们可以恢复资金。 因此,为了接收支付,需要一个热钱包,而热钱包存在用户私钥泄露的风险。

(二)监控渠道风险。 闪电网络参与者或服务提供商需要主动监控支付通道,这会给用户或服务提供商带来负担,降低通道内资金的安全性。 同时,链上监控疏忽或网络拥塞可能导致错过回收交易期限。

3.2 分片共识机制

分片技术是建立在传统的数据库分片概念基础上的一种扩展技术,将数据库分成多个分片,并将这些分片放置在不同的服务器上。 在公链场景下,网络上的交易会被分割成不同的碎片。 因此,每个节点只需要处理自己区域内的少量交易,通过与网络上其他节点的并行处理,就可以完成大量的验证工作[10-11]。 目前的分片技术主要分为以下三种。

(1) 网络分片 网络分片是最基本的分片方式。 通过将整个区块链网络划分为多个子网,每个子网形成一个分片,网络中的所有分片并行处理。 不同的交易。 通过可验证随机函数(VRF),网络可以随机选择节点形成分片。 随机采样的方法可以防止恶意节点过度填充单个分片。 同时,共识机制保证了同一分片内不同成员意见的一致性。

(2) 交易分片 交易分片的前提是当前网络已经分片。 在基于UTXO的账本系统中,可以通过交易哈希值的最后几位进行分片,实现了分片的随机性。

为了防止恶意交易发起者发起双花交易,必须创建一个账户系统。 每笔交易都有一个发送方地址,系统可以根据发送方地址分配一个分片,保证两笔双花交易在同一个分片中,因此系统可以轻松检测双花交易,无需任何交叉分片沟通。

(3) 状态分片 状态分片的关键是将整个存储区分开,让不同的分片存储不同的部分。 每个节点只负责托管自己的分片数据,而不是存储完整的区块链状态。 状态分片可以减少状态的冗余存储,使得整个区块链网络具有存储的可扩展性。

4 POW共识算法性能分析

比较常见的公链共识算法有POW、POS、DPOS等,随着公链技术的发展,出现了POSSpace、POSt等新的共识机制,但目前市场占有率较低,很多还没有市场化比特币pow算法,但代表着公链共识机制的拓展方向。 本文以传统的 POW、POS 和 DPOS 以及新的共识代表 POSSpace 和 POSt 为例,对它们的性能进行对比分析,论证 POW 共识机制的优缺点。 权益证明(POS,Proof of Stake)是一种公链共识算法,它依赖于验证者在网络中的经济利益。

在基于权益证明机制(POS)的公链中,每个验证者的投票权重取决于自身权益。 简单地说,你拥有的份额越多,就越容易被挖到。 股份授权凭证(DPOS,Delegated Proof of stake)又称“股东代表机制”,将每个持有一定数量代币的节点视为股东,股东根据数量投票选出一定数量的节点他们持有的代币作为代表,依次生成区块。 如果部分代表在出块过程中发现问题,股东会再次投票选出新的代表进行替换。

空间证明(POSSpace,Proof of Space)利用电脑硬盘中的闲置空间进行存储,从而获得挖矿收益。 硬盘空间越大,存储的内容越多,获得的代币奖励就越多。 POSSpace挖矿门槛低,去中心化程度高,能耗小。 时空证明(POSt,Proof of Spacetime)是Filecoin项目采用的共识机制。 POSt 本质上是一种存储证明。 它使用节点在一段时间内存储的数据作为计算能力的证明,为 POSSpace 增加时间。 细分概念。 表 2 是五种共识算法的性能比较。 表 2 共识算法比较

比特币挖矿采用的算法_比特币pow算法_哈希算法比特币

5 POW 共识算法展望

POW共识算法作为比特币的共识机制,在当前市场上依然占据主导地位。 以闪电网络为代表的扩容方式,使得POW共识机制在未来的商业中得到更广泛的应用成为可能。 然而,POW 算法的核心矛盾,即吞吐量与安全性的矛盾,给 POW 算法的发展带来了困难。 目前,BFT(Byzantine Fault Tolerance,拜占庭容错算法)算法和联盟链技术越来越受到关注。 各国监管部门一直对去中心化公链系统持谨慎态度,这使得POW算法的市场化受到制约,未来POW算法的发展将以监管为主,POW与BFT的融合是大势所趋。

6结语

本文详细概述了POW共识算法的技术特点及其扩展升级。 首先分析了POW共识算法的工作量证明机制,指出其优缺点,然后针对这些优缺点介绍了性能扩展算法。 本文将扩容算法分为链上扩容方式和链下扩容方式,分别介绍了Bitcoin-NG、Byzcoin和GHOST三种POW算法的链上扩容方式,以及两种POW算法的链下扩容方式包括闪电网络和分片机制的方法分析了每种扩展方法对POW共识算法的性能和安全性的提升。 然后本文将POW共识算法与其他公链共识算法进行了比较,展示了POW共识算法的性能特点。 最后,本文对POW共识算法的未来进行了展望。

作者简介 >>> 戴安波(1992—),男,硕士,主要研究方向为电子货币和区块链; 陈功良(1961—),男,博士,教授,主要研究方向为密码学与信息安全。

选自《通信技术》2019年第十二期(为排版方便,原文中的引用已略去)