主页 > imtoken注册 > 简介 | 区块链中的自私挖矿

简介 | 区块链中的自私挖矿

imtoken注册 2023-07-16 05:18:58

工作量证明 (PoW) 区块链实现了一种状态机复制 (SMR) 形式。 不同于传统的SMR协议,PoW区块链是开放的,即任何人都可以加入协议,系统会用经济利益来激励参与者(也称“矿工”)遵守协议。 因此,与传统的 SMR 协议也有很大不同,在论证区块链的安全性时,简单地假设恶意行为者的数量往往得不到答案。 关键是要问矿工是否真的有足够的动力来遵守他们所使用的协议。 这就是本文的主题。

为了使讨论更加具体,我们将讨论的范围限制在中本聪的比特币协议上。 Ling 提供了一些背景知识以太坊私链挖矿难度,以及对恶意对手的安全分析。 在我们的分析中,我们打算将这个系统描述为矿工之间的博弈(game,也叫“游戏”)。

游戏

玩家是生产区块的矿工。 这个游戏是轮流进行的。 在每一轮中,一个矿工可以生产一个区块,其他矿工可以发布这个区块。 同时,游戏中的消息是同步传输的,所以所有矿工都会收到上一轮释放的区块。

这当然简化了现实。 例如,该模型忽略了系统中总算力的缓慢变化,也忽略了偶尔发生的区块冲突(即分叉)(这种情况很少见,但仍然会发生。)。 即便如此,这个模型作为一阶近似已经足够了。

该协议是让每个矿工在最长的链上生产一个区块,或者,如果分叉中的两条链长度相同,他们将遵循最先收到的链。

游戏中的每个玩家都致力于最大化自己的收入——这就是TA的效用函数(utility function)。 具体来说,我们还假设这是一个无限视野博弈,即随着博弈时间不断趋近无穷大,矿工的收益就是其平均出块率。 这意味着根据矿工生产的区块,以加密货币的形式向区块矿工发放奖励。 注意主链外的区块不会进入矿工收益。

重要观察

主链出块比例是对矿工收益的实时模拟。

假设系统中的总算力是静态的,系统每10分钟出一个块,难度调整完成后立即发起攻击。 假设一个区块生成策略会导致网络中一定比例的区块被丢弃。 比如所有矿工出块的20%会在主链外产生,这个比例是稳定的。 所以,虽然这个系统还是每10分钟出一个块,但是只有80%会在主链上出块,也就是说主链的增长速度会变成每12.5分钟出一个块,而不是每10分钟出一个块。 比特币协议每 2016 个区块调整一次难度,因此调整难度所需的时间会比平时更长(12.5×2016 分钟而不是 10×2016 分钟)。

一旦发生难度调整,难度会再次降低,这样主链的出块间隔就会变回10分钟。 这意味着系统整体出块速度更高,每8分钟可出块一个。

因此,如果一个矿工在全网的算力占比为α,主链出块比例为α′ > α,则其每小时收益将与α′成正比(与α不成正比)。

自私挖矿算法

自私挖矿(Selfish Mining)是一种投机性挖矿算法,用于证明上述协议对小矿工不公平(不是均衡)。 我们先来看看自私挖矿的机制,然后讨论自私挖矿为什么以及什么时候会产生这样的效果。

一开始,自私的矿工会像协议所希望的那样在最长的链上挖矿。 但是,一旦TA挖出一个区块,TA会先隐藏这个区块,而不是立即发布,然后在秘密区块之后尝试继续出块,形成“秘密分支”。

2021年以太坊挖矿难度_以太坊挖矿软件_以太坊私链挖矿难度

同时,其他矿工会延长公链,最终会变长(概率为1),因为他们拥有很大的算力份额。 自私地挖矿的矿工继续扩展他们的秘密分支,直到公共分支落后一个街区。 然后自私的矿工将发布他的秘密分支。

以太坊私链挖矿难度_2021年以太坊挖矿难度_以太坊挖矿软件

因为秘密分支比较长,对方会认为这是主链。 从此以后,所有人都将追随自私矿工的分支,其他矿工挖出的区块将被丢弃——不理不睬。 让区块矿工一无所获。

但这种策略并非万无一失——自私的矿工从秘密挖矿开始就一直在冒险。 如果TA出一个秘密块,其他矿工也出一个块,TA不能通过公布这个秘密块成为最长链; 相反,它将成为两个相同长度的分支竞争最长的链。

以太坊私链挖矿难度_以太坊挖矿软件_2021年以太坊挖矿难度

自私的矿工会尝试扩展自己的分支; 为了简化分析以太坊私链挖矿难度,我们假设其他矿工也会尝试扩展自己的分支。 如果TA能抢占下一个区块,TA的分支就会成为最长链,然后下一次攻击会在最长链的末端重新开始。 如果其他矿工产卵,自私的矿工处于劣势(TA 的链更短)。 在这种情况下,TA就会放弃这次攻击,寻找下一次机会。 在这次攻击中,TA的秘密分支会变成更短的分叉,让TA一无所获。

自私挖矿分析

乍一看,这种攻击应该行不通——自私的矿工只有少量的算力,所以他们必须少赢多输。 然而,仔细分析就会发现,情况并非总是如此。 这个博弈可以很自然地描述为一个马尔可夫链(译者注:马尔可夫链,在状态转换的过程中是“无记忆的”,即新一轮的收益与之前任何一轮的收益是不相关的) . 通过计算自私矿工的出块量和其他矿工的出块量,我们可以计算出自私矿工的出块(和收益)在主链上的比例,这实际上是其算力规模的函数。

2021年以太坊挖矿难度_以太坊私链挖矿难度_以太坊挖矿软件

我们可以看到,算力占比超过1/3的自私矿工可以通过违反协议,实施自私挖矿算法来增加收益。

综上所述

以上分析表明,当自私矿工的算力超过1/3时,自私挖矿策略的收益高于诚实挖矿策略,但这是乐观假设下的结果。 如需更深入的分析(包括较弱的模型和加强协议的途径),请参阅 Financial Crypto 2013 上的论文和 ACM 2018 会议上的论文。

随后的研究,包括最近的一项研究,都使用马尔可夫方法来确定诚实挖矿策略占优势的哈希率阈值(本文中使用的方法也是如此)。

感谢 Ittai Abraham 提供的信息反馈。

请在 Twitter 上给我们一些评论。

(完)

(文内有许多超链接,可点击左下 ”阅读原文“ 从 EthFans 网站上获取)


原文链接:

https://decentralizedthoughts.github.io/2020-02-26-selfish-mining/

作者: Ittay Eyal

翻译: 阿剑

你可能还喜欢: