星球日报
搜索
手机客户端
iPhone · Android
微信公众号
微信公众号

iPhone · Android

微信公众号

区块奖励即将减半,BTC 还安全吗?(上)

2019-10-24

基于实证分析的研究。

推广

编者按:本文来自 加密谷Live(ID:cryptovalley),作者:Hasu、James Prestwich、Brandon Curtis,翻译:Harry Zhang,Odaily星球日报经授权转载。

如果一个应用程序或协议在充满对抗性的环境中能够实现目标,那它就是安全的。就BTC而言,其目标是建立一个任何人都可以参与的支付系统,只有合法所有者才能花费代币,所有有效交易最终都将存入分布式账本。

在它存在的头十年中,BTC成功地拥有了这些安全属性。但是与此同时,学术界在很大程度上未能在其研究模型中复制BTC的稳固性,由此产生了“BTC只有在实践中是安全的,但在理论上不安全”之类的论调。本文旨在通过介绍BTC安全模型来弥合理论与实践之间的鸿沟。

我们认为,BTC目前可以承受很高的攻击,从而使矿工动机与系统利益保持长期一致。挖矿需要大量的前期投资,其价值与网络的健康状况息息相关。通常情况下,矿工相当于提前购买他们在未来两年内预期要开采的所有代币的一半。在矿工收到这些代币之前,任何损害代币价值的行为都极具破坏性,这说明了为什么学者们担心的许多攻击在实践中都行不通。

另一方面,相比于外部攻击者,BTC安全性的最大威胁更多地体现在协议本身。BTC的区块奖励减半机制将导致该网络与矿工的利益捆绑性降低。如果没有蓬勃发展的区块空间市场,区块奖励的下降会对未来构成重大威胁。用户无法仅通过等待更多的区块确认来弥补这一点。

最后,我们提供了新的思路,包括一些可供社区讨论的改进建议。

本文于今年10月正式发布,为Hasu、James Prestwich和Brandon Curtis的共同作品,在创作过程中借鉴了Nick Szabo、Emin Gun Sirer等人的既有研究成果。加密谷编译此文,供专业投资人和技术爱好者参考。由于全文篇幅较长(接近16000字),将分为三期刊出,此为第一篇。

为什么 BTC 需要挖矿

在过去的支付系统中,需要通过一个可信的中心化服务器来进行交易。事实证明,这是失败的关键,因为中央验证器通常会失败或被迫排除某些人或某些类型的交易。因此,旨在提供无许可访问的系统不能依赖中心化服务器。

中本聪发现了用扁平化的点对点网络模型代替流行的客户端-服务器模型的解决方案,该模型已经在诸如BitTorrent之类的分布式网络中证明了其价值。

借助公钥加密技术,已经可以证明和验证消息的所有权。在BTC系统中,BTC的所有者可以用其私钥对消息进行签名,网络中的其他节点可以使用发件人的散列公钥来验证消息的有效性。这满足了BTC系统的“安全性”要求。但是,当节点收到两条分别有效但彼此不能同时有效的冲突消息时(例如“双花”),公钥加密几乎没有帮助。

BTC通过用一组算力签名来替代受信任服务器的签名,优雅地解决了这个问题。节点可以遵循这类签名机制,以在单个链上进行协调。节点可以高度信任此签名,因为它的生产成本很高,并且可以轻松地验证成本。

当节点从矿工那里收到两个相互冲突的签名时,他们会倾向于接受成本更高的签名。这种“分叉选择规则”现在被称为中本聪共识(Nakamoto consensus)。

Back和Corallo等人首先提出了将BTC挖矿视为动态多方成员身份签名(DMMS)的理念。DMMS是由一组数量不等的匿名节点组成的签名,这些节点可以随时加入或离开网络。他们对BTC网络的算力份额通过对签名的贡献来衡量。这些签名是累积性的,因为每个区块都引用前一个区块,从而形成了区块链。

算力签名的创建过程如下:

首先,矿工通过生成随机输出值来执行自重计算。当这些输出值落入特定范围时,其他节点可以以此为依据,证明虚拟骰子必须平均滚动一定次数(类似于平均必须将1000面骰子滚动100次,直到出现一个介于1到10之间的数字。)

