比特币白皮书到底做对了什么,错了什么,我们还不知道什么(2018)

2020-10-31 22:51:06

比特币白皮书到底做对了什么,错了什么,我们还不知道什么。

约瑟夫·博诺(Joseph Bonneau)是纽约大学(New York University)助理教授,也是广受欢迎的教科书《比特币和加密货币技术》的合著者。

这篇独家评论文章是CoinDesk《比特币在10:智史白皮书》系列的一部分。

比特币白皮书理所当然地被认为是历史上最具原创性和影响力的计算机科学论文之一。

但是,值得对这篇论文(以及论文中省略的最初比特币设计的元素)进行批判性的审视,问一问这篇论文到底做对了什么?它出了什么问题?还有哪些问题我们还不知道答案呢?

一个真正成功的想法的一个标志是,我们忘记了在这个想法出现之前,人们是如何看待这个世界的。比特币的许多最基本的贡献似乎只有在事后才显而易见。

人们很容易忘记,加密货币在本世纪头十年的大部分时间里都是一片研究死水。在20世纪90年代建立工作系统的多次尝试失败后(主要使用了David Chaum在20世纪80年代概述的想法),该地区几乎没有发表论文。许多人只是简单地认为非国家货币没有可行的市场。

在比特币出现之前,去中心化系统是本世纪头十年的一个活跃研究领域(通常被描述为点对点网络),匿名研究开始发挥作用(随着Tor和其他系统的发展)。

但这些并不被视为支付系统的必要功能。比特币贡献了什么?

对矿工的激励措施。比特币的核心贡献之一是通过通胀和收费为矿工提供激励。这种模式总体上是成功的,公平地说,很少有人预见到它的到来。在比特币时代之前,许多提供开放参与(任何人都可以运行一个节点)的P2P系统都受到Sybil攻击和其他问题的困扰。人们曾多次尝试激励诚实参与,但在比特币之前,没有一个系统能让它真正发挥作用。

轻客户端。事实证明,比特币对全节点和轻(或SPV)节点的支持都相当强大,嵌入到比特币中的区块结构使实现轻客户端不仅成为可能,而且很自然。

编写脚本。虽然有限,但比特币的脚本支持(白皮书中根本没有讨论)已经实现了几个有用的功能,比如多签名账户和支付网络。设想一个不仅仅支持简单支付的系统是明智的。

认识到长期激励措施。智史没有预料到工业规模的采矿或矿池,至少白皮书中没有提到。但这篇论文确实包含了一句关于中央集权风险的非常有先见之明的话:“(攻击者)应该发现遵守规则比破坏系统和自己财富的有效性更有利可图,这些规则有利于他拥有比其他任何人加起来都多的新硬币。”尽管自那以后,人们写下了大量矿工的理论攻击,但没有一次认真地尝试实践。Satoshi认识到了一个强有力的原则-矿工们有长期的动机不去攻击,因为他们投资于生态系统的健康。

我们将忽略比特币代码早期版本中一些奇特的回顾功能,如付费IP地址和内置电子商务系统,这些功能从未面世。

但比特币的几个特征似乎是“错误的”,因为今天建立的任何系统都不应该重复这些特征。

ECDSA。虽然这种签名算法比RSA要好得多,但它在所有方面都不如EC-Schnorr。很可能中本聪只是不知道这个选项(施诺尔留下的软件专利遗产)。今天,考虑到Schnorr对门限签名的支持(如果不是更高级的签名方案,如BLS),使用Schnorr显然是有利的。

事务延展性。这个无意的问题导致了支付网络等协议令人头疼,并以启用对mt的攻击而闻名。戈克斯。今天,谨慎的设计应该使用隔离见证(SegWit)之类的东西来确保事务散列是不可延展的。

之后添加的功能。很明显,不包括诸如Pay-to-Script-Hash(P2SH)和Check-locktime-Verify这样的流行特性是错误的,这些特性后来都是由软叉添加的。

