当前位置:首页 > 比特币新闻 > 正文

零确认交易的博弈:旗帜鲜明地反对RBF方案

来源: 互联网时间:2015-04-13 13:00:00

比特币博弈

最近我被问及Peter Todd提出的费用替代方案(Replace By Fee, 下称RBF)补丁,以及他提出的“焦土策略”方案(一个用于处理比特币0确认交易的方案)。

我认为RBF费用替代方案是一个欠缺深思熟虑的想法,它不会起作用,它不能实现它声称能做到的,并且如果采用RBF方案的话对于比特币而言可能是有害的。

在本文中我将会反驳RBF费用替代方案。不只是我个人认为这个提议不行,我希望读完这篇文章后,你也许会认同我们对RBF的想法:

再说一遍,Peter的RBF补丁叫做“焦土策略”只是花言巧语,但它并不适合现有的比特币网络。 — Jeff Garzik

Coinbase公司完全认同麦克·赫恩(Mike Hearn)。RBF费用替代方案不合理,而且对比特币有害。 —  Coinbase 技术经理Charlie Lee

RBF费用替代方案就是一个bad idea。 — Gavin Andresen

我同意楼上Mike和Jeff的评论。对此粗暴地对待比特币网络的“零确认交易”是耍无赖。 — Adam Back (Blockstream创始人之一)

在另一篇文章中,我讨论了一些常见的以及其它能让双重支付更难发生的提议解决方案。

什么是RBF费用替代方案?

所谓”费用替代方案(焦土策略)”,是一个尝试解决“零确认交易”的方案,从而让双重支付(双重花费)更难发生。
比特币诞生之初就有一个重要但很少被讨论的规则:先到先得规则。这里的“先到先得规则”是说,假如同时有两个合法的交易或区块,其中先到达节点的交易/区块会被优先采纳。
虽然这样的规则无法由区块链来执行,但是它对比特币的运作很关键。在挖矿的时候,这个规则鼓励人们依次挖出新区块,而不是挖到一个 “更好的(手续费更高的)”区块就去尝试分叉区块链。而在交易的时候,这个规则可以保障我们在商店购物付款时以秒为单位就完成支付,而不是需要数个小时来等待交易确认。
费用替代方案的RBF补丁改写了这个规则,新的规则是:如果同一个地址发起两笔交易,则手续费更高的胜出(译注:“价高者得规则”)。

采纳RBF费用替代方案的主要影响,是让零确认的交易非常容易进行双重支付。Todd的本意是想钱包可以有一个撤销键,通过支付更高的手续费让交易更快确认,使得未被确认的比特币找零余额回到钱包。

所谓焦土策略

这个策略将导致一个明显的问题——交易确认需要等待数个区块(长达几十分钟)的确认。显然,能够数秒就确认交易是一个更被期待的特性,这在购物是绝对必不可少的。如果你在街上买报纸却无法快速支付,那么在卖报纸的眼中,你所用的通货对他们毫无意义。

于是Todd顾左右而言他:他说,之所以提议叫“焦土策略(scorched earth)”,是由一个名叫John Dillon的匿名作者提出来的。但这个作者没有在任何一篇公开的文章中描述过“焦土策略”。

这个想法是基于另一个修改,这个修改叫做“父子支付方案”(Child pays for Parent)。这个方案多年前就已提出(提出人已经在时间长廊中消失了),并且该方案由Luke Dashjr在Eligius矿池中得以实施。这个方案颇具意义,且有望整合到下一个版本的比特币核心钱包。父子支付方案是说,矿工会把所有交易的费用作为一个整体考虑,而不是孤立的组成部分。简单地说,如果有一个手续费为0的交易等着确认,接着另一个交易(子交易)花费了前面那笔交易(父交易)并且有支付手续费,这样的话那个零手续费的父交易的优先级会提高。这对矿工来相当有意义,如仅仅因为一个免费交易就阻塞了后面有手续费的交易,那矿工们就赚少了。这对用户和商户来说也有意义,因为他们可以添加手续费并进行钱包内部转账来加快交易确认。

而“焦土策略”背后的问题是,如果有人购物并通过零确认交易支付,当他们离开商店后按下撤销键,他们通过支付更高的手续费来双花该原始输出,即使商户注意到这点并给该原始支付的添加更高的手续费已等待确认,接着行骗者可能再次添加手续费,如此再三,商品的利润可能都被手续费吃掉。行骗者早已得手拿到商品,而手续费支付给了矿工,但商户却什么也没得到。

理性与博弈论

