编译:洒脱喜
译者前言: 以比特币为代表的无许可工作量证明(PoW)区块链,不仅会面对51%攻击的威胁,还会遇到贿赂攻击的可能,特别是交易排序和排除攻击已引起了很多的关注,对此,研究者们对贿赂攻击和类似的技术(统称为激励攻击)进行了系统的分析和分类,并提出了3种改进版本的激励攻击方式,证明了这一问题领域并没有被完全探索。相比以前的贿赂攻击,这些新的通过智能合约的攻击方式不仅无需信任,还大大降低了攻击成本。这表明仅假设诚实的和拜占庭的行动者,并不能准确反映无许可PoW密码货币的安全属性。
原论文作者来自SBA Research、伦敦帝国理工学院、伦敦大学学院、 IC3以及IOHK等机构,完整研究人员名单如下:
(图片来自:pxhere.com)
以下为论文译文:
2016年,关于密码货币贿赂攻击的可行性首次被提出,此后,学界提出了各种新的技术和方法。最近关于真实世界发生的小型密码货币的51%攻击事件,强调了目前存在的贿赂攻击的威胁性,特别是对无许可的密码货币而言。
而本文则对贿赂攻击和类似的技术(这里统称为激励攻击)进行了系统的分析和分类。此外,我们通过提出几个新的改进过的激励攻击方式,证明了这一问题领域并没有被完全探索。
我们将(无需分叉和近分叉)激励攻击视为一个强大但被忽视的类别。特别是交易排序和排除攻击(exclusion attack)已引起了学界对状态类密码货币(如智能合约平台)的严重安全担忧。
此外,我们提出了第一种无需信任的带外(out-of-band)贿赂攻击方式,其能够促进不同区块链之间的双花共谋,即使在失败的情况下也能够补偿合谋者。
因此,这种攻击的成本相比类似的贿赂技术(如鲸鱼攻击)要便宜85%至95%。此外,我们将所有带外攻击的基本构建块作为以太坊智能合约来实施,以证明其可行性。
“只要诚实节点共同控制的总CPU能力,超过任何协作组攻击者节点,则系统就是安全的。” —— 中本聪[25]。
尽管关于密码货币领域的研究在不断增多,但目前仍不清楚比特币(以及中本聪共识)在实际条件下是否具有激励相容性,以及该系统的预期属性是否来自矿工的适当实用模型[10]。贿赂攻击,尤其是目标激励相容性,假设至少有一些矿工会理性行事,即他们接受贿赂以最大限度地获取利润。如果攻击者和所有可贿赂的矿工能够获得相当大的计算能力,那么即使在很短的时间内,攻击也可能是成功的。因此,通过诸如Crypto51等事件,有效地强调了获得多数计算力的经济可行性,特别是针对小型PoW币种。
另一个值得关注的严重原因是是交易排序和排除攻击(如[19]),这可以作为(近分叉或无分叉)激励攻击来执行。因此,对手的目标是贿赂矿工,使他们以有益于对手的方式建造新的(有效)区块。这种攻击的一种特殊形式,被称为预先交易(front running),这是最近的研究中经常被强调和分析的,主要关注其在以太坊平台中的应用[12, 14]。
理性矿工(无需信任地)向最高出价者拍卖其区块提议(即投票)内容的可能性,引发了大多数无许可区块链的安全性和声称保证的根本问题。
迄今为止,大多数的激励攻击方式都集中在优化参与者效用上。在本文中,我们还考虑了贿赂可能会如何破坏机制设计和导致理性参与者偏离规定的协议。为此,我们首先系统地揭示了关于贿赂、预先交易(front running)、金手指(Goldfinger)以及其它相关攻击的研究主体。这些技术可总结为一般术语激励攻击,因为它们都打算篡改系统中理性行动者的激励。
这篇文章系统化地提出了激励攻击方式,其中有3种是新提出的,其中有两种是属于先前未被充分代表的无分叉和近分叉激励攻击。
而第三种,则是第一种在带外(out-of-band)场景中激励无需信任的双花共谋攻击。
此外,我们还为激励攻击引入了三个关键的增强功能,即(i)短暂的挖矿中继,作为执行无需信任的、时间限制、跨链激励攻击的机制,(ii)即使攻击失败,也保证被贿赂的矿工能够收到支付,这实际上降低了此类攻击的成本,(iii)众筹攻击,进一步降低实施激励攻击的个人成本。
论文首先概述了被经常分析和最新提出的激励攻击的一般系统模型假设的共同点(章节2)。
第3节内容系统地分析和比较了有关贿赂攻击和相关攻击的文献。
在第4节中,我们首先大致概述了新的 pay-to-win攻击,包括必须满足的主要技术要求。
第5、6和7节详细描述了如何使用这些技术攻击当前的密码货币。
而在第八节,论文将进行一般性讨论,最后第9节内容则是结束语。
注:原论文还在附录部分提供了关于实施(短暂挖矿中继)和评估个人攻击的广泛详细信息,读者有兴趣可观看原文。
对于所有分析和提出的激励攻击,我们采用以下一般系统模型。如果分析的攻击偏离此模型,则在描述攻击时会突出显示。我们还介绍了与攻击有关的额外假设和必须条件。
这些激励攻击,是针对无许可的工作量证明(POW)密码货币进行的。也就是说,我们假设协议是遵循了比特币[25]的设计原则,通常也被称为中本聪共识或比特币基础协议[17、26、31]。
在被攻击的密码货币当中,我们区分了参与共识协议,并试图解决POW难题的矿工以及不参与此类活动的客户端。与之前关于贿赂攻击的研究[9,21,23,32]一样,我们假设一组矿工是固定的,以及他们各自在网络中的计算能力保持不变。为了从货币细节中抽象出来,我们使用术语value(值)作为一定数量的密码货币单位或任何其它带外资金(如法定货币)购买力的通用面值。
矿工和客户端可能拥有密码货币单位,并且能够通过在网络中创建和广播有效交易来转移该值。
此外,与先前的工作一样,例如[21、23、33],我们作出简化假设,即在攻击期间,币的汇率是保持不变的。
参与矿工被分为三组,在攻击期间他们的角色保持不变。分类遵循BAR(拜占庭式,利他主义,理性)[5, 20] 模型进行。
拜占庭矿工或攻击者(Blofeld):攻击者B想要对目标密码货币执行激励攻击,B控制贿赂基金(FB > 0),其根据攻击场景,可以是带内或带外的。其在目标密码货币中拥有一些或没有算力(α ≥ 0)。攻击者可能会任意偏离协议规则。
利他主义或诚实矿工(Alice):诚实矿工A始终遵循协议规则,因此他们不会接受贿赂,而在不同的链状态下进行挖矿工作,他们也不会偏离规则(即使这样做会带来更大的利润)。 矿工A在目标密码货币中控制了部分或没有控制算力(β ≥ 0)。
理性或可贿赂矿工 (Rachel):矿工R在目标密码货币中控制的算力为ω ≥ 0,其会最大限度地提高短期利润。我们认为,如果矿工遵循的策略偏离了协议规则,只要他们预期会比诚实的矿工获得更高的利润,那么他们就是“可贿赂”的。受攻击的密码货币当中,可贿赂矿工拥有的算力为ω > 0。
在分析中,我们假设可贿赂的矿工不会同时从事其他理性的策略(例如自私挖矿)。
此外,我们假设行贿攻击的受害者(Vincent)是一个没有算力的客户。虽然其它贿赂攻击将受害者建模为一个诚实矿工,但我们也区分了理性的受害者,以便进行更细致的描述和后续分析。如果Vincent拥有一定的算力,并以此建模,它可以被认为是β或ω的一部分。 而α + β + ω = 1 。
每当我们将攻击称为无需信任时,这里都意味着行贿者和被行贿者之间不需要信任第三方来确保为所期望的行为执行正确的付款。
因此,我们的目标是设计一种激励攻击,其可使攻击者和合谋矿工在经济合理的情况下没有动机背叛对方。
参与者通过一个对等式的gossip网络,我们假设这个网络实现了可靠的广播功能。我们进一步假设,目标密码货币中的所有矿工在攻击开始后,都能完全了解这次攻击。与[17]相似,我们将对手Blofeld建模为“rushing”,这意味着其在决定决策之前,可以看到所有其他参与者的信息,例如执行攻击。
如果在所考虑的方案中涉及多个密码货币,即一笔额外的密码货币资金被用于策划和资助对目标密码货币的攻击,然后我们假设它们各自的平均区块间隔时间和挖矿难度在攻击期间保持不变。
此外,没有同时针对密码货币融资发起攻击。
激励攻击是贿赂性攻击的一种普遍形式[9],包括旨在操纵理性参与者动机的对抗性策略。
在此,我们首先从两个不同的维度介绍一个一般分类,即攻击对交易及其排序的预期影响和所需的干扰,以及由分叉导致的区块链重组深度,以使攻击成功。
结合其他重要特征和方法,文章对激励操纵攻击的研究主体进行了系统的分析和分类。
无许可PoW密码货币的核心目标是(最终)实现一致且完全有序的交易日志,并定义共享账本的全局状态。
我们区分以下三类主要的激励攻击,旨在操纵交易及其顺序:
交易修订:更改先前发布的、可能已确认的交易;
交易排序:改变提议的或已商定的交易顺序;
交易排除:在限定的时间内或无限期地,从交易的有序日志中排除特定交易;
一些激励攻击可能允许同时进行多种类型的交易操作(见表1)。使交易失效的能力,可被认为是成功执行一个或多个上述交易操纵攻击的结果,并且不需要单独的类别。
虽然前一类交易操纵攻击描述了预期的影响,但在这里,我们需要考虑到所需的干扰,以达成共识。
具体来说,我们介绍了三种不同的分叉要求。
需要深度分叉(Deep fork),其中需要深度l超过安全参数k的分叉(即l > k)。受害者定义k[16,30]并指出接受交易所需的确认区块数量;
需要近分叉(Near-fork),其中所需分叉深度不依赖于受害者定义的k(即l ≤ k);
不需要分叉,根本不需要区块链重组(即k=0);
不需要分叉的攻击,通过操纵挖矿者的区块提议而不是(初步)共识决策(即已开采的区块),将其与其他两类攻击区分开来。而深度和近分叉攻击,试图撤销已通过连续工作量证明确认的账本状态更新。
有些攻击,例如 front-running预先交易或交易修订(受害者接受k=0)攻击,可作为无分叉攻击执行。
其他的,例如在受害者仔细选择k[30]的情况下进行双花,可能需要实质性地影响共识,并违反安全假设,但其概率可忽略不计[16]。
根据预期的冲击和要求的干扰,我们进行分类,我们考虑有关激励操纵攻击的相关工作。作为讨论的一部分,我们还介绍了其他特性。表1显示了以前被提议的分类,以及我们最新提出的“pay-to-win”攻击。
其中每行代表不同的攻击,每列概述了它们各自的属性。
第3.1小节概述了交易修订、交易排序以及交易排除。而在文献中,有几次贿赂攻击旨在取代或修改特定交易,即执行一次双花交易 [9, 21, 23]。
因此,他们不考虑定义任意交易的顺序或排除。尽管存在双花交易,但后续区块内容可由贿赂矿工自由定义。
因此,这些矿工还可通过利用原始攻击者资助的攻击,免费执行一笔交易的双花。
GoldfingerCon [23] 可被看作是交易排除攻击的一个特例,其奖励比特币矿工,在以太坊智能合约的帮助下开采空块。
同样,PitchWorks[18]利用合并挖矿来补贴在受攻击的链中创建空(或专门制作的)区块[18]。
Script puzzle 38.2%[32]和CensorshipCon攻击[23],分散了可贿赂矿工的算力,以获得针对其余诚实矿工的优势。
这两种攻击都允许任意交易排序和排除,但要求对手比其余矿工控制更多的算力。
深度分叉和交易修订不会直接考虑,这需要进一步的分析。
之前唯一提出的实现这三个属性的攻击,是Script Puzzle双花 [32]。然而,一旦成功执行这类攻击,理性的矿工就会被剥夺贿赂,从而使攻击无法重复。
第3.2节概述了需进行链重组,并对实现攻击时是否使用近或深分叉的攻击进行了分类。
经典的双花攻击场景[28,30]需要深分叉(l > k)来重组织链。由于攻击者完全控制执行攻击所需的算力,因此他还可以任意排序交易,并从最长链中排除交易。
根据场景和所需的攻击结果,例如,只有排序是相关的,那么就不一定需要深分叉。
例如,可以在不需要分叉的情况下操纵未确认交易的顺序,例如执行front running [14]。目前,研究者们尚未对智能合约密码货币的排序攻击进行深入研究[29]。
在本文中,我们在激励攻击的背景下概括了这种能力,并分析了如何实现它(第5节)。
如表1所示,有三次攻击要求α > 0。Script Puzzle 38.2% 攻击允许对手以适当的算力建立计算多数,在不考虑双花攻击的情况下获得净利润。在(Script Puzzle 双花)中,对手没有最小算力要求,但它被设计为单发双花攻击。CensorshipCon还要求攻击者算力包括来自理性矿工的叔块(uncle block),由于它必须包含所有挖掘的叔块,所以它要求攻击者的算力大于 1/3,而可贿赂矿工的算力介于[1/3,2/3)。
注意,将攻击者算力占比限定为低于1/2是有意义的,否则攻击者就无需执行贿赂攻击,其可以独自完成对链的攻击。
需要最小比例的理性矿工算力ω,攻击才能有机会成功,如本文所描述和评估的。一般来说,所有贿赂攻击都必须假定至少有些矿工是理性的,从而才能进行贿赂。注意,Script Puzzle攻击要求所有矿工都是理性的,即α+ω=1。
将算力从被攻击的区块链的有效tip转移到一些其他形式的puzzle或替代分支,不会有助于状态转换。例如,CensorshipCon例子中的以太坊叔块,或Pitchforks例子中的另一种密码货币。
表1:针对密码货币的激励攻击,我们比较了现有的方案和新提出的P2W方案,如果是,则属性标记为✓,否,则标记为✗,而符号~则表示在没有进一步细节或讨论的情况下,无法将属性清楚地映射到任何先前定义的类别。符号⋆ 表示此攻击针对的是矿池,因此不打算操纵链。符号†表示论文未明确规定带外支付方法,但假定其正确性。
要求智能合约,适用于所有需要使用智能合约才能按预期运行的攻击。
付款,指定向受贿者付款的地点。奖励可以是带内的,即在受到攻击的各个加密货币中,也可以是带外的,例如通过不同的密码货币付款。
可以说,矿工们并不希望攻击会影响到其接收密码货币的价值,因此带外激励尤为重要。
攻击者的无需信任,是指是否存在合谋/贿赂矿工来利用攻击本身,从而在不遵守攻击的情况下获利。例如script puzzle攻击需要某种形式的新鲜度保证,以防止贿赂者故意等到攻击失败后再计算puzzle解决方案来获得奖励。也有可能要求奖励那些陈旧的诚实区块,这些区块后来被作为叔块提交给CensorshipCon。
合谋者之间的无需信任,是指受贿者不必信任攻击者,在他们执行攻击后,就能收到付款。在Checklocktime贿赂攻击中,对手可通过创建冲突/竞速交易来尝试欺骗。但是,只有当攻击者控制的算力α > 0时,才可能进行此类尝试。
鲸鱼交易(Whale Transaction)也是如此,因为攻击者必须在攻击的每一步为攻击链上的每个区块提供新的高费用交易。
虽然HistoryRevisionCon并未明确考虑合谋矿工的不信任问题,一种增强是可能的,CensorshipCon要求攻击者包含由合谋矿工所产生的区块,因此并不是无需信任的。
Script Puzzles双花攻击被设计为一种欺诈合谋者的一次性攻击。
Script Puzzles 38.2%攻击没有指定如何支付,并假定一个无需信任的带外支付方法。
在front-running预先交易攻击中,攻击者无法保证通过高费用实现所需的排序。
补贴(Subsidy)意味着攻击利用了密码货币或环境的某些特征,从而变得更便宜。
在CensorshipCon的例子当中,来自叔块的奖励被用来补贴攻击,而在Pitchforks中,合并挖矿产生的额外收入被用作激励。
而所谓攻击失败时进行补偿(Compensates if attack fails),是指至少有一部分贿赂是无条件支付给受贿者的。
为了成功地雇用理性矿工,诸如Checklocktime [9], whale [21]以及HistoryRevisionCon [23]等攻击,必须要补偿参与者,即便攻击的最后结果是失败的。
截至目前,还没有任何支持交易修订的攻击能够实现此属性。
Script Puzzle双花攻击如果成功,就会骗取被贿赂的矿工,而在失败时,才会支付奖励。
在 Front-running攻击中,即使没有达到所需的排序效果,通常也会产生很高的交易费用。因此,在这种情况下,它是攻击者不需要的属性。
可以观察到,大多数贿赂攻击场景要么关注交易修订,要么关注交易排除,而只是将交易排序当作副产品。一个显著的例外是front-running攻击,我们认为,front-running只是可能的(重)排序攻击的一个子集。例如,可以考虑在其他两笔交易之间精确定位一笔交易。
此类攻击的一个例子可以在[29]中找到,其中还描述了堵塞合约中的一个漏洞。
一般来说,只要生成有效的区块,任何矿工都可自由定义要包含在自己的区块提议中的顺序和交易集。
在本文中,特别有趣的场景是,攻击者可操纵交易的顺序,而这些攻击者本身不是矿工。对智能合约密码货币的交易排序攻击,我们还没有得到很好的理解和讨论[29],但在实践中我们却是可观察到的[12,14]。
而排除交易攻击的一个显著例外是CensorshipCon [23]。
此外,我们还观察到带外激励攻击的不足。除了Goldfinger攻击之外,唯一可用的技术,攻击者需掌握大量算力。注:Proof-of-stale-blocks [22] 代表了针对矿池的特殊情况。
理论上,所有在带外执行付款的攻击,都可以用于发起Goldfinger式攻击,因为受贿者的报酬,与被攻击的密码货币的价值是没有直接联系的。
这种攻击是否有利可图的问题,取决于失败的密码货币所能产生的外部效用。
在下文中,我们针对不同的场景提出了新的激励攻击。
我们提出了3种不要求攻击者和合谋矿工互相信任,而能够赢得报酬的激励攻击方式。此外,我们还区分了带内攻击(即在同一密码货币内资助和执行攻击)和带外攻击(即在不同密码货币上资助和协调的攻击)。
这类攻击不需要攻击者控制任何算力,即假设α=0。
本章节内容提供了这类攻击的概述,要求的技术和操作要求。而第5-7节内容,则分别详细说明这些攻击的结构:(i)对攻击的总体概述,(ii)逐步描述,(i v)攻击评估,(v)攻击分析属性。
带内攻击(In-Band Attack):我们介绍了一种新的带内攻击方式,其能够在智能合约工作量证明区块链上执行和协调。
带内交易排序:这种攻击(第5节)激励了带内无分叉交易排序:如果攻击者要求进行未确认的交易,则对串谋矿工给予奖励。
与front running [12]相比,这种攻击利用智能合约直接奖励矿工,只要维持正确的排序条件。当前的 front running攻击可被视为全支付拍卖 [12],其中丢失的交易(即其执行失败),也会不必要地支付高额费用。
带外攻击(Out-of-Band Attack):我们将目标密码货币(攻击将在其中执行)与资助密码货币(攻击将在其中协调和支付)区分开来。虽然资助密码货币必须支持智能合约(如以太坊),而目标密码货币(如比特币)则没有什么要求。 实际上,带外攻击是很难被发现的,因为这需要监控多个支持智能合约的区块链。
带外交易排除/排序:此攻击(第6节)提出了一种带外交易排除攻击,其中攻击者还可以指定所包含交易的顺序。这可能用于审查某些交易(例如关闭支付通道)或立即执行多个front-running攻击。为了执行攻击,我们描述了攻击者如何构建智能合约,该合约临时奖励在目标密码货币上创建攻击者定义的区块。
我们将此技术称为短暂挖矿中继(ephemeral mining relay),因为它将来自矿池和链中继的元素组合到一起(参见本节末尾)。
带外交易修订:最后,我们描述了一种带外交易修订攻击(第7节),它可直接促进双花共谋攻击:矿工被攻击者贿赂去另一个区块链开采其青睐的分支区块。这种技术结合了之前介绍的技术,从而形成更为强大的攻击。
我们展示了如何构建它来始终奖励合谋矿工,而不管攻击的结果会是如何。有趣的是,这使得攻击成本显著降低,因为当攻击失败时,对合谋者的必要补偿会减少。
以上提到的三种无需信任的攻击方式,需要用到的技术要求总结如下:
(1)由攻击者定义的区块间隔(在目标链上)中的一个区块,以一种无需信任的方式验证:
(a)执行了某种状态转换(例如一笔交易被包含在区块链当中);
(b)未发生某种状态转换(例如,未包含一笔交易);
(2)将区块唯一地属性到矿工地址的无需信任的方法,以及将后者映射到资助密码货币中的相应地址的方法。
(3)将资助加密货币中的价值,转移到合谋矿工公司唯一归属的资助密码货币地址的无需信任的方法(见第2点)
(4)在攻击者预先定义的区块(即最长链)上挖取T个区块后,确定目标密码货币状态的无需信任的方法。 这意味着有可能在资助密码货币的智能合约中验证目标密码货币的PoW情况。
(5) 在攻击者预先定义的区块(即锚定在此特定块上的攻击链)上挖取T个区块后,确定目标密码货币攻击状态的无需信任的方法。
短暂挖矿中继(Ephemeral mining relay):为了验证攻击的结果,并在无信任的带外场景中正确支付奖励,我们引入了短暂挖掘中继的概念。短暂挖掘中继是一种智能合约,它结合了链中继[2、11、36]和矿池[22、34]的功能。
然而,与之前的提议相比,挖掘中继能够通过限制允许的区块结构,来充分验证目标密码货币的共识规则。此外,它会跟踪所有正在进行的区块链分支,这是正确验证激励攻击的必要功能。我们在论文的附录G.1 部分提供了关于短暂挖矿中继结构的更详细描述,以及部署在以太坊上用于验证比特币区块链的概念验证实施及成本分析。
根据实施结果来看,这种额外验证成本大约是每区块1美元,这与激励攻击的潜在经济收益相比是微不足道的。
这种“无分叉”攻击,相比front-running攻击 [12, 14]而言,为矿工重新排序未确认的交易支付额外的奖励。在front-running攻击中,对手通过增加支付给矿工的交易费用,增加了他们的交易被首先接受的机会。然而,其结果就是一次全支付拍卖:即使攻击失败,矿工们也可以把高手续费的交易纳入区块。
因此,攻击者必须始终支付费用,却与攻击结果无关 [12]。相比之下,新提出的攻击确保攻击者仅在攻击成功时(即,如果实现了其所需的交易排序),向共谋的矿工支付报酬。
初始化:对手(Blofeld)观察p2p网络,并在其看到受害者(Vincent)的交易txV后发起攻击,他想通过front-running攻击预先注册一个域名或与交易所进行交互(砸盘或抢购)。首先,Blofeld发布了他的front-running交易txB。同时,他用两笔交易的标识符,所需的顺序(txB < txV),交易被纳入的区块,以及一笔贿赂金ϵ ,发布并初始化攻击合约。 一旦这个创建交易的合约被挖到了,(i)配置不再可更改,(ii)贿赂金被锁定,直到攻击结束。这对于防止攻击者在攻击执行后试图通过改变支付条件来欺骗合谋矿工而言是必要的。
攻击:如果攻击成功,合谋矿工将生成一个具有所需交易顺序的区块。
注:即使受害者试图通过费用替代法(replace by fee) [4],用 tx′V 来更新原始交易 txV,txV仍然会是有效的,矿工可选择将其纳入区块。因此,只要满足支付条件,理性矿工将按规定的顺序纳入 txB和txV,因为这会带来最高的回报。
支出:在k个区块之后(k是本例子中攻击者定义的区块链安全参数),矿工就可以索要他们的报酬,而智能合约会首先检查两笔交易的顺序是否符合规定。
5.2.1 只有理性矿工情况下的评估(ω = 1):首先,我们假设一个场景,其中所有的矿工都是理性的,即都是可贿赂的。矿工们被激励与攻击者合谋,因为合约除了保证正常的挖矿之外,还能够保证其获得ϵ > 0 的奖励。
参与这种攻击不需要在另一个分叉上挖矿,因此,合谋矿工不会面临自己开采的区块被判断无效的额外风险。矿工也可以将未确认的攻击合约创建交易包含在与排序攻击本身相同的区块中,并且如果其区块成为最长链的一部分,仍然可以确定是否付款。
5.2.2 存在利他矿工情况下的评估 (ω+β=1):理论上,这种攻击在存在可贿赂矿工(ω>0)的情况下都是可行的,但其算力占比越高,成功的机会也就越大。
如果有2/3的算力是由理性矿工所控制的,那么攻击成功的可能性预计就有2/3 。在附录Section C部分,会有更多的相关分析。
我们现在来分析受害者 (Vincent)可能的防御策略。具体来说,我们考虑了反贿赂的可能性。
立即反贿赂(Immediate Counter Bribing):只要新的区块没有被开采,受害者就可以通过相同的攻击机制立即进行反贿赂,这是对付此次攻击的有效对策。在此,攻击者和受害者之间进行了一场英式拍卖(增价拍卖),而不是在其他front-running攻击中观察到的全支付拍卖。
这种防御策略,就要求受害者Vincent正在积极监控P2P网络,并立即意识到攻击。
延迟反贿赂(Delayed Counter Bribing):如果受害者Vincent只有一个SPV(简化支付验证[25])钱包,他可能只能在攻击者预定交易顺序的新区块被挖到后才能识别到攻击。Vincent没有算力,他不能直接发动反攻来分叉各自的区块。因此,其成功反贿赂攻击的成本,已经大大高于原始攻击者Blofeld的成本。此外,从前面第3节中描述的贿赂攻击来看,在这种情况下,Vincent没有直接适用的攻击。而关于从链上移除这样一个区块的成本分析,可参见原论文的附录C。
在本节中,我们将描述如何构造带外激励攻击,它可以促进交易排除和排序。这种攻击在某些方面,要优于以前的攻击:例如,对于试图错误关闭链外支付通道(即发布旧的/无效的状态)但阻止受害者执行常规惩罚措施的攻击者来说,此类攻击可能是有利可图的[13、24、27]。
带外攻击的优势在于,它们可通过任何智能合约密码货币进行资助,而攻击却是发生在不同的目标密码货币之上的。作为受害者,这类攻击是很难被发现的,其必须要监控多个支持智能合约的区块链。为了提高可读性,我们使用比特币(目标密码货币)和以太坊(资助密码货币)作为例子来描述下面的攻击。如第4节所述,我们依赖于短暂挖掘中继来可靠地验证目标密码货币的状态、攻击的正确执行,以及处理支付给合谋矿工的情况(有关中继的详细信息,请参见附录G.1和F)。
初始化:攻击者的目标防止未确认的交易txV包含在比特币(目标链)中新挖到的区块中。攻击者通过指定区块模版,来初始化一个攻击智能合约,只有当合谋比特币矿工使用它时,其才能够获得奖励。这允许攻击者完全控制挖取区块的内容,包括交易的排序及是否包含。对于每个区块模版,相应的贿赂也有条件地锁定在智能合约当中,只要矿工提供有效的解决方案,他们就可得到独立于攻击结果的补偿。
对于比特币区块模板,攻击者将不完整的区块头发布到攻击合约,以及相应的coinbase交易。后者是允许合谋矿工在块模板中包含他们自己的以太坊支付地址所必需的,因为之后如果提交了有效区块,则智能合约会负责付款。
参与攻击的矿工只能自由更改生成的比特币区块中的nonce以及coinbase字段(包括以太坊地址)。
我们指出,攻击者必须获得比特币区块奖励,而不是合谋矿工。相反,合谋者将在以太坊攻击合约中收到一笔贿赂金,以补偿比特币区块奖励。这需要一笔额外的贿赂支付金保证,以使合谋矿工不需要信任这次攻击,因为理性的矿工可能无法验证贿赂他们挖的区块模版是否会导致有效区块。
在原论文附录G.1和F中,我们提供了有关区块模板结构的更多详细信息。
攻击:理性矿工根据攻击者的区块模板,通过短暂挖矿中继(以验证他们是否形成了有效链),向以太坊上的攻击智能合约提交有效比特币区块。
由于可能会有多个矿工竞争获得同一区块模版的奖励,他们会被激励及时发布他们发现的任何有效的POW解决方案。
如果贿赂攻击作为一个整体是成功的,那么攻击合约会为每个解决方案支付额外的ϵ贿赂金,这是对被贿赂者及时发布解决方案的额外激励。攻击者发布目标链上具有相关完整区块的解决方案的动机,来自于其直接获得的奖励以及成功攻击的收益。
在每个步骤中,攻击者在每次提交到攻击合同后都会更新比特币区块模板,如果需要,还可以添加额外贿赂金。
如果没有提交新模板,则攻击停止。图1提供了正在进行的可视化示意图。
图1 :正在进行的、失败的区块链结构和时间表,以及一次成功的带外交易排除和排序攻击。当攻击合约在区块e0中发布时,攻击被初始化。 可以在单个区块中包含多个区块模块,如e3所示。支出在区块eT中执行。彩色区块将通过攻击合约获得奖励,或者仅使用其原始值,或者如果攻击成功,则获得额外的贿赂金,即收益为(1+ϵ)。
我们注意到,目标链和资助链有可能会取消同步,即在找到单个以太坊区块之前,挖到两个或更多的比特币区块。因此,攻击者还可以提前为多个区块发布区块模版(保留对上一个由矿工填写的区块的引用)。
支出:类似于带内攻击的例子,一旦攻击结束后挖了k个比特币区块,矿工可以在攻击合约中索要支付(k是攻击者定义的安全参数)。
这个攻击智能合约负责验证提交的区块的有效性,即它们的PoW与指定区块模版的一致性,并且所有区块都形成有效的攻击链。如果提交的区块有效,则攻击合约将奖励矿工(即使攻击链没有成功成为主链),也就是说,合谋矿工是没有风险的。
在任何情况下,第一个为各自区块模板提交有效POW的矿工,将获得相当于完整比特币区块奖励的价值(不管攻击是否失败),而如果攻击是成功的,则会附加上额外的一笔ϵ贿赂金。
6.2.1 只有理性矿工情况下的评估(ω = 1):首先,我们假设一个场景,其中所有的矿工都是理性的,即都是可贿赂的。一旦智能合约初始化,他们就能立即了解到攻击。如前所述,攻击者每次提交区块模版,就会锁定一笔贿赂金,以确保矿工不面临支付风险,并被激励加入攻击。对于N个区块的攻击持续时间,我们可通过评估最坏情况下(即攻击运行N个区块,但仍然失败)需支付给合谋者Blofeld的以太币资金(预算)。注意,只有攻击者才知道N的确切值。
必要的攻击预算及一次失败攻击的成本:如果攻击失败,攻击合约的预算必须覆盖并补偿每个比特币攻击链区块的损失奖励(用以太币支付)。攻击者fB的初始资金,以及每个比特币区块rb(包括费用)的预期回报,根据可补偿的攻击链区块,定义攻击N的最大持续时间:
因此,合谋规定了智能合约部署和执行的运营成本(如以太坊的gas成本)。与当前的区块奖励相比,考虑到[23]和附录G.1中的度量,管理智能合约的运营成本可忽略不计。假设攻击者想在持续1小时内(即N = 6)指定比特币中的交易顺序或排除一些交易。因此,攻击者fB的预算下限可由当前区块奖励得出,包括交易费:rb = 14 BTC,则1小时收益 ≈ 84 BTC 就是攻击的预算下限。
成功攻击的成本:有趣的是,预算的下限只需要在攻击失败弥补潜在的损失,但如果攻击成功,攻击者将获得主链上的区块奖励,从而补偿其必须支付给受贿矿工的奖励。因此,成功攻击的成本由N · rb主链区块得出,而支付给受贿矿工的奖励必须以N · (rb + ϵ)进行支付:
既然我们假设有理性的矿工,那么这种情况下的攻击成功率就是 iff ϵ > 0。为了使攻击成功获利,通过交易排序或交易扣押获得的金额va必须超过c(success)。
乍一看,无论攻击的结果如何,攻击者必须向合谋矿工支付报酬,我们可以假设,与其他贿赂计划相比,攻击者面临的成本很高。然而,这确保了矿工不会面临参与风险,与现有的贿赂攻击不同的是,这只需要支付一笔低价值的贿赂金来激励矿工参与攻击。
6.2.2 存在利他矿工情况下的评估 (ω+β=1):我们现在讨论一个更现实的场景,即并非所有矿工都会立即转向攻击链,其中有一些矿工的行为是无私的。
利他主义矿工遵循协议规则,只有当攻击链成为网络中最长链时,他们才会切换到攻击链,他们不会试图优化收入,这是与理性矿工是相反的。
利他主义矿工的区块也可能包含不受攻击者欢迎的交易和交易顺序。
因此,攻击者可能必须排除这些矿工的区块,即提供有意将这些区块分开的模板。如果利他主义矿工找到一个区块,攻击者和合谋矿工必须挖到两个区块,使攻击链成为最长链(那么利他主义的矿工就会跟随。)因此,所需分叉的深度就等于1.
图2 :x轴上n个区块内不同算力ω在yaxis(对数刻度)上追赶一个区块的概率。虚线是在无限个(n=∞)的区块(即(ω/β)^2)之后追赶一个区块的最大概率。
根据攻击者的预算,我们得出攻击链赢得与利他主义矿工竞争的概率。攻击链必须比利他主义主链多找到两个区块,但必须在n个区块的上限时间内(最大值资助攻击持续时间)实现这一点。
每一个新块分别附加到概率β的主链和概率ω的攻击链上β+ω=1)。因此,我们寻找所有可能附加到任意链上的块序列,并计算导致成功攻击的序列的概率之和。
在一个成功的攻击中,在主链中加入 i ∈ N 个区块,在攻击链中加入k+i+1个区块。此类攻击的概率为:
观察一系列成功的攻击,其中i区块添加到主链,k+i+1区块添加到攻击链。对于任何严格短于整个序列的前缀,攻击链的附加块数小于k+1,否则攻击将很快结束。因此,成功攻击中的最后一个块总是附加到攻击链上。此类序列的组合数与卡特兰数(Catalan number)相似,起始点的差为k:
假设攻击者只能为攻击链上最多N个区块提供资金,则成功攻击的概率由以下公式给出:
图2 概述了不同算力ω捕获一个区块的概率。可以观察到,N很快接近在无限多个区块内追赶一个区块的最大可实现概率,即根据[25, 28]的(ω/β)^2)。根据这些计算,攻击者可决定是否延长攻击时间,增加N,以更高概率赢得正在进行的比赛。
我们现在分析这种方法的重要特性。
反击:针对交易排除最有效的对策是增加txV的费用,使其超过攻击合约所承诺的价值。不过,这种攻击的好处在于,它可在带外执行。因此,受害者可能无法察觉到这种攻击,他们可能只在监视目标密码货币。因此可以说,受害者的反击是很难执行的,因为他们无法立即意识到攻击者为合谋矿工提供的贿赂资金。
交易审查DoS:在本节中,我们将比特币视为目标,但本质上,攻击也适用于其他类型的密码货币。(准)图灵完备智能合约密码货币,理论上说要比比特币的UTXO模型更能抵抗审查,因为它们允许复杂多样的交互模式,从而触发状态变化。我们认为,在本次讨论的基础上,交易审查应该把以太坊作为一个目标密码货币。然后,即使交易或其各自的侧面效应能够准确地识别并商定所有矿工作为不需要的行为,在这种情况下,也存在着受害者可能会发动拒绝服务攻击的可能性。
一笔交易的效果可通过多层智能合约调用和交互来代理。因此,问题出现了,矿工只能通过首先评估交易的状态变化来了解交易的不必要行为。如果要审查由此产生的行为,矿工必须回滚所有更改,并且不能为他们的努力收取交易费用。因此,攻击者可以在不损失资金的情况下浪费每个审查矿工的资源。在不改变共识规则的情况下直接解决这个问题是不可能的,但是,通过基于区块模块(如本节所述),问题就从合谋理性矿工转移至攻击者了。因此,攻击者可以选择只包含简单的交易,他确信这些交易不能隐藏任何不需要的活动,例如,所有价值转移交易、对已知合约的调用,例如ERC20代币等。
活跃度(Liveness):一般来说,链中继的活跃度一般取决于提交新的区块来提升它们的状态。因此,如果中继因缺少提交的数据块而处于缺乏状态,长程攻击将有更高的成功率,因为攻击者将获得额外的时间来计算长的假链。在缺乏状态的链中继中进行攻击的可能性取决于相关资金。
在我们的具体示例中,由于攻击的持续时间是有限的,并且定义是好的,因此活跃度不是一个问题。
此外,参与者有动机及时向中继者提供正确的信息。例如,考虑为b′3 挖一个区块模版的理性矿工R。那么R有动机要及时向POW提交这个模板的解决方案,因为他正在与其他理性的矿工竞争提供的奖励和贿赂金。由于额外的贿赂金只有在攻击成功时才能进行支付,这进一步激励了理性矿工及时发布解决方案。
此外,在这种情况下,攻击者可在任何阶段停止发布新的区块模板,以减少其损失,以防攻击可能失败。
此攻击的目的是贿赂矿工在目标密码货币的区块链分支上创建区块,攻击者以此执行双花。
这种攻击的新颖性来自三个方面:
(i)在双花攻击期间用于奖励不诚实行为和合谋的资金,是使用资助密码货币支付的,而不是目标密码货币本身。
(ii)为攻击提供资金,是通过智能合约来完成的,以此最小化攻击者的信任假设以及矿工参与攻击的风险:合谋矿工不必信任攻击者,即使攻击失败,攻击智能合约也能确保受贿矿工能够得到区块奖励,从而使这种攻击比类似的贿赂攻击更便宜。
(iii)此外,智能合约的使用,也为众筹或多次双花攻击尝试合并为单一协调攻击提供了可能性,从而进一步降低了成本或参与者的数量。
图3显示了攻击的阶段和两种不同的结果。
初始化阶段:首先,攻击者(Blofeld)创建未初始化的攻击合约,并将其发布到以太坊区块链上。
这是通过攻击者控制的以太坊帐户的某个以太坊数据块e0中包含的部署交易完成的。然后,Blofeld创建了一对相互冲突的比特币交易。这笔消费交易txB立即以比特币的形式发布在主链上,双花交易tx′B被保密。
在受害者定义的k区块确认期过后,在比特币主链上,Blofeld 发布了一笔初始化交易,该交易不可撤销地定义了以太坊链上智能合约中的攻击条件。区块e1代表比特币区块bk发布之后以太坊链上的第一个区块。
合约初始化时使用K+1个新的比特币区块模板,每一个都携带来自原始链的交易来收取费用,但不包含txA,而是包含冲突交易tx′B。
合谋矿工现在可以在这些区块模版上自由挖矿,在这些模版中,他们可以更改nonce和coinbase字段以找到有效的POW,以及包含他们的支付以太坊地址。
一旦找到解决方案,矿工必须将其提交给攻击合约,以验证POW的正确性,并且只更改了允许的字段(nonce和coinbase)
一旦找到解决方案,矿工必须将其提交给攻击合约,以验证POW的正确性,并且只更改了允许的字段(nonce和coinbase)。如果提交的解决方案是有效的,那么合约就知道使用哪个前一区块哈希来验证下一个解决方案等等。一旦攻击者意识到以太坊P2P网络中广播了有效的解决方案,他就会使用POW解决方案完成整个区块并将其提交给比特币P2P网络。
攻击者和合谋矿工有及时提交解决方案的动机。合谋矿工希望在攻击成功的情况下获得额外的贿赂金,攻击者希望将其区块包含在比特币主链中,以获得比特币区块奖励。
同时部署和初始化攻击合约也是可能的,但是在部署交易中预先发布未初始化的攻击合约具有这样的优势:对目标链的攻击甚至在开始之前也可被众筹(见下文)。在任何情况下,重要的是在主链上的区块bk之后披露双花交易 tx′B,否则Alice可能会认出这笔双花交易,并拒绝放行货物。
攻击阶段:被贿赂的矿工现在开始在攻击链上开采 k + 1个区块,如果在主链上发现额外的块,攻击者可使用k+2到N块的新区块模板更新攻击合约,其中N是攻击者可资助的最大攻击区块数。
支付阶段:一旦攻击在时间T结束,参与攻击的矿工可以从合约中收取贿赂金。
为了准确地支付贿赂金,合约必须确定哪条比特币链赢得了比赛,成为了当前的最长链。
由于合谋矿工正在争夺开采区块,因此合约应已收到他们所有的攻击链区块b′x,从而准确了解攻击分支的状态。
此外,初始化合约并提供资金的攻击者,有动机向主链提供信息(如果存在这样一个冲突的长链),因为他将为每个块支付额外的贿赂金ϵ。
因此,总有一些参与者有动机将正确的最长链输入攻击合约。
攻击合约区分了两种可能的结果:
攻击失败(主链获胜):在这种情况下,合约必须完全补偿被贿赂的矿工,因为他们的攻击链已经失效了。每个在攻击链上挖矿并成功提交一个区块的合谋矿工都将获得该区块的奖励,而没有额外的贿赂金ϵ;
攻击成功(攻击链获胜):如果攻击链获胜,则合约执行以下操作:完全补偿(奖励+费用=1)矿工从b1开始切换到攻击链后,经历k个主链区块的奖励,2) 支付合谋矿工每个攻击链区块的贿赂金,在本例子中是从b′1到b′k+2 个区块,全部区块的奖励加上额外的ϵ作为贿赂金。
一旦与矿工的提款交易一起调用,合约将检查攻击是否已经完成,以及知道一个到预定区块高度bT的有效链。这确保每个参与者都有足够的时间向合约提交关于最长比特币链的信息,并且b1到bN的区块,根据[30]中规定的链长中的规则,已收到足够的确认。
如果满足验收政策,合约将解锁向向相关区块的矿工支付补偿和贿赂金。
对于攻击链上的区块,在最简单的情况下,所有被贿赂的矿工直接在CoinBase字段中提供以太坊地址,或通过比特币CoinBase交易中的Pay-to-PubKey输出直接公开其公钥,正如 [23]中描述和实施的Goldfinger攻击案例。对于前k个主链区块,矿工还没有意识到攻击,他们必须向合约证明他们确实开采了各自的区块。
这是可实现的,例如,通过向智能合约提供对应于CoinBase输出中的支出的ECDSA公钥,以便检查它们是否匹配,然后重新计算相应的以太坊地址。
众筹:上面描述的攻击也打开了众筹贿赂资金的可能性。最简单的众筹方法,是允许在攻击合约部署之后,但在初始化之前捐赠资金。这种方法允许收集资金,但不为赞助人提供任何担保。
而激励多个攻击者同时执行双花攻击的解决方案,将允许在合作者之间分配攻击资金。在这种情况下,必须解决的主要挑战如下:
必须确保每个为实现双花攻击而投资资金的协作攻击者确实有一定的机会使其个人的双花交易成功,即,如果合约使用了其投资的资金,则一笔双花交易必须得执行;
必须确保攻击不会因协作攻击者而失败,以防他们破坏整个攻击,即参与者不可能导致攻击失败;
攻击不应依赖任何受信任的第三方;
有关如何在以太坊上构建此类攻击作为资助密码货币以及比特币作为目标密码货币的详细信息,请参见原论文附录F,大致来讲,其攻击的阶段如下:(1)首先,初始化交易只宣布可能发生攻击,并且会影响从b1到bk的区块间隔。(2)然后,所有在b1区块进行交易的比特币用户,都可以决定是否投资进行攻击,以潜在地双花他们的交易。协作攻击者,将新的交易与一些以太币一起提交到合约中,以增加攻击的总资金fB。攻击者还可根据提交的比特币交易(进行双花)的总价值,指定要收集的固定资金率。
如果恢复至少k + 1个区块的资金目标已经达成,攻击将如前所述开始。由于初始化合约的攻击者必须为包含双花交易的链生成新的区块,因此必须实现一些方法,确保其他攻击者的交易包含在 b′1当中。在附录F中,我们描述了一种方法,该方法要求原始攻击者提供与他想要收集的资金一样高的抵押品,即fB。因此,这可以确保其他攻击者仅在其交易真正包含在b′1 区块的新链中时支付。否则,将从初始攻击者提交的抵押品中退款。
与第6节中的评估类似,我们现在开始评估攻击成功概率以及攻击所产生的成本。我们再次分成两种情况: (i)我们假设只有理性矿工存在,然后评估攻击,(ii)考虑存在利他主义矿工的情况,然后进行评估。
7.2.1 只有理性矿工情况下的评估(ω = 1):当调整k作为攻击受害者定义的安全参数时,可得出攻击者fB 所需资金的下限,类似于第6节中的评估。
必要的攻击预算和失败攻击的成本:成功攻击中攻击链上的最小块数为k+1,即主链上所需的确认数,加上超过主链长度的1区块,因此,由条件n≥k+1必须保持攻击是可行的,因此可得出攻击者fb预算的下限。
对于比特币,通常的k选择为k=6,而当前的区块奖励(包括交易费用)约为rb = 14,这为≈98 BTC S.T.的预算提供了一个下限,以下不等式成立:
攻击成功的成本和盈利能力:同样,预算的下限只需要在攻击失败时弥补潜在的损失。但是,如果攻击成功,它会比这个下限要便宜。成功攻击的成本由k · rb的主链区块给出,该主链块必须在攻击链上得到补偿,再加上额外的N · ϵ贿赂金。
最初的k补偿是必要的,以提供所有切换到攻击链上生产区块的矿工。由于我们假设的都是理性矿工,那么这种情况下的攻击总是成功的,前提是N ≥ k +1保持,且ϵ > 0。
对于比特币,这意味着,在k=6,rb=14,且ϵ = 0.0001的情况下,成功进行双花的成本 ≈ 84.0007 BTC。为了使成功的攻击有利可图,双花的值必须大于用于贿赂的值。而在比特币交易中,我们经常会看到超过84 BTC的交易。
这进一步强调了交易量对确认时间的依赖性,如[30]所述。
7.2.2 存在利他矿工情况下的评估 (ω+β=1):图4显示了可贿赂算力ω的不同值,以及贿赂矿工可奖励或补偿的不同数量块的攻击成功概率。攻击开始后主链上的确认区块数设置为k=6。显然,攻击需要N > k才能成功。与经典的51%攻击一样,一旦可贿赂算力超过50%的阈值,并且应付区块数N增加,则攻击最终会成功。
图4: 双花攻击成功的概率,取决于贿赂攻击中可补偿或奖励N区块的数量。可贿赂算力ω的不同值,会造成不同的攻击成功率。确认区块数设置为6.
考虑到这些概率,以及给定k和ω值,我们可计算出成功率达到99.4%所需的区块数N。
表2显示了与[21]中描述的鲸鱼攻击(whale attack)的对比。可以观察到,与鲸鱼攻击相比,当ω变大时,我们的攻击变得更便宜,因为我们更快地达到所需的概率,因此所支付的贿赂金就会更少。此外,如果攻击成功,我们的攻击成本低于攻击开始时为补偿所有合谋矿工(如果攻击失败)所需的预算(fB)。
因此,这种攻击的成本要比鲸鱼攻击(whale attack)要便宜85%到95%。
7.2.3可用资金:在可能发生众筹攻击的情况下,理论上,如果低值双花交易共同积累足够的攻击资金(fB),则可实现低值交易的双花。
一个比特币区块内转移的价值与开采一个比特币区块所分配的奖励(包括费用)之间的差异表明,使用该技术进行长距离双花攻击的的资金在理论上是可用的。去年每天链上交易的比特币(不包括找零地址)的中值约为10亿美元,而包括交易费用在内的每天挖矿奖励中值约为1500万美元。
此攻击的特性与第6节中描述的带外攻击相当。此外,以下方面需要进行更多的讨论。
反贿赂:如前几节所述,反贿赂是受害者抵御激励攻击的可行策略。这也说明了激励攻击的一个重要方面,即它们的可见性。一方面,目标密码货币的矿工必须认识到攻击正在进行,否则他们将无法加入其中接受贿赂金,则攻击将失败。另一方面,如果攻击的受害者认识到它的存在,他们可发起和协调反贿赂攻击。因此,如果所有理性矿工都被直接告知了此次攻击,而所有受害者/商家本身又不是矿工,并且没有监控所有可能的资助密码货币,以检查是否发生了攻击,那么就出现了激励攻击的最佳条件。
成本优化:在提议的攻击中,最大的成本驱动因素是k个主链区块的补偿,以激励所有理性矿工转向攻击链。在一个区块链中,每个区块都独特地归属于一组已知的矿工,并且这些矿工的总体算力可近似计算,补偿的支付可以各种方式进一步优化。例如,考虑一个场景,一个小矿工与其他矿工相比运气好,在k个区块内开采数个区块。然后攻击者可以将该矿工排除在补偿支付之外,因为对方不太可能对攻击链做出实质性贡献。
通过对激励攻击的全面系统化归类,以及提出新的攻击方法,表明在定义无许可POW密码货币系统的基本安全保证方面,不仅算力的分布扮演着核心作用,理性矿工以及可获得的贿赂金的比例也是一个重要组成部分,这还需要进一步进行研究。我们提出的带外攻击,也有助于强调,通过与其他密码货币互联,可增加目标密码货币的攻击面。
在设计无需信任的带外攻击的过程中,我们还发现了一个有趣的类比:在抽象层次上,所呈现的攻击需要一个不同于矿池的构造,在矿池中,矿池所有者定义了智能合约中区块创建的规则。
此外,每个参与者必须能够根据提交的区块及目标密码货币的状态,以无需信任的方式申请攻击承诺的贿赂金。我们提出的短暂挖矿中继技术提供了这种功能,Luu等人[22]还提出了一种智能矿池,其本身是由智能合约管理的。然而,其设计和潜在应用并没有考虑恶意的用例。智能矿池不强制执行有效POW以外的区块内容和有效性相关的任何属性,因为参与者之间的内在激励被假定为以挖取的密码货币收集相应的奖励,只有在创建了有效区块时才可能。
基于智能合约的激励攻击,还为多个攻击者引入了无需信任众筹及利益协调的可能性,这些攻击者希望在同一时间段内执行双花攻击。结合反贿赂的研究课题,研究提出了中本聪共识激励相容性的基本问题。
一个有趣的话题是,利用激励攻击技术鼓励挖矿实体和协议参与者实行可取而非恶意行为,例如在协议升级阶段快速实现多数共识。
本文系统化地展示了激励攻击,为相关工作的比较和讨论提供了必要的前提和依据。我们通过描述和评估三种新的无需信任的激励攻击,来弥补一些由此发现的研究差距,这些攻击具有新的特点,并且比以前的方法要更便宜。
这一研究表明,针对密码货币的激励攻击仍然是一个开放和高度相关的研究课题,其涉及各种未经探索的领域。所有先前提出的,以及在现实中观察到的激励攻击,以及本文中描述的攻击,都表明仅假设诚实的和拜占庭的行动者并不能准确反映无许可PoW密码货币的安全属性。一旦考虑到理性的参与者,就会出现有趣的问题,此外,在一个多种密码货币共存的世界中,将它们单独建模为封闭系统可能还是不够的。
为了更准确地评估风险和安全保障,需要对激励攻击及其复杂的跨链交互,进行进一步的博弈建模和分析。
[1] [n.d.]. Average Number Of Transactions Per Block. https://www.blockchain. com/en/charts/n-transactions-per-block. Accessed 2019-05-10.
[2] [n.d.]. BTC Relay. https://github.com/ethereum/btcrelay. Accessed 2018-04-17.
[3] [n.d.]. CoinMarketCap: Cryptocurrency Market Capitalizations. https:// coinmarketcap.com/. Accessed 2019-05-10.
[4] [n.d.]. Replace by Fee. https://en.bitcoin.it/wiki/Replace_by_fee. Accessed 2019-05-11.
[5] Amitanand S Aiyer, Lorenzo Alvisi, Allen Clement, Mike Dahlin, JeanPhilippe Martin, and Carl Porth. 2005. BAR fault tolerance for cooperative services. In ACM SIGOPS operating systems review, Vol. 39. ACM, 45– 58. http://www.dcc.fc.up.pt/~Ines/aulas/1314/SDM/papers/BAR%20Fault% 20Tolerance%20for%20Cooperative%20Services%20-%20UIUC.pdf
[6] Adam Back, Matt Corallo, Luke Dashjr, Mark Friedenbach, Gregory Maxwell, Andrew Miller, Andrew Poelstra, Jorge Timón, and Pieter Wuille. 2014. Enabling blockchain innovations with pegged sidechains. http://newspaper23.com/ripped/ 2014/11/http-_____-___-_www___-blockstream___-com__-_sidechains.pdf Accessed: 2016-07-05.
[7] Nir Bitansky, Ran Canetti, Alessandro Chiesa, and Eran Tromer. 2012. From extractable collision resistance to succinct non-interactive arguments of knowledge, and back again. In Proceedings of the 3rd Innovations in Theoretical Computer Science Conference. ACM, 326–349.
[8] Nir Bitansky, Ran Canetti, Alessandro Chiesa, and Eran Tromer. 2013. Recursive composition and bootstrapping for SNARKs and proof-carrying data. In Proceedings of the forty-fifth annual ACM symposium on Theory of computing. ACM, 111–120.
[9] Joseph Bonneau. 2016. Why buy when you can rent? Bribery attacks on Bitcoin consensus. In BITCOIN ’16: Proceedings of the 3rd Workshop on Bitcoin and Blockchain Research. http://fc16.ifca.ai/bitcoin/papers/Bon16b.pdf
[10] Joseph Bonneau. 2018. Hostile blockchain takeovers (short paper). In 5th Workshop on Bitcoin and Blockchain Research, Financial Cryptography and Data Security 18 (FC). Springer. http://fc18.ifca.ai/bitcoin/papers/bitcoin18-final17.pdf
[11] Vitalik Buterin. 2016. Chain Interoperability. https://static1.squarespace.com/static/55f73743e4b051cfcc0b02cf/t/5886800ecd0f68de303349b1/1485209617040/ Chain+Interoperability.pdf Accessed: 2017-03-25.
[12] Philip Daian, Steven Goldfeder, Tyler Kell, Yunqi Li, Xueyuan Zhao, Iddo Bentov,Lorenz Breidenbach, and Ari Juels. 2019. Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges. arXiv preprint arXiv:1904.05234. https://arxiv.org/pdf/1904.05234.pdf
[13] Christian Decker and Roger Wattenhofer. 2015. A fast and scalable payment network with bitcoin duplex micropayment channels. In Symposium on SelfStabilizing Systems. Springer, 3–18.
[14] Shayan Eskandari, Seyedehmahsa Moosavi, and Jeremy Clark. 2019. SoK: Transparent Dishonesty: front-running attacks on Blockchain. arXiv preprint arXiv:1902.05164. https://arxiv.org/pdf/1902.05164.pdf
[15] Uriel Feige, Amos Fiat, and Adi Shamir. 1988. Zero-knowledge proofs of identity. Journal of cryptology 1, 2 (1988), 77–94.
[16] Juan Garay, Aggelos Kiayias, and Nikos Leonardos. 2015. The bitcoin backbone protocol: Analysis and applications. In Advances in Cryptology-EUROCRYPT 2015. Springer, 281–310. http://courses.cs.washington.edu/courses/cse454/15wi/papers/bitcoin-765.pdf
[17] Juan A. Garay, Aggelos Kiayias, and Nikos Leonardos. 2016. The Bitcoin Backbone Protocol with Chains of Variable Difficulty. http://eprint.iacr.org/2016/1048.pdf Accessed: 2017-02-06.
[18] Aljosha Judmayer, Nicholas Stifter, Philipp Schindler, and Edgar Weippl. 2018. Pitchforks in Cryptocurrencies: Enforcing rule changes through offensive forking- and consensus techniques (Short Paper). In CBT’18: Proceedings of the International Workshop on Cryptocurrencies and Blockchain Technology. https://www.sba-research.org/wp-content/uploads/2018/09/ judmayer2018pitchfork_2018-09-05.pdf
[19] Aashish Kolluri, Ivica Nikolic, Ilya Sergey, Aquinas Hobor, and Prateek Saxena. 2018. Exploiting The Laws of Order in Smart Contracts. arXiv:1810.11605. https://arxiv.org/pdf/1810.11605.pdf
[20] Harry C Li, Allen Clement, Edmund L Wong, Jeff Napper, Indrajit Roy, Lorenzo Alvisi, and Michael Dahlin. 2006. BAR gossip. In Proceedings of the 7th symposium on Operating systems design and implementation. USENIX Association, 191–204. http://www.cs.utexas.edu/users/dahlin/papers/bar-gossip-apr-2006.pdf
[21] Kevin Liao and Jonathan Katz. 2017. Incentivizing blockchain forks via whale transactions. In International Conference on Financial Cryptography and Data Security. Springer, 264–279. http://www.cs.umd.edu/~jkatz/papers/whale-txs.pdf
[22] Loi Luu, Yaron Velner, Jason Teutsch, and Prateek Saxena. 2017. SMART POOL : Practical Decentralized Pooled Mining. http://eprint.iacr.org/2017/019.pdf Accessed: 2017-03-22.
[23] Patrick McCorry, Alexander Hicks, and Sarah Meiklejohn. 2018. Smart Contracts for Bribing Miners. In 5th Workshop on Bitcoin and Blockchain Research, Financial Cryptography and Data Security 18 (FC). Springer. http://fc18.ifca.ai/bitcoin/ papers/bitcoin18-final14.pdf
[24] Andrew Miller, Iddo Bentov, Ranjit Kumaresan, and Patrick McCorry. 2017. Sprites: Payment Channels that Go Faster than Lightning. https://arxiv.org/pdf/ 1702.05812.pdf Accessed: 2017-03-22.
[25] Satoshi Nakamoto. 2008. Bitcoin: A Peer-to-Peer Electronic Cash System. https: //bitcoin.org/bitcoin.pdf Accessed: 2015-07-01.
[26] Rafael Pass, Lior Seeman, and abhi shelat. 2016. Analysis of the Blockchain Protocol in Asynchronous Networks. http://eprint.iacr.org/2016/454.pdf Accessed: 2016-08-01.
[27] Joseph Poon and Thaddeus Dryja. 2016. The bitcoin lightning network. https://lightning.network/lightning-network-paper.pdf Accessed: 2016-07-07.
[28] M. Rosenfeld. 2014. Analysis of Hashrate-Based Double Spending. https: //arxiv.org/pdf/1402.2009.pdf Accessed: 2016-03-09.
[29] Ilya Sergey, Amrit Kumar, and Aquinas Hobor. 2018. Temporal Properties of Smart Contracts. In Leveraging Applications of Formal Methods, Verification and Validation. Industrial Practice - 8th International Symposium, ISoLA 2018, Limassol, Cyprus, November 5-9, 2018, Proceedings, Part IV. 323–338. https://ilyasergey.net/ papers/temporal-isola18.pdf
[30] Yonatan Sompolinsky and Aviv Zohar. 2016. Bitcoin’s Security Model Revisited. http://arxiv.org/pdf/1605.09193.pdf Accessed: 2016-07-04.
[31] Nicholas Stifter, Aljosha Judmayer, Philipp Schindler, Alexei Zamyatin, and Edgar Weippl. 2018. Agreement with Satoshi - On the Formalization of Nakamoto Consensus. Cryptology ePrint Archive, Report 2018/400. https://eprint.iacr.org/ 2018/400.pdf
[32] Jason Teutsch, Sanjay Jain, and Prateek Saxena. 2016. When cryptocurrencies mine their own business. In Financial Cryptography and Data Security (FC 2016). https://www.comp.nus.edu.sg/~prateeks/papers/38Attack.pdf
[33] Itay Tsabary and Ittay Eyal. 2018. The gap game. In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. ACM, 713–728. https://arxiv.org/pdf/1805.05288.pdf
[34] Yaron Velner, Jason Teutsch, and Loi Luu. 2017. Smart contracts make Bitcoin mining pools vulnerable. In International Conference on Financial Cryptography and Data Security. Springer, 298–316.
[35] Fredrik Winzer, Benjamin Herd, and Sebastian Faust. 2019. Temporary Censorship Attacks in the Presence of Rational Miners. Cryptology ePrint Archive, Report 2019/748. https://eprint.iacr.org/2019/748
[36] Alexei Zamyatin, Dominik Harz, Joshua Lind, Panayiotis Panayiotou, Arthur Gervais, and William J. Knottenbelt. 2018. XCLAIM: Trustless, Interoperable Cryptocurrency-Backed Assets. Cryptology ePrint Archive, Report 2018/643. https://eprint.iacr.org/2018/643.pdf https://eprint.iacr.org/2018/643.
附录部分:请看原论文 https://eprint.iacr.org/2019/775.pdf
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:服务于区块链创新者
评论0条