论文阅读-Lay Down the Common Metrics: Evaluating Proof-of-Work Consensus Protocols’ Security背景知识

一种用于定量分析 PoW 协议的链质量和抗攻击性能的多指标评估框架,提出了 PoW 安全分析中的几个常见缺陷,并指出了更安全的 PoW 协议未来的发展方向。

背景

参考

如何让中本聪共识更牛 | ViaBTC全国行·上海站
张韧博士就这篇论文工作做的主题演讲
喜报!Nervos 研究员张韧论文被顶级安全会议 IEEE S&P 接收!

综述

共识协议是当前区块链网络最重要的部分之一,并已经由最早的PoW衍生出PoS与DPoS等诸多共识协议。
不过当前行业所面临的问题是,技术的不断进步与用户需求的提升会要求区块链共识协议做出一定的改进,但这往往相当困难,以太坊就是最典型的案例。在这种情况下,如何设计出一种可以自我调整的共识协议越来越成为行业的内在需求。
公链和围绕公链形成的生态就如同一个社会体系,很多时候整个社会不是不想快速前进,而是需要一个保守的方式,以稳定和安全为第一优先级,尽量用最小化的变动完成对新情况的适应。

技术是不断进步的,不断会有新的硬件设施、软件技术,会有全新的需求,要求区块链协议做出一定的改进。最理想的方式是区块链能够足够的底层、足够灵活、足够简单,在需要升级的时候能够尽可能避免过多的变动。

弱点

分叉

以太坊从 2015 年至今,经历了三次分叉:

  1. Homestead 分叉,通过了 3 个 EIP;
  2. Byzantium 分叉,通过了 8 个 EIP;
  3. Constantinople 分叉,通过了 5 个 EIP。
    而 GitHub 中的正在讨论的 EIP 还有上千个。

吞吐量

链接到网络中的比特币 IPv4 节点在 2016 年时带宽中位数为 33 Mbit/s,在 2017 年 2 月,这个数字达到了 56 Mbit/s。而比特币的最大吞吐量至今没有太大的改观。

让共识算法能够根据环境调节自己的吞吐量????

在 Nervos 共识研究员张韧之前的分析中,我们知道衡量区块链共识协议的一个标准是带宽利用率。带宽提高是节点间通信水平的提升,意味着共识会更加高效。
共识协议是一开始就写死的,如果需要修改则要进行分叉。比特币、以太坊如果需要根据网络情况提高自己的吞吐量,需要的是开发者对网络情况进行估计,权衡效率和安全,然后采用一种保守的方案对协议进行升级。

优化方向

最好的情况是:设计一种共识机制能够根据带宽水平的提升「自我进化」,来适应带宽增长带来的变化。(这可真的太难了)

优化方案

有一个区块链能够感知的指标,同时这个指标能够体现当前网络的情况。根据这个指标协议能够动态调节自己的吞吐量。

调整指标-孤块

以比特币为例,一个在中国的矿工很幸运的在上个区块出块之后的 9 分钟的时候挖到了区块,然后他很开心地开始广播这个区块。但是这个区块花了几十秒还是没有广播到美国的矿工,十分钟的时候美国的矿工发现了同样高度的区块,也开始广播。

随着两个区块通过比特币的 P2P 协议不断广播开来,这时候大家会发现网络里有两个相同高度的区块,这时候比拼的就是全网算力的支持,一部分算力认可北美矿工的区块,根据这个区块所在的链进行挖矿,另一个则在中国矿工所在链上挖矿,这时候就是产生了分叉。

在随后的几个区块竞争中,双方阵营的矿工必然有一个先抢出块权,成为最长链,而后根据最长链原则,最后只能有一条最长链被所有矿工接受,结束分叉。另一条被遗弃的链上面的区块就是孤块。

Q1:在分叉开始到确定孤块这段时间内,两个小叉链上产生新的区块,这些区块会有奖励吗?最后如果被确认为孤块,还会有奖励吗?

孤块是区块链能够感知的,我们可以用全网的孤块率作为指标,来评估目前网络带宽情况。孤块率低的时候意味着网络情况良好,没有太多的出块竞争,高的时候则表示网络情况太差,需要调高出块难度,提高出块间隔避免密集的出块产生竞争。因此设置一个合理的孤块率作为指标,协议根据当前孤块率,对比这个指标评估网络情况动态调节出块难度会是一个不错的选择。

《Lay Down the Common Metrics: Evaluating Proof-of-Work Consensus Protocols’ Security》

在每一个难度周期根据网络中的孤块率(孤块的信息会被打包到区块中用于统计和计算)动态调节难度,从而调节出块间隔。这个共识协议的设计在比特币 Nakamoto Consensus(即中本聪共识) 的基础上进行修改,能够在不损失安全性的同时提高网络的吞吐量 —— 被称为NC-Max,希望它能够突破 Nakamoto Consensus 的吞吐量极限。

衡量指标

1)出块奖励如何计算?

出块间隔是变化的,出块奖励其实也是变化的。但是在一个难度调节周期,总出块奖励保持不变。

2)吞吐量提高之后,是否有存储的问题?

交易速度提高了,交易产生的存储需求也会增加。
很巧的是,根据之前提到的 Moore’s Law 以及 Nielsen’s Law ,带宽增长速度略慢于存储水平的提升。

在 NC-Max 的设计中,除了采用动态调整出块间隔和区块奖励来提升带宽利用率以外,还有两个设计亮点

1)采用两步交易确认来降低孤块率
交易首先会提交交易的编号(编号是完整交易的 hash 值,和交易一一对应)在区块的交易提案区进行共识,之后只有经过提案的交易才能完整发送,从而能够一定程度降低孤块率;

2) 在难度调整的时候考虑周期中所有的区块,包括孤块,来抵御「自私挖矿」攻击。

总的来看,共识协议的自我调整会受到行业越来越多的关注,其解决方案也会越来越多。

论文

摘要

数百种加密货币参照比特币的 Nakamoto Consensus 协议(NC,中本聪共识),采用工作证明(PoW)机制来维护其网络。然而,研究表明,NC 无法实现完美的链质量,它允许恶意矿工改变公共账本,以便发起多种攻击,即自私采矿,双花攻击和羽毛分叉。以以太坊,比特币 NG,DECOR +,Byzcoin 为代表的一些后期设计(还有一些做出来的,有一些销声匿迹的设计),旨在通过提高链的质量来解决问题;以 FruitChains,DECOR +、Subchains 为代表的其他协议声称,它们可以在链的质量并不完美的情况下抵御攻击,因此它们不需要提高链的质量。由于它们的自称未得到有效性证实,社区对是否存在安全的 PoW 协议存在分歧。为了解决这种分歧并且制定通用的标准,本篇论文介绍了一种用于定量分析 PoW 协议的链质量和抗攻击性能的多指标评估框架。

随后,我们利用此框架,通过马尔可夫决策过程法,评估这些改进方案的安全性。我们得出的结论是,到目前为止,没有任何一种 PoW 协议能够实现理想的链质量或抵抗以上三种攻击。我们将现有 PoW 协议链质量的不完美归因于不切实际的安全假设,不完善的攻击抵抗能力则是由于「奖励作恶」和「惩罚好的」的两难困境。此外,我们的分析还列举了多种新的、针对特定协议的攻击策略。根据分析,我们提出了 PoW 安全分析中的几个常见缺陷,并指出了更安全的 PoW 协议未来的发展方向。

猜你喜欢

转载自blog.csdn.net/weixin_39333120/article/details/109577584