浅谈“自私挖矿”攻击
作者:李聪,冯新宇
Trias联合“北大软微-八分量协同创新实验室”定期举办技术沙龙。该实验室成立于去年9月份,以可信计算、区块链等作为主要研究方向,致力于推动智能互联新时代下的人机互信问题的解决。
现在,我们会推出由实验室教授、博士生以及硕士生主笔撰写的系列文章。本期文章由北京大学的博士生李聪,冯新宇撰写。
1.“自私挖矿”攻击
传统观点认为,比特币的挖矿协议是激励相容的,它可以抵御少数群体的合谋攻击,并激励矿工按照协议规定的方式进行挖矿。比特币挖矿协议之所以能实现这一效果,是由于它基本可以保证矿工根据其算力占全网算力的比例而获得相匹配的收益。
激励相容:在市场经济中,每个理性经济人都会有自利的一面,其个人行为会按自利的规则行为行动;如果能有一种制度安排,使行为人追求个人利益的行为,正好与企业实现集体价值最大化的目标相吻合,这一制度安排,就是“激励相容”的。[1] |
但Eyal等学者在文献[2]中表达了不同的观点,他们认为上述传统观点是错误的,比特币的挖矿协议并非是激励相容的。为了论证其观点,作者提出了一个挖矿策略,该策略可以让少数矿池获得比他们诚实执行挖矿协议更多的收益,而这一策略便是“自私挖矿”(Selfish Mining)。“自私挖矿”攻击是一种针对比特币挖矿与激励机制的攻击方式,它的目的不是破坏比特币的运行机制,而是获取额外的奖励,并让诚实矿工进行无效计算。
简而言之,“自私挖矿”攻击的核心思想是“自私挖矿”矿池(下文中简称为“恶意矿池”)故意延迟公布其计算得到的新块,并构造一条自己控制的私有分支,造成链的分叉。诚实矿工会继续基于公开分支挖矿,而恶意矿池则基于其控制的私有分支挖矿。倘若恶意矿池计算得到了更多的块,它们维护的私有分支长度自然领先于公开分支,此时,恶意矿池选择不公开这些新块,力求进一步提高挖矿收益。但由于恶意矿池的算力限制,私有分支的长度优势将无法一直保持下去,当公开分支接近私有分支长度时,恶意矿池将公布所得到的新块,并获得这些块的奖励。该攻击直接导致了诚实矿工之前的计算变为了无效计算。当然,在攻击过程中