John Dillon认为,如果让购物者支付远高于商品价格的钱(商户会把价差在另一个交易中找零从而返还给购买者),那么,企图双重支付会导致购物者损失比商品本身价值更多的钱。因此在这种方式下,双重支付就变得不理性,从而使得零确认的交易更加安全了。

注意:这意味着人们钱包中有一部分钱将很难花出去,因为买东西需要占用比物品价格更多的钱。这将是一个严重的可用性问题,但是本文暂不讨论这点。

另外,RBF费用替代方案的拥护者认为他们的方案是不可避免的,因为任何理性的矿工都希望获得更多手续费而增加收入,而随着上述的“先到先得规则”在比特币挖矿中被采用的理由越来越少,为了最大化短期收益它终将被遗弃。

这些言论听上去不错,因为如果只考虑博弈论,谨慎管理并对协议的细节进行小调整,然后他们所做的这些工作会获得高智商的比特币同仁的掌声。

问题是这两个言论都基于对理性的狡辩。如果理性被如此错误定义的话,那么那些基于博弈论的言论会导致无用的结论。

第一个言论听上去很好,前面提到了商户损失了商品给行骗者,而矿工获得了可疑的超额收益。更糟的情况是,矿工和行骗者设置可以组队来获取更多收益。这很容易实施:矿工只须添加另一个补丁并运行,这个补丁选取双重花费的交易并给这些交易再发送一部分费用(比如说1/4)。现在行骗者拿到了偷来的商品和返还的一半的钱,所以他们实际上只用支付一半的价格,现在他们可以圈定商品并获得高额收入。

换句话说,“费用替代方案/焦土策略”只须加一个额外的小步骤就会被完全颠覆。

即使这种合作没有发生,商户还是失去了自己的商品,他们的商品被偷走了。这意味着任何大公司都能简单地对竞争的小公司进行双重花费来重复地偷走他们的商品。这比市场调节更直接,因为即使小公司的产品更好而不与大公司的产品打价格战,这种方法还是会打垮小公司。

当然,实际上哪种结果都不会对商户造成太大伤害。原因非常明显:面对这一类支付欺诈,他们只会放弃比特币而转向银行的怀抱。信用卡可能有退款,但是它们是常规的交易纷争并且商户在40%的情况下能赢。如果我们只是在争辩博弈论,那么我们很容易就忽略了商户有他们的选择。我们这场争论的目的不是学术研究,而是为了主流认可。如果比特币支付比主流认可做得差,那么比特币不会被采纳。

最后还有一个问题。Peter Todd的代码不能实现这个的目的,因此使用它不会出现他期待的结果,即使我们忽略潜在的那些漏洞。特别是他还没有实现协议的钱包端,就算是很少用的钱包,所以现实中没人会注意到第二次双重花费并执行焦土策略的机制,否则他们只会失去所有钱。

最终,这些代码实际上只会让欺诈更容易发生。这对任何人都没好处。

注定失败的方案

费用替代方案拥护者可能认为RBF补丁是必要的,即使它导致很多双重支付,因为理性的矿工总是会处理那些最高手续费的交易,而区块链中没有算法中能阻止他们这么做。

况且这个言论还是依赖于对理性的荒谬定义。

当这些所谓理性的行动者企图最大化他们的经济利益的时候,这个理论当中忽略了时间这个因素。它认为这些为了获取短期利益的人是“理性的”,即使它会毁掉了整盘生意和所有未来的潜在长期收益。所以这种定义很荒谬,没有真正的企业这样做。

现实中,企业尝试在一个时间段内实现利益最大化,这个时间段通常比商户放弃使用比特币而转向信用卡(可能是几周或几天)来得长。如果我们看到大量的双重花费,那么大量商户会发现使用比特币的麻烦远大于获益,他们会停止使用它,而公信力的损失最终会杀死比特币。这反过来会降低矿工的收益,让他们的投资打了水漂。

大部分矿工只有在无路可退并且比特币将会一文不值的时候才会那样不顾一切肆意破坏比特币的支付网络。但是支持RBF方案的言论却表示这个后果是不可避免的!这就显示他们对比特币的未来没有太大的信心。

当然,偶尔会有一两个矿工的投资回报时间远比其他人少,也许他们突然需要一笔钱,也可能他们接到通知在他们国家挖矿要被禁止了,也可能是企业中一个内部人员打算欺诈商户并卷走一笔钱。比特币系统本身可容忍少数不诚实的矿工采用RBF方案,商户也可容忍少量的利用未确认交易的支付欺诈。但如果要全局修改成那样的规则方案,规定让每个矿工默认采用RBF方案是不可能的。

区块的RBF补丁