硬币的有限分割性。比特币的限制是2100万个比特币,但更重要的是,它的原子单位限制在2^52个左右。如果比特币真的成为地球上唯一的支付系统,这将为每个人提供不到100万个单位的支付。这远远不足以涵盖日常交易(甚至四舍五入到相当于十分之一美元)和大额持有量。用几十个额外的比特来扩展这一点将是相当便宜的,这样可分性就永远不会成为问题。

简单链中的块。鉴于“区块链”已经成为了一个流行词,值得注意的是,将块放在线性链中是一项疏忽,这使得超轻量级客户端验证旧块是否包括在当前链中的成本很高。比特币正确地将交易放入了一棵树中,那么为什么不是区块本身呢?跳过列表将是另一个重大改进。有趣的是,证书透明项目(同时代独立于比特币设计)做到了这一点,并将每次更新都放入一棵树中,而比特币的后继者几乎没有偏离线性链设计。

没有州政府的承诺。比特币矿工都将系统状态作为一组未花费的交易输出(UTXO)进行跟踪。但这并不是针对每个区块的,必须从历史中归因于此。这使得轻型客户端很难确认当前状态以及事务是否已花费。将UTXO承诺添加到每个块相当容易,许多后续系统(如Etherum)都会执行此操作的一个版本。

攻击分析过于简单化。比特币白皮书用了相对较大的篇幅(约占正文的四分之一)来分析一名采矿力不足51%的矿工靠运气成功推出叉子的几率。随后的分析已经确定了许多其他攻击载体(例如自私挖掘),而这种分析现在看起来已经过时了。

一个CPU一票。Satoshi将比特币描述为一个系统,在这个系统中,大多数参与者将是使用CPU的矿工。多年来,情况并非如此,因为采矿由专用硬件主导。虽然ASIC挖掘是一个好的发展还是坏的发展还存在争议,但它肯定不是原始白皮书中所强调的。

SHA-256个拼图。比特币使用基于散列的计算难题(“工作证明”)一直是最活跃的争论话题之一。它会消耗太多的能量吗?ASIC是否鼓励集中化?为基于GPU的挖掘或存储受限的挖掘设计的谜题会以更低的成本产生更好的激励措施吗?利害关系证明最终会胜出吗?

块大小和其他参数限制。至少可以说,1MB的块限制一直是争论的来源,块之间的10分钟间隔(在较小程度上)也是如此。许多后续系统随着更大或更频繁的阻塞而蓬勃发展。从长远来看,比特币的保守设计会被证明是明智的吗?

匿名。由于交易图分析的发展,白皮书中概述的关于比特币提供匿名性的论点现在已知是不完整的,因为只发布了公钥。保密交易(Confidential Transaction)、Monero或ZCash等系统提供了更强的加密隐私。另一方面,已经提出了许多向后兼容的方案,通过混合来混淆比特币区块链上的活动。匿名性是需要比特币忽视的内置支持的关键功能吗?

通货膨胀。比特币的设计旨在避免通货膨胀,但许多经济学家指出,比特币实际上是通缩的,因为最终只有在钥匙丢失(或者硬币被故意通过“烧焦证明”交易而无法消费)的情况下,硬币才能退出流通。零通胀实际上需要少量的新货币发行,才能跟上货币损失的步伐。如果这是比特币的一个错误,随着通胀慢慢消退,我们可能很多年都不会意识到这一点。

改用交易手续费。比特币硬编码了一个缓慢的过渡,从主要通过通胀来奖励矿工,到主要通过交易费来奖励他们。没有人知道这将如何发展,但一些研究表明,这可能会在后通胀世界造成严重的不稳定。

可编程性有限。比特币对其可编程性施加了严格的限制,以保持交易容易(且成本可预测)进行验证。Etherum项目已经显示出对更丰富的编程模型的巨大需求,尽管它的模型引入了额外的可伸缩性问题。从长远来看,比特币会不会因为其较弱的编程模式而受到阻碍?

CoinDesk是区块链新闻的领先者,是一家努力追求最高新闻标准并遵守一套严格的编辑政策的媒体渠道。CoinDesk是数字货币集团(Digital Currency Group)的独立运营子公司,该集团投资于加密货币和区块链初创公司。