接下来,矿工将其区块(包括工作量证明)发布到网络中。如果满足共识规则,则其他节点会将其添加到区块链中,并以区块奖励和该区块中的所有交易费用来补偿获胜的矿工。

1.1 密码学的局限

虽然矿工在创建自己的区块方面有一定的自由度,但他们不能给自己创造更多的代币,不能在同一个链上窃取别人的代币,甚至不能对更改区块的收益进行追溯。矿工必须像任何其他节点一样遵循BTC协议,节点也会自动拒绝任何破坏协议的尝试。

但是,协议在一些重要的方面无法通过密码学规则来强制执行。一个节点不知道两个冲突的交易中哪个是有效的,或者选择哪个竞争链,因此,用户依赖于共识机制在单个链上进行协调。虽然分叉选择规则是维护BTC共识所必需的,但它也赋予矿工相当大的权力,而该权力不受协议本身的约束(且不可调控!)。

最著名的“激励失败”的例子便是“双花”攻击,多数矿工首先在原始链上使用BTC购买产品或服务。一旦他收到了以不可逆转的方式交付的货物或服务,随后生产一条不包含这笔交易信息的更长的链条,最终实现了钱货双收。即使其中涉及到链下盗窃或其他恶意行为,遵循成本最高签名的节点也会自动切换到新链。

由此可见,诸如加密签名之类的“硬性”协议规则不能完全确保交易安全。我们需要更多“软性”的经济设计使得矿工能够发布服务于BTC用户的更新。

关于BTC安全性的建模

如果用户不信任强制执行的、“正确的”交易历史,那么他们如何得知交易是最终确定的,还是,将来可能被矿工撤消?

在传统的金融系统中,交易是最终确定的,因为法律禁止撤消。但在BTC网络中,法律鞭长莫及。矿工可以匿名,可以在世界的任何角落运营,可以随时加入和退出网络。

如果有利可图,那么矿工将会一直进行撤销交易的行为,也可以帮助愿意为撤销交易付费的其他人。直到撤销交易的行为变得无利可图之前,用户都不应该将付款视为最终结果。一般将这个问题表述为“一笔交易的最终确定需要等待多少区块确认。”额外的区块确认对BTC的安全性没有多大意义,安全性主要取决于两个因素。

2.1 安全性假设

我们首先建立一个基本支付系统,该系统具有12.5 BTC的区块奖励,且不收取交易费。挖矿所需的所有硬件和算力可以按需租用,因此矿工对BTC网络没有长期的利益捆绑。他们的行为不会影响BTC的交易价格,也没有用户会忽略中本聪共识选择。所有模型均使用BTC作为基础货币。

我们将遵循协议进行挖矿所获的BTC价值定义为EV(诚实挖矿)。在十个区块的时间段中,矿工收入(MR)将为125 BTC。假设挖矿是一个无门槛的市场,矿工之间是完全竞争的,那我们可以预期,矿工在挖矿成本(MC)上总共需要花费125 BTC来获得这一奖励。 

区块奖励即将减半,BTC 还安全吗?(上)

因此,诚实挖矿的EV基线被确定为0 BTC。

矿工可提取价值(MEV,Miner-extractable value)描述了矿工希望从攻击中赢得多少BTC。该概念由Daian、Goldfeder等人提出,旨在描述矿工从智能合约中可获取的价值,但我们将其扩展到:涵盖矿工从任何操纵共识或交易顺序中可获取的价值。

重要的是,MEV并不是描述个人用户可以在一个区块中安全地进行多少交易,因为攻击者可以一次对很多不同用户进行“双花”攻击。它也不是描述一个区块中所有用户可以安全地进行多少交易,因为攻击者可能连续跨多个区块进行“双花”攻击。MEV描述的是攻击者的全部价值。对于等待六个区块确认的用户,攻击者的最低攻击持续时间为七个区块。因此,仅根据自己的个人交易来计算MEV的用户将低估矿工的实际激励幅度。

攻击性挖矿的最终EV可被建模为: 

区块奖励即将减半,BTC 还安全吗?(上)

只要EV(诚实挖矿)> EV(攻击挖矿),理性的矿工就会遵循协议。