虽然Peter的RBF补丁只为未确认的交易修改了逻辑,但是同样的RBF规则也适用于区块的确认处理。如果矿工在处理交易的时候不再采用“先到先得规则”,那么处理区块的时候也会忽略这个规则。

简单地说,如果一个矿工看到一个已被确认的交易发生双重花费,并且这次双花的手续费更高,那么执行RBF方案的矿工会尝试让区块链分叉。矿工们都是同时处理新的双花交易,这会导致已确认的交易进行双花——因为矿工会为了一点点的手续费的增长而确认新的交易。反正矿工决意要重写区块链的时间轴的话,重新计算交易并把那些双花交易包含进区块链也不是什么损失。

因此,一旦采用RBF方案的话,结果不只影响未确认的交易,对已确认的交易也将产生灾难性后果!

这是中本聪在比特币白皮书论文中所说的:

As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they’ll generate the longest chain and outpace attackers.

(只要大部分CPU算力由那些不打算攻击网络的节点所控制,那么这些节点就可以生成最长的区块链并超过攻击者。)

中本聪的论文和常识都会告诉你,如果打算改写区块链的时间轴并实现双重花费就是对比特币网络的攻击。

再引用一段中本聪的话:

In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes.

(在本论文中,我们提出一个处理双重花费的解决方案,使用P2P分布式时间戳服务器来生成交易时间次序的计算证明。只要诚实节点控制的CPU资源比攻击节点的更多,这个系统就是安全的。)

假使改写成RBF方案,那么就是默认让矿工们忽略“交易的时间次序”,使矿工都转变为不诚实的攻击者,这会完全的摧毁这个系统。

比特币是靠诚实构建的吗?

尽管中本聪的论文用的事“诚实”一词,我们现在会称之为“理性”,但有时候人们会困惑地认为比特币不过是有一群人在遵守相同的规则而不是完全地基于纯数学。

我猜,认为比特币受纯数学保护的想法起源于加密货币一词,这是一个错误的认识。毕竟,不管多少人接受到加密信息,加密信息还是无法被破解的。类似地,加密学对信息加密和货币加密的强化作用是一样的。但是在比特币的网络中,没什么是加密的。它所产生的是几个公开的文件——帐簿和入账的审计日志。对这些文件的解释总是由人来决定,这些人可以按照自己的意愿选择完全忽略它们或者有选择地使用它们。

因此,货币不是一个数学构造,而是一个社会构造。尽管比特币使用了一些基本的数学原理来在互联网上协调社会决策,但是这一事实不会改变这一属性。

RBF方案已经有人采用吗?

偶尔有人声称RBF费用替代方案已经被矿工使用了,他们声称该策略早就存在所以我们应该使用它。事实上,一个名为Tom Harding的人专为双重花费而监控了比特币网络。他观察了想利用RBF方案的尝试,他发现,间隔10秒以上的双花交易只有1%起作用。这比理论上双花成功的机率为0的要高,一种解释是,10秒的时间差可能只是交易传播的延迟。无论如何,钱包支付的时候需要避免双重花费并告诉商户中止该交易。所以在实际中可以很容易避免这类攻击导致的损失,等待10秒以确认没有双重花费仍然比等待10分钟好得多。

总结

  1. • 目前提出的RBF费用替代方案是不完整的,它没有在任何钱包中实现协议细节。因此也不知道是否能产生该作者声称的那些效果。
  2. • 即使它在钱包中实现了,其中诡异的博弈论逻辑与现实世界不相符。一旦矿工与欺诈者合作,那么弊端就原形毕露。
  3. • 即使它能以声称的方式运行,可能会出现大公司轻易摧毁小型竞争对手的情况,他们只需要对竞争对手进行双重花费。
  4. • 它需要人们支付比商品价格更多的比特币以避免发起双重支付攻击。要向普通人解释我们想要支付比特币就必须这样的话,我祝你好运。
  5. • 让未确认交易无用会毁了比特币,导致商户弃用、压低价格从而让很多矿工的投资打了水漂。矿工参与这些是非常不合理的。
  6. • 在白皮书中,RBF方案策略与比特币白皮书中的定义产生矛盾。其中的逻辑不仅可应用于未确认交易,也可应用于区块确认中,只要给的手续费足够多就会确认交易,这样的策略下比特币完全无法运作。

考虑以上几点,RBF费用替代方案实在不可接受,使用这个方案的话注定会失败。费用替代方案绝对不是必须的,而采用该方案的矿工是搬起石头砸自己的脚。

原文:https://medium.com/@octskyward/replace-by-fee-43edd9a1dd6d
作者:Mike Hearn
译者:茶里的勿忘我
校对署名:达文西
稿源:资讯(http://www.8btc.com/replace-by-fee ‎)

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。