How to Model the Bribery Attack: A Practical Quantification Method in Blockchain

论文 专栏收录该内容
1 篇文章 0 订阅

文章贡献:

  1. 提出了一个定量分析已有贿赂攻击模型的方法;

  2. 设计了一个贿赂攻击模型并给出收益计算公式

  3. 实验证明本文的贿赂攻击模型相比于同类模型能够减少攻击成本,提高攻击收益

  4. 给出了一个可能的解决方案

两种贿赂形式:

in-band (in the target cryptocurrency):攻击者把用于贿赂的钱放在块里,这样一些矿工就会为了获得更多的收益而在攻击者的私链上挖块

out-band (in a different cryptocurrency):主要目的是破坏数字货币的竞争力由此获取利益。带外贿赂攻击需要银行转账或用其他加密货币完成交易。首次出现 在这篇论文里

McCorry, P., Hicks, A., Meiklejohn, S.: Smart contracts for bribing miners. In:
Zohar, A., et al. (eds.) FC 2018. LNCS, vol. 10958, pp. 3–18. Springer, Heidelberg
 
两种方式相比之下,带内攻击更关注直接利益。本文主要关注矿工和攻击者在 in-band 下的收益
 
章节内容:
  • Section 2 基本知识
  • Section 3 简要总结贿赂攻击研究并做定量分析
  • Section 4 本文提出的攻击模型及计算方式
  • Section 5 实验
  • Section 6 解决方案

Section3

Fig.2 表示的是贿赂攻击造成双花的过程,首先主链上有Tx块包含了攻击者的一笔intended double-spend 交易,攻击者将包含Tx的块的前一个块作为私链的前一个。一旦攻击者发现块,就将冲突交易Ty放进块里。随后只要有新块加到私链上,攻击者就会支付一笔贿款给rational miner,也就是图中Ty后面的Tb1,……Tbk。当私链长度大于主链,且主链中的 intended double-spend 交易也已经被确定的时候,贿赂者就可以公布自己的私链并在不通知商家的情况下废除intended交易。在这样的情况下,攻击者获胜。

P_{b}\cdot \delta = P_{m}\cdot\zeta

对现有贿赂攻击模型的分析,从以下几个不同的角度,不同参数名称

  • Smart Contract :要求智能合约的攻击,需要加密货币系统支持智能合约,并且还需要另外支付一笔运营费用

  • Payment: in-band能够避免其他影响因素,更方便,rational 矿工也能更准确计算自己的预期回报

  • Expected gains :攻击者攻击成功能够获得的收益。之前的研究中,都没有考虑怎么计算收益。贿款越大,攻击成功的概率越高,但是这样攻击者就不能得到较大的收益甚至贿款已经大于expected gain了。攻击者的最终受益是:expected gain - expected cost。

  • Repay if attack fail: 意思是不论攻击者的攻击是否成功,都支付出去了一些贿款。一定的好处能够提高rational矿工参与攻击的概率,但是对攻击者来说并不是一个很好的选择。

已有的贿赂攻击中,攻击者的收益几乎没有被考虑。攻击者花了很多钱去贿赂,但是却没有增益,这是不太现实的。本文的模型就更多的考虑了贿赂攻击者的收益。过去的模型也没有考虑过rational 矿工的决策行为。攻击者为了保证自己的利益,需要仔细计算贿款的大小。rational矿工也会在与攻击者合作和诚实挖块之间做选择。

 

本文的模型,将贿款以交易的形式写进私有链中的块里,如果攻击失败,这些交易就会失效。这样可以降低攻击成本且可以更好的鼓励rational矿工在攻击者的私链上挖块。简言之,就是把决策的风险丢给rational矿工,让他决定在私链上工作保证自己得到贿款还是在公链上工作。

Section4 Model Design

4.1 Assumptions

  • 攻击者(briber)的算力小于0.5,rational miner(miners) 和 briber 的算力之和小于0.5。这样是为了避免51攻击,我们要考虑的是更不利于攻击者的条件。
  • 只有一个攻击者(briber)
  • 受贿者miners 一旦做好决定就不更改,也不会考虑攻击者放弃攻击。
  • 实际收益计算. 我们的假设里,贿赂就是把一笔转给miners的交易包含在私链中。为了吸引miners,私链每增长一次,briber都需要包含这样的贿款在私链里。与以往工作不同的是,miners不仅需要考虑在后面的状况中的可获得的收益,还要考虑它在前面已有块中可以得到的贿款。
  • Marcov decision process.根据前面的假设,briber和miner可以预测攻击成功的概率。决定怎么接下来怎么挖块取决于对下一阶段收益的预测。现阶段包括之前已出块。
  • Normalized Unit. 为了简化计算,块奖励设为1

4.2 Strategies

Miners的decision making process:主要就是在主链和私链上挖块的期望收益的差异。每当miners得到一笔贿款时,miners就会对比贿款Rb跟自己在主链上挖块的收益Rm。如果贿款更大,就在私链上挖块,如果Rm更大,就在主链上挖块。

Bribers的decision making process:  一旦briber的intended交易被包含在一个块中,他就开始挖掘自己私链的一个块。然后,它会综合考虑影响自己收益的因素,据此计算出给miners的贿费。

