前言:如何不对比特币做改变的情况下实现扩展,除了我们常听到的layer2、大区块、侧链等方法之外,本文作者提出一个制度性的解决方案,以比特币作为支撑准备金的比特币银行模式,这是否是一个好的扩展解决方案?留给大家探讨。本文作者是Nic Carter,由“蓝狐笔记”社群的“鑫鑫”翻译。
几乎从一开始,比特币和加密货币的“可扩展性辩论”就被用黑格尔的术语来界定。
• 正题:点对点加密货币对在线商务很有用
• 反题:在线商务每天需要处理数百万笔交易
• 合题:要成功,加密货币必须扩展
在过去近十年中,这一直是业界和舆论媒体的默认论调。在这篇文章中,我认为这种在过去近十年里推动比特币领域讨论的困扰,并没有抓住要点,我将提出另外一种框架。我相信制度性扩展是一个被低估了的扩展向量,在不显著损害比特币担保的情况下使用它是完全可行的。
我指的是Finneyan对比特币的看法,在这种观点中,比特币银行会出现并针对存入的比特币发行票据。如果你仔细看,这个系统的原型现在已经有了。然而,为了维持像稀缺性这样的宝贵保证,交易所和托管机构需要进行例行的证明,证明其准备金与负债相符。
在我们开始之前,先来一次小小的文献回顾(可选):
• Spencer Bogart:比特币强有力的保证
• Hasu:比特币如何支持非国有产权
• 我自己:比特币吹捧的保证的含金量
• Jameson Lopp:PoW为你提供的确切的技术保证和近乎保证
• Davidson, De Filippi, Potts:公链是怎样的一种新型制度性技术
• Saifedean Ammous:比特币如何仅作为结算网络运作
邮件列表上的先见之明
针对中本聪白皮书的第一次公开评论,是James A.Donald在论文发表五小时后在密码学邮件列表中的回应:
如果有数亿人在进行交易,那将需要很大的带宽——每个人都必须知道全部或者很大一部分。
James的理解是这种设计忽略了那些掉入万亿字节区块“兔子洞”的人:比特币只有在任何人都可以保留一份账本并保持同步的情况下才能工作。如果同步账本当前状态的代价过于昂贵,那么只有少数特权节点可以保持最新状态,从而有效地为系统添加层级结构,而本来这个系统必须是扁平运作的。
有趣的是,中本聪对这个问题的回答涉及到SPV(简易支付验证)证明,这些论据放在当今的认知之中时,显得有些幼稚。SPV证明表面上允许非完整节点确认交易已经包含在比特币区块链中,而无需下载整个链。随意调用SPV证明作为可扩展性的解决方案,有点像阿波罗计划背后的科学家所说的:“哦,去半人马座阿尔法星旅行吗?只是比光速更快的简单问题。”
可以说,使用SPV证明作为可行的扩展方法实际上已经被抛弃了。在各种场景下,它们往往会退化成用户必须验证整个链。
James很在行。他即刻理解到比特币是一个单一的账本,网络中的所有节点都必须每隔10分钟重新确认一次。因为每个人都必须看到一切,数亿个交易主体将会轻易地压垮整个系统。
但是,如果达成比特币目标的前提是在个人层面上进行全球、在线、对等交易的话,会有什么问题吗?进入Hal Finney的观点。
Hal的观点
2010年,数字现金的先驱Hal Finney提出了著名的所谓提高比特币可扩展性的制度性方法。
事实上,以比特币为支撑的银行有一个很好的存在理由,它们发行自己的数字现金货币,可以兑换成比特币。比特币本身无法扩展到让世界上的每一笔金融交易都被广播给每个人并包含在区块链中。需要有一个更轻、更高效的二级支付系统。同样,比特币交易最终确认所需的时间对于中等价值到大价值的购买来说是不切实际的。
以比特币为支撑的银行将解决这些问题。它们可以像银行在货币国有化之前那样运作。不同的银行可以有不同的政策,一些更激进,一些更保守。一些是部分准备金,而另一些可能是100%比特币支撑。利率可能会有所不同。一些银行的现金交易相比其他银行可能会有一定的折扣。
Hal敏锐地意识到基础层比特币将永远不能以其当前的形式扩展到所需要的水平(不幸的是,许多比特币传道者未能理解这一点,他们的误解导致了2015-17年的区块大小之争)。在Hal看来,比特币将是一种用于调解金融机构之间的大规模结算的高性能货币,而不是用于在线等价小额现金支付的支付代币。他意识到比特币的结算时间(与实物现金或信用卡相比)相当慢,加上链本身的低效性,意味着将比特币引入到实体支付中就是像把一个方钉钉在一个圆孔中。
Hal所设想的是一个可以审计、资本比率透明且承担责任的银行体系。甚至可以发展准备金/资本比率的自由市场,因为存款人可以选择具有不同准备金水平的银行,以适应其风险偏好。
资本不足的银行可能会倒闭——但这将是一个健康的市场信号,剔除较弱的实体,使整个市场更加强大。将其与2008/09年解体的金融体系进行比较:金融机构堆积杠杆,因为他们知道就算出了问题,它们也将得到救助。由于政府明确表示不允许银行倒闭,市场被剥夺了宝贵的反馈机制,风险变得越来越抽象、模糊和隐蔽。
用Elaine Ou的话来说:
金融机构通过将风险隐藏在复杂性层背后,让人们感到安全。加密货币把风险带到了风口浪尖,并在互联网上大肆宣传。
在金融领域,风险永远不会真正消失,即使被隐藏起来——抑制风险也往往会产生一种令人讨厌的效果,那就是在以后以更加戏剧化的方式释放风险。
正如2009年一连串有毒资产负债表中的风险毫无预兆地接连向我们逼近、金融机构大量倒闭一样,当我们目前的货币实验最终结束时,长期受到抑制的系统性风险的力量也会释放出来。
比特币能缓解这种情况吗?也许不能。但它的结构有助于建立一个比目前更透明、更开放的金融体系。这就是Finneyan对比特币的看法:比特币是一种虚拟商品,存在于金融机构的可证明储备中。它是一种银行可以依赖的证明其生存能力的虚拟商品。
可扩展性保证
不管怎样,让我们先简单地回顾一下可扩展性的含义。目前看来仅仅通过调节区块空间大小是行不通的。这是因为比特币被设计成可审计的,而审计区块链需要完整的、未删减的账本。
从根本上讲,比特币依赖于每个人都知晓每一笔交易。是否可以在不损害该核心特性的情况下进行扩展?让我们看看在这种情况下可扩展性创新的主要形式:
1.延迟结算/对账(主要是闪电网络)。闪电网络和其他延迟对账模型所做的是授予用户创建关系的能力,然后在之后的某个日期结算这些关系。链的担保仍然存在并可用,只是没有用于每次转账。然而,这些模型通过(暂时)削弱担保来进行折衷——最终结算不再是即时的,例如,你必须在线才能收到付款。
2.数据库模型(大规模的基础层扩展)。如前所述,仅仅增加账本的大小会损害区块链的担保——并非每个人都能够维护账本。可能有一种方法可以通过SPV和防欺诈证明以最小化信任的方式来实现这一点,但我们还没有找到它。
3.将担保扩展到其他链(侧链、安全继承、合并挖矿)。该模型使用比特币的安全性来保护其他区块空间,或者扩展了比特币自身的区块空间。合并挖矿的货币如Namecoin,PoP(proof-of-proof)方法如Veriblock,侧链如Rootstock,都大致属于解决问题的同一类方法。这些代表了一种引人注目的潜在扩展途径,因为它们将比特币的结算担保扩展到了潜在的无限区块空间,但这仍在探索之中。然而,这可能会对担保造成损害——风险仍然存在,矿工可能会通过审查侧链关闭或以其他方式干扰侧链。我们所看到的类似于Liquid的产品化实现就使用了合作协议而非依赖PoW。
4.信任最小化的机构。这种方法利用比特币——原生可审计、稀缺的数字现金的担保——并将其应用于存托机构。简言之,不是让个人用户作为比特币的客户,而是让交易所、银行和托管机构等机构扮演最终用户角色,它们自己的用户间接受益于比特币的担保。折衷依然存在,比特币的某些特征在托管环境中不适用,但如果实现了偿付能力证明等协议,即使经过了中介机构的过滤,比特币的一些担保仍然会发挥作用。
比特币银行应该是什么样子?
Hal对以比特币为支撑的银行世界的设想是否合理?从某种意义上说,这就是我们今天的现实,因为许多用户只通过托管人和中间人间接接触比特币。虽然大多数交易所都被假定为全额准备金,通常都是这么声称的,但实际上并非普遍如此。例如,事情变得越来越清楚了,QuadrigaCX交易所在其存在的大部分时间里都采用部分准备金。我不需要重述这些加密货币交易所不负责和疏忽的历史。
像偿付能力证明协议这样简单的东西,可以在Quadriga倒闭之前就让问题显露出来。相反,在实践中会发生什么(想象一下,偿付能力证明在交易所中普遍存在的世界),Quadriga会拒绝提供准备金证明,并随即遭到质疑,可提前为用户节省大量令人心痛的丢失的货币。
理想的比特币银行会采用类似偿付能力证明这样的模式来将比特币的担保传递给储户。当然,这些并不是完美无缺的,也可能被欺骗,但设置了一个很高的门槛。如果你是一家上市公司,你可以对你的审计人员撒谎,但你很可能在某个时候被发现,这时你已经违法了。任何认真参与审计的比特币银行只有在它们认为能够通过审计的时候才会这样做。如前所述,如果这一点变得流行起来,将会把比特币存托行业划分为信誉良好、值得信赖的银行(这些银行会例行提供准备金证明)和不受信任的银行(由于他们不愿意提供这些审计而被质疑)。
要明确的是:我并不否认在银行内部和银行之间流通的借据通常不能体现比特币的属性。我的建议是,通过向储户提供一定的担保,使这些借据更像比特币。
这张表表明,闪电网络和其他链上或者近链分层方法将比特币的担保扩展到了其他领域,而支持偿付能力证明协议的交易所也可以参与其中。侧链(如果实现了的话)和闪电网络与提议的制度性模型并不相互排斥:我把它们看作是平行和互补的比特币扩展方法。值得注意的是,无准备金证明的交易所的借据的意义非常小。它离比特币的基础层非常远。
值得一提的是:闪电网络和其他L2方法很可能会成为可扩展的主流方法,但它们是在不同的担保之下完成扩展的。比特币中的假设在闪电网络中是不同的!这个没有什么本质上的错误——闪电网络爱好者和开发者会承认这一点——但是他们并不能像普通比特币那样保证你的结算铁证如山。因此,比特币在各种折衷场景下的扩展是一个很好的先例,也应该推广到相关制度上。
比特币的信贷创建
许多比特币持有者会对“部分准备金”这个词感到恐惧,虽然它们是由中本聪的首席弟子Hal Finney提出来的。但是我相信,如果它们对自由市场负责,并且银行的实际准备金保持透明,部分准备金的风险是可以管理的。
我认为,采用部分准备金的交易所存在的问题不是它们没有全额准备金,而是它们向储户错误地陈述了风险。虽然这是奥地利经济学家之间的一场激烈辩论,但我个人支持用户存托自由市场,交易所的准备金率或者资本比率可以各不相同。
重要的是,它们是透明的,这样用户就可以充分评估破产风险。正如我们所知,银行在实际操作中不需要全额准备金,因为用户通常不会一次性赎回所有存款。例如,在美国,大型存款机构必须维持至少相当于10%的可储备负债的准备金。有关美国准备金要求的历史,可以参阅美联储的相关文章。我不清楚比特币世界中正确的准备金率是多少,但我相信市场有能力找到这个数字。很明显,像BlockFi这样的贷款工具很受欢迎,一些用户会更喜欢有息账户,这样他们的银行就可以承受更多的风险。
偿付能力证明实际上证明了什么?
到目前为止,我一直认为偿付能力/准备金的证明大体上是同质的,这对它们是不利的。事实上,我应该使用更精确的术语。准备金证明包括证明你实际拥有什么,如果没有相应的责任证明(声明你欠了什么的证明),这通常是毫无意义的。如果正确执行,它们可以作为有条件的偿付能力证明。
第一种证明偿付能力的方法是Greg Maxwell和Peter Todd提出的形式化算法,我们称之为Merkle方法。Zak Wilcox有详细介绍,使用Merkle方法,交易所的用户可以验证其余额是否包含在交易所在其证明中公布的所有客户余额的清单中。这个过程分为两个部分:证明你所欠的,以及证明你所拥有的。如Greg Maxwell所述:
<@gmaxwell>首先,通过签名显示你在链上的有多少实际货币。这很容易。
然后你需要证明你应该拥有多少。这有点难。比如你可以公布每个账户ID的余额,但出于隐私和商业原因,这是不可取的。
准备金的证明实际上是一个简单的部分——交易所对一笔包含所有UTXO的交易进行签名。现在每个人都可以看到交易所拥有x个比特币。当然,交易所可以为此借入比特币。这就是为什么证明只在持续的基础上起作用,并且应该与现金流分析相结合(假设一家交易所在发布偿付能力证明的前一周,每一季度习惯性地借入10000比特币,并在第二天偿还!)
最具挑战性的部分是证明你欠了什么,即你对储户的负债。这就是需要使用Merkle树的地方,它允许用户验证它们的帐户和余额是否包含在最终的哈希中,且不泄漏每个人的余额和帐户信息。像群体免疫一样,如果有足够多的用户验证了他们的余额,那么用户就可以相对有力地保证交易所没有说谎。
恶意交易所当然可以通过公布它们不希望被检查的休眠帐户的余额为零来进行欺诈;但这样做的风险很大——即使只对其中一个零帐户进行检查,交易所也会暴露。
正与Zak所说,Merkle方法:
让你能够检查你对交易所是否履行它们公开宣称的责任/义务的信任度,并让你在这些数字有出入的情况下,就是否继续与他们开展业务做出明智的决定。
Blockstream的Steven Roose通过BIP和Github实现了流程中的准备金证明部分。这应该与负债证明(如上所述)或可信的审计师相配合。
Merkle方法的问题在于,它公开了交易所的负债,许多交易所可能不想这样做。因此,在2015年,Dagher、Bunz、Bonneau、Clark和Boneh发表了”Provisions:比特币交易所偿付能力的隐私保护证明”。针对Merkle方法中的缺陷,Dagher等人在Provisions中提出:
使交易所能够公开证明其拥有足够的比特币以支付所有客户的余额,以便(1)所有客户的账户仍然完全保密,(2)没有账户包含负余额,(3)交易所不披露其总负债或总资产,(4)交易所不披露其比特币地址。
Provisions由三个协议组成:
• 资产证明(准备金):交易所使用一些零知识证明的手段来证明它拥有一定数量的比特币,而不透露具体数字
• 负债证明:交易所承诺用户余额的总额,同时允许存款人私下核实交易所承诺的余额是否正确
• 偿付能力证明:交易所在零知识的情况下证明资产和负债之和为0
这是对Merkle+签名消息方法的改进,因为它不会披露交易所的余额,而是输出一个简单的1或者0——交易所是否拥有偿付能力。
关于这个主题我没有总结的其他工作包括:
• Decker, Guthrie, Seidel, Wattenhofer (2015),让比特币交易所更透明
• Mohan and Devi (2017), 保护比特币交易所隐私的非交互型资产证明
• Narula, Vasquez, Virza (2018), zkLedger:分布式账本的隐私保护审计
简言之,在Merkle方法和各种已提出的零知识证明方法之间,存在着丰富的工具,让比特币银行能够证明其偿付能力。现在,他们没有理由不这么做。