因此,我们可以得出:EV(诚实挖矿)> EV(攻击挖矿)是BTC防范理性攻击者的必要条件。

EV(诚实挖矿)和EV(攻击挖矿)之间的差异描述了BTC对非理性(“拜占庭”)攻击者的容忍度。后者不关心利润,但会出于任意原因攻击BTC。

值得注意的是,MEV不需要加上例如攻击者通过对BTC价格进行做空所获得的额外价值。MEV默认包含所有此类价值。

在这个简单的模型中,我们甚至不需要谈论拜占庭攻击者。该系统已经无法对抗理性攻击者,因为任何MEV> 0足以使攻击挖矿比诚实挖矿更具吸引力。假设一名矿工可以从持续10个区块的攻击中提取100 MEV,我们可以看到:

示例1:EV(攻击挖矿)= MEV + MR-MC = 100 + 10-10 = 100;100> 0,因此BTC不再安全。

这一发现与直觉相吻合。因为对攻击者而言,对区块链进行攻击并没有实际代价。它的预算要求仅为10 BTC。攻击成功后,攻击者可以收回所有成本。

有三点值得注意: 

  • 如果攻击者的攻击范围内包含自己的区块,则攻击将开始产生实际成本,因为他的有效MR(攻击挖矿)下降,而MC保持不变。

  • 如果少数矿工(“防御者”)继续在原始链上挖矿,则会延长攻击的持续时间。但是,只要攻击者最终赶超原始链,就不会降低他的EV,而只会提高预算要求。在这种情形中,矿工(“防御者”)的资源将被浪费。

  • 在此模型中,我们假定攻击者具有多数算力,或者几个较小的攻击者之间的合谋是零成本的。在现实世界中,如果矿工们对MEV的价值或必要的攻击持续无法达成一致,则合谋的成本可能会增加。

2.2 市场治理

按照“经济人假设”,我们的任何举动背后都有利益考量,这本质上是一种基于“机会成本”的投票。区块链市场也是如此。

当用户(消费者)买卖BTC时,他们相当于不断地对矿工体系进行投票,支持生产者或服务提供商以某种特定的方式行事。当用户对矿工提供的服务不满意时,对支付系统的信心可能就会下降。随之,BTC的交易价格可能也会下降。

我们将p(postAttackPrice)定义为攻击后的相对BTC/USD价格,例如,postAttackPrice为95%意味着:价格从攻击中下跌了5%。 

区块奖励即将减半,BTC 还安全吗?(上)

在更新后的公式中,由于攻击导致BTC价格下跌,MR(区块奖励+交易费)和MEV都变小了,而MC(攻击性挖矿)保持不变。虽然使用BTC而非法定货币作为基本单位可能并不常见,但推理起来相对容易。实际上,矿工在攻击后并没少获得名义数量上的BTC,但是由于他们损失了5%的购买力,因此他只能将其换成95%的攻击前的BTC。