本文的模型结合了briber和miners的决策,展示出来的算法省略了以下细节:miner的决策总是在变得,因为miner会基于自己得预期收益来决定在哪个链上挖块。

Beginning of Attack. briber公布了intended 交易,并且开始挖掘自己的私链。假设私链已经比主链落后了z个块。

Process of Attack. 仿真实验中,我们总是站在私链的角度去评估。之前说到,在私链增长一个块长的期间,主链增长了好几个块。  函数 add_to_main  返回的就是主链上新增块的数量。Add_Reward 函数是指跟诚实矿工竞争的时候矿工在主链上找到的块。这可以抽象成概率问题,n个已经生成的块中,有k个是属于miner的。这是二项分布,所以这个概率 k 可以计算出来。

Markov Decision Process. 就像假设部分提及的,当矿工做选择的时候,他只比较私链和主链挖块能带来的预期收益,而不考虑其他因素如贿赂停止或攻击带来的比特币贬值。私有链上的预期收益是只考虑过去的贿赂费,过去的挖块条件和现在攻击的成功率。

 

4.3 Profit Calculation

在这一部分,我们展示briber和miner怎么根据他们的决定算出他们的收益。我们列出并解释了模型中用到的标志。

Calculation of Miner's Mining Profit.

我们考虑了两种情况下受贿矿工的收益。

第一种是rational矿工(the miner)选择在主链上挖块,也就是攻击失败,他的预期收益是

如果攻击失败,rational 矿工(the miner)就只能从主链获得收益,包括前面已获得的块奖励 k 和 下一个可能的块奖励

第二种是 rational 矿工(the miner)继续在私链上挖块,攻击成功

预期收益为

rational miner 可以获得的收益包含 之前获得的块收益,下一个块收益,之前获得的贿费,下一个块贿费

Calculation of Briber's Attack Profit.

一个briber从攻击中获得的收益等于双花的intended 交易费减去贿费以及攻击失败时可能的损失。这里,给出了一个等式,briber 的收益R是:

v 是briber双花交易的钱,Pb是briber 攻击成功的概率,r 是私有链的长度。δ 是现在块的贿费,δi 是之前 第 i 个块的贿费。

为了能够从攻击中获益,briber必须保证利润大于0,也就是以下不等式能够成立

 5
Section5 Simulation and Analysis

在这一章中,我们实现了我们的模型并得到了几个结论。Section5.1展示了我们仿真实验用到的参数并在python程序中实现了我们的仿真实验。  通过实验和分析,我们发现bribers可以获得交易回报的90%。

5.1 Scenario

  • 每个攻击的输入都是交易费 v, 收益相关系数 θ, 算力 α,β
  • 每一组输入,我们都跑了10000次
  • 我们统计了失败的贿赂攻击数目
  • 统计所有的成功攻击的贿费,然后计算这些成功实验的平均收益和贿费
  • 对这10000次贿赂攻击实验,计算briber的 absolute gains(攻击成功的频率 * 平均收益    )  和 briber 的relative gains ( absolute gains / intended transaction fee )。

 

 

Section6 Defensive Strategy for Bribery Attack

基于以上分析,我们给出了应对块交易和确认的策略。拿比特币为例,我们认为在交易费很高的时候增加块需要确认交易。在等待六个块时,私链落后于主链的概率很高。假设briber需要等待六个以上的块,私链和公链的长度差距更大,这对briber来说是不利的:更少的收入和更低的成功的概率。我们做了一个简单的实验来证实提高确认块的数量是有效的。数据显示在v=1, θ=0.1,a+b = 0.25 + 0.24 = 0.49 时 gains 和 errors 的关系。随着确认块数量从0~12 变化, absolute gains 反比例函数下降,errors显著增大。

transaction payment v 是可以直接影响攻击收益的关键因素。 高额交易能够最大化briber的收益。比特币可以有一个精确的交易上界。我们不能通过实验证实这一点因为块收益(我们的基本收益单元),在未来可能变化并且根据交易的变化,但这个提议还是有效的。与此同时,我们应该考虑briber 怎么去避免阈值限制:他有很多相同输入的交易 且 双花所有这些交易以通过交易限制。因此,我们认为除了交易阈值,同一个转款人的几个交易不能在短时间内出现在同一个块里。这些限制对常规交易和交易双方没有负面影响,因为他们不喜欢在短时间内做很多交易,即使这件事情发生,他们的一些交易也只是会延迟到下一个块中,并不会造成太大影响。

 

Section7 Conclusion

本篇论文,我们针对之前的贿赂攻击提出了量化分析方法。进一步探索中,设计了一个新的有更实用的假设的贿赂攻击模型,还为briber 和 miners 提出了决策机制。我们仿真了贿赂的整个过程去得到briber需要花多少钱吸引miners以及他们将在攻击中得到多少钱。我们的模型在分析和仿真中都很实用。最后一部分,我们展示了控制贿赂攻击的防御策略:设置交易上界和更多的确认块(大于原来的六个块)。值得注意的是我们的模型适用于所有基于pow的加密货币,不只是比特币。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值