由于引入了市场治理,因此只要MR(诚实挖矿)大于p(postAttackPrice)*(MEV + MR(攻击挖矿),那么EV(攻击挖矿)就无利可图。 

区块奖励即将减半,BTC 还安全吗?(上)

由此,我们可以得出三种确保系统安全的方法:

MEV可以很低。例如,使用BTC进行交易的人少,或者用户在没有其他保证(例如知道买家的身份)的情况下不会考虑最终确定付款。

p(postAttackPrice)可以很低。这意味着,用户对BTC网络非常敏感,如果矿工不履行应尽的职责,他们会转向BTC的其他竞争对手。这像是一把双刃剑,因为如果BTC的价格会轻易崩溃,其他形式的攻击(例如破坏攻击)将变得更具吸引力,从而增加MEV。

MR可以很高,因此p(postAttackPrice)对MR的影响开始超过MEV的潜在收益。

2.3 矿工的利益捆绑

目前为止,我们做出的是理想化的假设,即:可以按需租用挖矿所需的任何资源(这个理想化的假设也主导了学术界对BTC安全性的论点)。实际上,挖矿并非如此。

在激烈的竞争中,矿工们正在进行军备竞赛。如果一个矿工以相同的成本加快了挖矿速度,增加了产出收入,那么其他矿工就必须跟上步伐,否则就有可能被完全淘汰。

挖矿行业几乎没有可持续性的壁垒保证矿工能长时间地维持相同收益。这最终导致挖矿行业的工业化速度可能超过历史上任何其他行业。

随着挖矿行业的工业化,创建区块的单位成本变得越来越重要。有几种方法可以降低企业的单位成本:

如果生产设施没有达到全部产能,企业可以通过增加产品的销售量来降低单位平均固定成本。在挖矿行业中,每个哈希都有一个BTC网络形式的自动购买者,因此这里没有什么可优化的。

企业可以减少生产的日常材料成本。对挖矿行业而言,就是不断寻找更便宜的能源、更好的散热或冷却工艺,优化生产流程。

企业可以通过提高生产设施的专业化程度来降低管理费用。在BTC挖矿中,这导致矿机针对哈希SHA-256算法进行了越来越多的优化。当矿机无法再挖出BTC的那一刻,它就会一文不值。这同样适用于以太坊等大型GPU挖矿网络。即使可以使用GPU等通用硬件来挖以太坊,挖矿以外的GPU实际需求量也不足以消化市面上大量的抛售。所以一旦以太坊的价格崩溃,矿工的前期投入也将失去大部分价值。

矿工还可以通过签订长期电力采购协议来降低单位能耗。

因此,如果要降低单位成本以保持挖矿的竞争力,一个理性的矿工需要高度专业化的硬件和更加远期的视角。

矿工的专业化程度越高,资产投入的不可回收性就越大。从Equation 1中,我们知道MR + MC =0。这意味着,我们可以从挖矿的总收入中得出挖矿的总成本,这仅仅是所有区块奖励的总和。

但是矿工必须预先承担多少前期资产投入?在与BTC矿工和专家交谈之后,我们得出了一个粗略的估计,即:普通矿工,乃至整个挖矿行业,会将其总成本的一半捆绑在此类不可回收资产上。此外,我们了解到,这些资产平均会在24个月内贬值。

如果我们以此假设作为前提进行推理,那么整个挖矿行业需要捆绑相当于整整一年的区块奖励的价值资产,才能在未来两年内挖BTC。在12.5 BTC的区块奖励下,等于658,800 BTC。

换句话说,矿工必须提前购买他们期望在两年内开采的所有代币中的50%,然后才能开始挖矿。

在矿工收到这些代币之前,任何损害代币价值的行为都是极具破坏性的。

因此可以说,矿工会坚定地致力于以最大化BTC的价值和网络效用的方式挖BTC。 

区块奖励即将减半,BTC 还安全吗?(上)

在第一个示例中,矿工仍然可以租用算力,p(postAttackPrice)95%仅影响10个区块的攻击持续时间内的MR。而矿工一旦和BTC利益捆绑,价格下跌将同时影响一整年的挖矿收入,也就是52,704个区块!也就是说,价格下跌5%将消灭所有矿工相当于32,940攻击前BTC的收益。

值得注意的是,攻击者并不需要拥有100%的总算力就可使攻击成功。如果攻击者用60%的总算力进行攻击,那么攻击者自己被捆绑的利益将占总额的60%,即395,280 个BTC。

示例2:EV(具有60%总算力和100 MEV的持续10个区块的攻击)= 95%*(100 BTC + 10 * 12.5 BTC)-(10 * 12.5 BTC)-5%* 395,280 BTC = -19.675 BTC

对于拥有60%哈希率的攻击者而言,MEV必须约为21,000 BTC,即按现在的价格计算大约1.87亿美元,才能使攻击获利。对MEV的高容忍度表明了BTC网络目前的确很安全。

这些发现可以推广到使用PoW机制的所有数字资产,也表明了不可回收的前期矿工投入对于加密网络的安全性多么重要。

2.4 中本聪共识的中止

我们已经证明,BTC网络目前可以容忍大量的MEV,这为攻击者获利制造了很大的障碍。但是,为了完善BTC安全模型,我们需要加入最后的限定条件,即BTC用户永远不会质疑中本聪共识。

用户在市场上寻求使信任最小化的信号,该信号使他们可以在单个链上进行协调。虽然他们为这些信号花费了大量成本,但这样做依然比任何其他的协调方式(例如,直接当面交谈)更加便宜。

但是,这并不意味着当大多数用户对矿工发出的信号感到不满意时,也必定会遵循这个信号。BTC历史上有很多先例,用户选择忽略了中本聪共识,因为由最长链原则产生的链不再代表他们签署的契约。

2010年,在区块高度74,638中的整数溢出错误导致创建了高达1,840亿个BTC,比应该存在的2,100万BTC总量大得多。在三个小时内,中本聪发布了一个新的修复了错误的BTC客户端,从而“回滚”了原先超额通胀的链。

第二个例子是2013年的0.7 / 0.8共识错误,这导致BTC分叉了数个小时。 Bitcoind是当时最受欢迎的BTC实现,当时发布了其0.8更新。开发人员不知道,新软件还对共识规则进行了微小的更改,这导致区块高度225,430与较旧的客户端不兼容。BTC开发人员和矿池决定,通过暂时中止“分叉选择规则”解决这个问题。他们手动支持0.7链,并放弃了0.8链。这要求矿工放弃0.8链上已获得的区块奖励,以最大限度地保证网络的整体效用。

最著名的例子可能是2017年的UASF运动。发布该代码整整一年之后,大多数矿工仍然拒绝采用“隔离见证”(SegWit),可能是因为它与ASICBoost这种提高矿机效率的专利不兼容。无论如何,为了推动这一更新,一些BTC用户安装了一个客户端,这再次威胁到中本聪共识。因为它忽略了在某个日期之后拒绝SegWit的矿工所产生的区块。如果矿工们放任不管,那将导致主网形成有争议的分叉。BTC的效用和价值受到的潜在影响严重威胁到矿工的底线,他们最终放弃了对SegWit更新的抵制。

这些例子表明,最终,用户将领导矿工。当他们认为当前的治理决策不能够最大程度地保证整个网络的效用时,用户会运行自定义代码(例如invalidateblock参数)来暂时中止中本聪共识,从而“剥夺”矿工的权力。

即使满足协议规则,攻击者也必须考虑用户拒绝其区块链的风险。我们将p(followNC)定义为用户没有通过链下协调中止中本聪共识的概率。从攻击者的角度来看,这进一步降低了潜在收益,而成本则保持不变。 

区块奖励即将减半,BTC 还安全吗?(上)由于NC暂停(Nakamoto consensus-Suspension)在攻击持续时间内仅影响MR和MEV,对矿工的利益捆绑部分没有影响,因此,与市场治理相比,NC暂停所带来的安全性提升相对较少。 

但是,从理论上讲,用户不仅可以更改事务历史记录,还可以更改核心协议规则。

如果有共识将挖矿算法从SHA256更改为其他算法,则即使BTC价格不跌至零,用户也能立即使整个矿工团体的利益无效。这使得社区干预成为有效抵御BTC价格攻击或网络攻击的手段。

2.5 小结

通过构建此模型并用实际数据代入,我们获得了一些关键见解。

  • 为了获得高安全性,在用户认为的最终确认期限内,诚实挖矿必须比攻击性挖矿更加有利可图。

  • 如果用户希望能够进行大笔交易,则系统必须能容忍高MEV。

  • 系统容忍高MEV的能力取决于矿工从恶意行为中受到的惩罚。用户可以通过两种方式惩罚矿工:

a) 首先,他们可以出售部分或全部BTC。当BTC/USD的交易价格下跌10%时,矿工将损失其捆绑利益的10%等值的攻击前BTC。

b)其次,用户可以进行链下协调,以暂停中本聪共识。

  • 为了加大惩罚力度,矿工的利益捆绑必须足够大,用户出售代币的意愿必须非常强。

  • 矿工利益捆绑的总规模是由挖矿收入(MR)、利益捆绑成本占比以及折旧时间表这三个变量组成的函数。

  • 如果我们将利益捆绑成本、折旧时间表和出售代币的意愿保持不变,则MR是MEV容忍度的决定因素,也决定了网络可以支持多少用户活动。

本文来自投稿,不代表Odaily立场。如若转载请注明出处。

推广

参与讨论

登录后参与讨论

加密谷

特邀作者

加密谷

这个作者有点忙,还没写简介

总文章数: 25


分享至

微信扫一扫分享

0