Replying to Balenciaga

比特币的过去、现在和未来(三):比特币的青春期

2023-02-14

作者:musclesatz

来源:https://www.musclesatz.com/articles/bitcoin-past-present-future/

本文为《比特币的过去、现在和未来》译本的第三篇,前一篇见此处。

协议的青春期

普及

2011 年,比特币因为被 Electronic Frontier Foundation(电子前线基金会)接受而变得流行;这个基金会致力于提升公民在互联网上的自由。但是,因为担心使用密码货币接受捐赠的法律后果,他们在当年 6 月份又停止了接受比特币。2011 年 11 月,奥地利学派的自由市场支持者 Ross Ulbricht(罗斯·乌布里希)以假名 Dread Pirate Roberts(恐怖海盗罗伯茨) 创建了 The Silk Road(“丝绸之路”)电子商务网站,在 TOR 网络(洋葱网络)上运行。丝绸之路有一些伦理上的限制,但没有道德、宗教和政治上的限制,例如,不能出售偷来的东西和信用卡,但书籍和精神药品都可以出售。

“丝绸之路” 只接受比特币,因此比特币的第一个应用场景就这么诞生了。

历史上的丝绸之路真实存在;这条通路从中国出发,经过印度、阿富汗甚至日本,一直延伸到西班牙,全世界的商人都在通路上交换商品。

第一种垃圾币和第一种 BIP

2011 年 4 月 17 日,第一种 utility coin(“效用型代币”)诞生,叫做 namecoin(域名币),跟现在(2022 年)的诸多效用型代币相比,它也是相当实诚的,所以并不算是垃圾币(shitcoin):

没有 ICO(初次代币发行)(译者注:这个词的意思是代币的发行方在代币能够使用之前就出售代币);

没有营销部门;

在介绍文档中没有谎言;

没有 “黑科技” 概念。

域名币的主要目标是为互联网当前使用的域名解析系统(domain name resolution system,DNS)提供一种去中心化的替代方案,因为 DNS 是由 ICANN(互联网域名和数字分配协会)这样的中心化机构来管理的。域名币致力于提供一种能够抵抗政府和其它中心化机构的审查和伪造的域名解析系统,让限制和阻止互联网用户对特定网站和服务的访问变得更难。它还为域名提供了一种证书系统,允许用户以去中心化的方式证明自己对一个域名的所有权,而不需要使用中心化的第三方。所有这些都汇集成浏览器地址栏的一个新后缀:.bit。给定比特币时间链的可扩展性问题,似乎有必要把这个系统搬到另一个地方,那么进一步就是从头创建另一条链,但不要重新挖矿,也就是跟比特币 合并挖矿。

合并挖矿的原理是将次级链(比如这里的域名币)的区块哈希值可以嵌入主链(比特币)区块的 coinbase 交易中,跟主链区块一起挖矿。被嵌入的哈希值有一个简短的描述性文字作为前缀,称作 “tag”,因此次级链可以轻松定位它。然而,变成一条独立的链,就会产生一个问题,这导致了 scamcoin(诈骗币)的诞生:

如何为矿工的额外工作支付呢?肯定不能用 .bit 域名支付呀,因为手续费必须用同质化的资产来支付。这就催生了比特币的克隆币,这些币种复制了比特币的各种属性,因此 —— 显然 —— 没有任何价值。

(译者注:作者的意思是说,当时的合并挖矿链没法解决为额外的工作量支付手续费的问题,实际上也就是合并挖矿技术不成熟,因此大家转向了复制比特币并开发新的区块链。)

有些使用 .eth 域名的人还觉得自己很原创、很前卫呢。

第二种著名的垃圾币是 litecoin(莱特币),这跟域名币是完全不同的东西,而且被比特币开发者揭穿了。莱特币的创始人断言了一些完全没有根据的假设:

断言:比特币的设计很愚蠢,因为区块每 10 分钟才产生 1 个,我们可以让区块每 2 秒产生一个。

比特币开发者的回应:中本聪设定 10 分钟的出块时间并不是武断的,而是因为在相同的哈希率(挖矿速率)下,1 分钟的出块时间下产生的 1 个区块的价值不仅不如 10 分钟的出块时间下产生的 1 个区块,而且其对数价值也会小于后者的 1/10 。所以出块时间更短不会有更高的安全性。其次,更短的出块时间会提高产生孤儿块的概率:如果区块出现得更频繁,就会更经常出现两个区块同时被发现的情况,因此也会有更多的并行链出现(它们之间必定你死我活),这就意味着矿工的盈利空间下降;因为收益的方差提高,激励机制会偏爱大矿工而不是小矿工。

主张:莱特币的手续费会比比特币更低;回答:我们会在下一章,关于 “区块体积战争” 的章节讨论这个问题。

主张:比特币可以用 GPU 来挖矿,这是不行的;莱特币不会使用 SHA256 算法,而会使用一种抗 GPU 挖矿的,叫做 “script” 的算法;

比特币开发者的回应:没有这样的抗性,script 依然是一种算法,依然会有人找出办法使之适应 GPU 的特点并且可以扩展,仅仅是可能会慢一些。提高挖矿算法的复杂性会产生进入的门槛,所以第一个找出 GPU 挖矿办法的人将获得极大的竞争优势。

莱特币有一些明显的问题:首先,在它启动的第一天,挖出的区块明显比预期的要多。然后,莱特币也常常被称为 “白银版比特币”,意思是比特币是黄金,而莱特币价值稍欠。但是,这种说法是不靠谱的,因为它们都是数字资产,因此都是天然可分割的,不像黄金和白银有性质上的差别:黄金更容易转移但分割起来不是那么容易,白银更难以转移但更容易分割,但电子资产是同样易于分割和易于转移的。

9 月 19 日,一位密码朋克开发者 Amir Taaki(阿米尔·塔奇)提出了一个天才的想法:创建一套 BIP(比特币优化提议) 流程。这套系统将允许(而且依然允许)任何有提议的人遵循一套结构化的路径来提交提议。具体来说,这样的提议会在反馈征集流程中得到讨论,然后形成具有摘要、前言、详细规范、辩护意见、兼容性解释及参考实现的文本。一旦提议正式形成,就将呈给一群维护 Bitcoin 代码库的人,不论提案重要与否。这些人不会决定这个提议是否有效,只会给提交的每个 BIP 分配一个标号。

In addition to his contributions on Bitcoin, Amir in Syria served in the YPG army and worked in the Rojava civil society on various economic projects for a year and a half.

- 除了为比特币贡献代码,Amira 还在叙利亚的 YPG 军队中服役,并为罗贾瓦(Rojava)民间的各种经济项目工作了一年半。 -

仁慈的独裁者

BIP30 - 交易复制 提案是创建来解决交易混淆问题的,这个问题是说,两笔不同的交易可能具有相同的交易 ID(标识符)。这个 BIP 没有任何恶意和奇怪之处,但 Gavin Andresen(嘉文·安德烈森)—— 自称是中本聪的继承人 —— 这时候是自封的比特币项目领导者,他决定在某个时间(2012 年 3 月 15 日)激活以 BIP30 为内容的软分叉。

问题是,谁决定了嘉文是新一任的领导者?

在 2012 年 1 月,嘉文提出了 BIP16 - 支付给脚本哈希值,该提议允许将资金发送给一条脚本的哈希值(地址将以 3 开头),而不必非得发送给一个公钥的哈希值(地址以 1 开头)。问题的起因是,如果我想要给一个使用了两个乃至更多公钥的智能合约支付,我就不能靠一个地址完成支付,我必须给完整的、包含多个公钥的合约脚本支付。于是一种想法开始流传:如果可以给智能合约的哈希值支付,那会更加智能。有点复杂,但大意是说,与其在支付时表达:“我支付的这笔钱,这个公钥可以花哦,这个公钥也可以花哦,那个公钥也可以花哦”,不如把这些条件先写下来,通过哈希运算取得哈希值,然哈把这个哈希值放在时间链上:这笔钱是支付给这个哈希值所代表的智能合约的;在花费这笔钱时,只有揭晓完整的智能合约、并提供合约所需数据(比如足够多的签名)的人,才能成功花费。这是一种高效的解决方案,不论从隐私性还是可扩展性上来说,都是如此,因为合约是隐私的,仅在被花费时才会公开,而且仅在此时才会进入时间链(一开始放在时间链上的只是其哈希值,而不是其本身)。

但是,强烈的反对意见出现了,因为 Luke Dashjr(卢克·达实)分析了 BIP 16,然后认为它实现得很差,于是提议了 BIP 17 - OP_CHECKHASHVERIFY(CHV)。卢克毫不松口,他认为嘉文对交易得验证方式作了激进的改变,包括(他认为的):

哈希值时在脚本开始运行之前检查的;

脚本的表现方式完全改变了;

签名验证操作的限制也改变了;

新的 OP_EVAL 操作码有危险,因为它允许创建递归的循环。

卢克断定脚本哈希化是没有意义的,好得多的做法是让脚本默克尔化(让脚本变成一棵默克尔树),这样一来,在花费时就仅需要揭开特定部分的脚本。嘉文不同意,并决定使用标签日(flag data)方法激活自己的提议,时间就定在 2012 年 2 月 1 日。

结果,开发者们就分裂成了不同的派系,他们的第一步就是迫使嘉文移除 OP_EVAL,因为这个操作码会产生后来在以太坊上发生的攻击那样的严重问题(译者注:作者所指应为 2016 年以太坊基金会 devcon 2 会议期间发生的攻击)。他们还提出要加入一种阈值激活机制,让矿工表态。如果至少 55% 的矿工都在自己的区块中表示支持,那就说明公式形成了。

不仅矿工,所有的用户也必须达成共识。实际上,嘉文主持的标签日激活可悲地失败了。嘉文于 2 月 27 日在 bitcointalk 论坛上发帖,宣布道:

“虽然我们还没有达到 55% 的阈值,我已经决定,BIP16 将从 2012 年 4 月 1 日开始服役(这不是愚人节玩笑。)”

—— 嘉文·安德烈森

在区块高度 170060 处,有一笔交易虽然挖出来了,但执行失败了,因为它没有遵守 P2SH 的规则。据估计,截至 2012 年 12 月,45% 的矿工都在继续挖掘必定成为孤块的区块,因为他们没有遵守 P2SH 规则。

(编者注:P2SH 的技术构型也经历过多次改变。详细内容请见此处。)

在 2012 年 9 月,受到 Linus Torvald(林纳斯·托沃兹)的 Linux 基金会的层级式结构的启发,Bitcoin Foundation(比特币基金会)成立,工作地点在华盛顿。根据 Mike Hearn(麦克·赫恩)的建议,这是为了给比特币项目一个更加有组织的结构,以选择像嘉文一样的 仁慈独裁者(嘉文是中本聪在一封没有经过验证的、发给麦克·赫恩的邮件中指定的)。比特币基金会也在媒体中获得了声望,变成了想要访谈 “比特币项目的领导者们” 的记者的正式参考点。但是,这也造成了比特币社区的第一次重大内部斗争,一些人尝试把比特币基金会展现成一个无害的机构、避免讨论避税、洗钱等话题,而另一些人则对解释现实、解释比特币的目的更感兴趣。

区块战争前夜

2013 年 3 月 11 日,比特币的协议升级期间出现了严重的问题;这次升级本身是为了将 Berkeley DB 数据块替换成 LevelDB 数据库。问题在于,中本聪曾经为区块的体积设置了 1 MB 的上限,这是被 2010 年 9 月的社区接受的限制;但是,Berkeley DB 中还有一个隐式的、未明说的限制,是小于 1 MB 的。因此,虽然 1 MB 的区块在共识层面是有效的,但在数据库层面,它是无效的,因此会被拒绝掉。换用 LevelDB 之后,一些节点开始接受 0.9/1 MB 的区块,但是链就分裂了(那些还没升级的节点会拒绝这些区块)。在一团混乱中,一次预料之外的重复花费攻击成功了:某个输入先是出现在旧链上,然后又意外出现在新链上,收到 9000 美元的商家眼睁睁看着这笔钱因为区块链重组而消失了,所有这一切都是由共识问题,深层来说是数据库层面的技术变更而导致的。

2013 年 6 月 14 日,维基解密再次接受比特币捐赠,但坏消息转眼就来,10 月 2 日,“丝绸之路” 网站的创始人在经历了一个月的躲藏之后被逮捕,因为创建 “丝绸之路” 而被判处两个无期徒刑,并且不可以假释。

Ross Ulbricht is currently detained in the USP Tucson, a US maximum security penitentiary.

- 罗斯·乌布里希目前被关押在图森 USP 监狱,这是美国安全级别最高的监狱。 -

罗斯很可能犯了一些错误,比如在 TOR 网络上使用验证码,揭开了其可能使用的 IP,从而让美国国家安全局得以追踪到网站所在的主机。

有人发现,在这次调查中,一名参与逮捕罗斯的 FBI 特工偷走了他大部分的比特币。而且,在罗斯被逮捕的时候,他正在一家公共图书馆里,以主管的身份访问网站的控制台。就在他盯着屏幕时,一些警察在他背后打斗,引起了他的注意。与此同时,镣铐落下。网站上所有的比特币都被没收了,但其中一些因为两个特工的腐败不翼而飞;两人中还有一位在后来也被逮捕了。

他们是怎么没收罗斯的比特币的?

不走运的是,这些比特币都放在一个 “热钱包”(联网的钱包)里,通过网站的界面就可以直接取出。

在 2014 年,Bitcoin Meetup 在米兰成立,很快就变成了欧洲最大也最有影响力的比特币活动。但是,很快,另一个打击又来了:2 月份,电子货币交易所 MtGox 因为网络攻击而关闭了取款通道并宣布破产。MtGox 的关闭催生了第一批区块链(资金流向)分析公司;并且,在中国导致了对比特币的禁令。

2015 年 Gizcomo Zucco(贾科莫·祖科)在米兰成立了 BlockchainLAB,目标是让全世界最好的比特币专家汇集在一间办公室里。开发者可以自由工作,做任何自己想做的事,只要他们分享自己的知识并撰写报告,BlockchainLAB 会卖给银行和机构。他们的办公室在米兰的哥白尼街,未来有许多重要的事情在这里发生。

(未完)

比特币的过去、现在和未来(四):区块体积大战 (1)

背景和方向

区块体积大战是从 2015 年开始正式开打的,但要想完全搞懂这件事,我们还要补充一些历史背景:

2010 年 7 月 15 日,中本聪引入了 1 MB 的区块体积限制,这个限制是在 2010 年 9 月激活的。2010 年 10 月 4 日,开发者 Jeff Garzik(杰夫·贾兹克)放出了一种新的客户端,该客户端用一个补丁将中本聪引入的限制移除了。这时候,Bitcointalk 论坛和 r/reddit 论坛的主人 Theymos(德默斯),公开呼吁不要使用贾兹克的补丁版本,因为这样做会让你自己从网络中分离。中本聪也回复 “+1 Theymos”;但贾兹克告诉中本聪,这不是会不会从网络中分叉出去的问题,更多是一个营销问题:要是有一天,比特币的交易需求达到了 Visa 的量级,这个区块体积限制就会限制交易的吞吐量。那时候,中本聪的回复是,要是有必要改变这个限制,未来可以做,但也要可控、逐步地进行。

2011 年发生了三个相关的事件:

2011 年 3 月 7 日,比特币迎来第一位带薪的开发者:Mike Hern(麦克·赫恩)。谷歌公司有一个规定,允许雇员贡献 20% 的工作时间在个人项目上,只要提前打报告就行。麦克·赫恩向谷歌提出要开发 BitoinJ,让比特币拥有 Java 语言的客户端。

2011 年 4 月 23 日,麦克·赫恩公开了跟中本聪的一次邮件往来,在该邮件中中本聪指定 Gavin Andresen(嘉文·安德烈森)作为自己的精神继承人;

2011 年 5 月 5 日,一位新用户 Gregory Maxwell(格里高利·麦克斯韦尔) 进入了 bitcointalk 论坛;他后来成为了最多产的比特币研究者和开发者之一,是大区块支持者眼中的 “终极反派”。他用一篇很长的帖子解释了自己为什么支持中本聪施加的区块体积限制:这不仅避免了未来可能无法下载区块的问题、孤儿块率提高的风险,还有一些纯经济上的影响:如果没有限制,区块的体积就将膨胀,因此矿工的手续费将变得非常低;货币通胀奖励总有一天会变得太低(请记住,到 2140 年比特币就将不再增发);我们都知道价格只会在稀缺商品上形成,要是区块空间不稀缺,它就不会有价格,因为没人愿意为它支付价格。(译者注:孤儿块是指被放弃、没有人在后面继续挖矿的区块。按照比特币的共识机制,如果同一区块高度上出现了多个区块,最终只会有一个变成主链区块,别的就会变成孤儿块。)

2012 年,第二位拥有全职薪水的开发者加入,就是嘉文·安德烈森。

2013 年,麦克·赫恩说服嘉文,将 Bitcoin 软件重新命名为 “Bitoin Core”。

2013 年 5 月,Peter Todd(彼特·陶德)发布了 keepbitcoinfree.org 网站,成为大区块主义者的另一个眼中钉。他在网站上发布了一份好莱坞大片一样的视频,解释说区块体积限制不是一个技术选择,而是一种道德选择,背后对应的是两种价值观:一个是给予矿工控制整个网络的机会,从而让比特币中心化;另一种是希望比特币自由、每个人都可以自主验证。

很快,2013 年 8 月 19 日,格里高利·麦克斯韦尔在 bitcointalk 论坛上发表题为 “终极终极区块链压缩技术:CoinWitness”的文章,提出了 coin witness 的概念。这是第一种侧链方案。格里高利写道:

“我们可以拥有许多区块链,而在比特币区块链上,我们可以使用一些叫做 SNARKs 的技术,为长历史生成紧凑的证明。我们可以在比特币上实现一种操作码,用于验证 SNARKs,这样一来,你就可以让整条区块链生活在比特币上。好处在于,我们可以在主链上冻结一个比特币,然后相应在侧链上发行一个侧链币,等到这个币需要回到主链上时,我们再验证其历史的紧凑证据;这将提升可扩展性,并且不必创建垃圾币就可以开展实验。”

—— 格里高利·麦克斯韦尔

10 月 14 日,Adam Back(亚当·贝克)发表了题为 “Bitcoin Staging(比特币的发展阶段)” 的论文,在文中他解释道,试验更大或更小的区块和各种隐私性方案,都是好事;但如果需要为此创建新的垃圾币,就不算什么好事了;格里高利的想法可以用来创建侧链。

嘉文放弃了他对 GitHub 上的 Bitcoin Core 代码库的控制权,将自己的角色移交给了 Wladimir Wan Der Laan(弗拉基米尔·范德兰);他没有表示这是收缩了自己的权力,而是称代码维护工作非常繁重,而他还有更重要的工作要做。

2014 年 10 月 23 日,有关侧链的白皮书完成了。这份论文指出,使用 SNARKs 的 Coin Winess 还不可行,但搭配中本聪提出的 “SPV(简易支付验证)” 这样的技术,就可以创建这些独立的链,比特币可以移动到这样的链上,尝试不同的隐私性、速度和可扩展性的搭配。在这份白皮书上署名的有:亚当·贝克、麦克斯韦尔、Matt Corallo(马特·科拉罗)、Luke Dashjr(卢克·达实)、Pieter Wuille(皮耶特·乌勒)、Andrew Poelstra(安德鲁·博尔斯特)、Andrew Miller(安德鲁·米勒)和 Jorge Timón(乔治·蒂蒙)。但是,所有这些开发者都犯了一个错误:他们成立了一个规模太大、明星太多的公司,产生了比特币 “已经中心化” 的印象。

2014 年 12 月 27 日,麦克·赫恩发布了 BitcoinXT 软件,这是可以替代 Bitcoin Core 的重构软件。XT 版本的推出是因为麦克在不久之前提出了 BIP64 - getutxo message,但这个 BIP 没有迅速在 Bitcoin Core 中实现,于是麦克决定创建一种替代性的版本,跟原版做出一些差异化,包括实现 BIP64。

Reply to this note

Please Login to reply.

Discussion

比特币的过去、现在和未来(四):区块体积大战 (2)

讲完了这些,现在我们可以开始讨论区块体积大战了:大战的主要话题是比特币链上的区块的体积上限,以及一系列纯技术上的话题:

下载一个时间链区块所需的时间;

区块的传播时间,这个时间改变可能会改变产生孤儿块的概率;

自私挖矿(selfish mining)的可能性;

大矿工吞掉小矿工的可能性;

手续费的趋势。

所有这些技术上的问题,又会关联起另一些问题:

如何改变区块体积,出块的速度?

应该使用硬分叉来改变这些参数吗(硬分叉将不与过去的规则兼容),还是使用软分叉(做到跟过去的规则兼容)呢?

我们应该动态调整这些参数,还是按照某个规则来调整?

接下来,我们将讨论需要扩大链下区块的问题,以及链下技术(例如闪电网络和侧链)的实效性问题。另外两个话题关系到中本聪一开始的想法:即使只有少数大的节点可以运行 “真正的节点”,整个网络依然受到 SPV 协议的保护;以及治理问题:谁来决定比特币协议往哪个方向改变?矿工吗?还是开发者?比特币基金会?数字资产交易所?还是用户自己决定?

最后,我们还会分析关系到表达自由的论坛礼仪争论。

Blockshainlab 和第一次争吵

2015 年 1 月,Giacomo Zucco(加科莫·祖科)成立了 Blockshainlab 公司,这家咨询公司意在成为祖科的创业公司的孵化器。那时候祖科的创业公司的商业模式就是 亏钱,但是在比特币上玩一些很酷的事情,所以没关系。

Blockchainlab 的商业模式是去接触祖科的所有客户,销售关于比特币的建议和培训;这样,这些建议就不是来自祖科个人的,而是来自于一个汇聚了比特币最大的创业公司和开发者的专业知识的团队;Blockchainlab 也是新创业公司的一个孵化器。第一个被孵化的企业是 Riccardo Casatta(里卡多·卡萨塔)的 Geobit (后来创建了 Eternity Wallet);后来更多人加入了进来,包括 Franco Cimatti(弗兰克·齐玛蒂),他是意大利最早的比特币友之一,因为把 Bitcoin 客户端翻译成意大利语,还获得了中本聪本人的认可。

但很快,这个 “创业孵化器” 性质就被抛到了九霄云外,因为祖科意识到,这些创业公司没有商业模式,也不想拥有商业模式。所以,Blockchainlab 形成的商业模式就是变成开发者的研究中心、优先获得信息并打包和转售;也就是用帮助服务来交换信息。

2015 年 2 月,Thaddeus Dryja(撒迪厄斯·锥亚)和 Joseph Poon(约瑟夫·潘)发表了有关闪电网络的第一篇论文;就在三个月后,2015 年 4 月 15 日,在伦敦举办的一场大会上,嘉文作了题为 为什么我们需要更大的链 的演讲,表示需要区块变大、移除中本聪为区块体积设置的限制。

演讲之后的问答环节,嘉文被问到,要是区块体积限制的辩论没有形成共识,那该怎么办? 嘉文的回答斩钉截铁:我怎么说,大家就会怎么做,就像 P2SH 激活的时候一样。这个回答非常令人震惊,实际上, 5 月 7 号就出现了第一个摩擦:弗拉基米尔·范德兰(Bitcoin Core 代码库的新维护者)就声明他不同意嘉文的提升区块体积限制的想法:他警告称扩大区块是危险的、不成熟的,尤其是没有社区共识的话。

5 月 29 日,嘉文发出了最后通牒,声称麦克·赫恩将在 BitcoinXT 客户端中实现更大的区块;6 月 22 日,嘉文发布了 BIP 101 - Increase maximun block size(提高区块体积上限) —— 直接将区块体积上限从 1 MB 提高到了 8 MB,并且每年都翻倍。

嘉文声称,根据 摩尔定律,硬盘的存储空间会每年翻倍。但是,问题不在于存储空间,而在于:

带宽并不遵循摩尔定律,不会每年都翻倍

用于验证的计算能力也不会每年都翻倍

嘉文选择 8 MB 的理由是,一开始他和麦克计划将区块大小限制提高到 20 MB;但中国的矿工(他们当时掌控着全网 60% 的哈希率)反对这一点,因为这样的话他们就会被政府的网络防火墙切断跟比特币网络的连接。因此,中国矿工接受了 8MB,作为一种妥协(译者注:原文如此,疑应为嘉文接受妥协)。后来,麦克披露他们选择 8 MB 是因为 8 这个数字在中国文化中意味着发财和地位提高,可以让中国矿工开心(这个动机可真科学啊)。

然后,贾兹克提出了两个提议:

BIP 100 - Dynamic maximun block size by miner vote(根据矿工投票实现动态的区块体积限制):因为区块体积限制可以根据矿工的多数票而改变,如果他们形成了多数,就可以改变区块体积限制。这个提议也很有争议,因为显然,如果区块过大,一个矿工就可以把所有其他小矿工都赶出网络;而且,如果单个矿工占据了多数,他可以一直维持大区块,让所有少数派都无法再进入这个市场,这非常危险;

BIP 102 - Block size increase to 2MB:更快的解决方案:现在直接让区块体积限制翻倍,从而 “搁置争论,以后再说”。即使这个提议也没有受到欢迎,许多人都好奇,执行一次硬分叉、只是为了回避一个几年后就会再次发生的问题,究竟有何意义。

后来,皮耶特·乌勒(也叫 “sipa”)也加入了进来,提出了 BIP 103 – Block size following technological growth(跟随技术进步提高区块体积限制):我们现在就做一次硬分叉,但不是把体积限制翻倍,而是逐步提高,到 2063 年提高 17.7%。Sipa 在文档末尾点名了弗拉基米尔和格里高利,表示感谢他们的正面反馈。但事后,格里高利说:虽说我被放在文末的致谢部分,但我的反馈是:别这样做。我根本就不同意 Sipa。

最激进的当属亚当·贝克,他同意贾兹克的 BIP 102,因为他认为这是 “安全的”,甚至玩笑般提出了 BIP 248:“我们现在先倍增到 2 MB,然后,在比特币下一次增发速度减半时倍增到 4 MB;等到下下次增发速度减半时倍增到 8 MB,以此类推;与此同时,链下和侧链技术会缓解这个问题。”

亚当·贝克跟贾兹克一样,是一个大区块主义者,跟格里高利·麦克斯韦尔和卢克·达实的意见完全相反。但是,在某种程度上,他们都同意:如果没有完全达成共识,就 无法 推动硬分叉。

总有新叙事的货币,还有 “比特币耶稣”

2015 年 7 月 30 日,以太坊(不幸地)诞生了。

Vitalik Butarin(维塔利克·巴特林),一位非常年轻和天才的记者,曾经(在 Jimmy Song 委托下)发表了一系列关于 Bitcoin 2.0 协议(比特币上的资产发行协议)的文章。维塔利克得出了正确的结论:在比特币上,资产的管理与比特币的管理必然不同,因为矿工不会执行这些资产需要遵循的规则。所以他转而创建了以太坊(但同样的逻辑,让彼特·陶德和祖科走向了开发现在被称为 RGB 的技术方案)。

但是,这种垃圾币的诞生很值得一提,因为这也是比特币故事的一部分;只不过,它是一种总有新叙事的垃圾币:

第一种叙事是:“在我们这里可以发行资产,比比特币要强”;

第二种叙事是:“环保主义,我们将使用权益证明(proof-of-stake)而不是工作量证明(proof-of-work)”;

第三种叙事是:“我们拓展了智能合约的语言,使之能用于分布式的通用计算”;

第四种叙事是(就像莱特币):“我们手续费更低、出块更快、区块更大”。

维塔利克 —— 虽然是在另一条链上 —— 成了大区块的狂热支持者,而且,根据他的想象,区块的可扩展性是没有限制的,你可以把任何你想要的东西放进去、所有的智能合约和数据都应该放在链上,而且区块应该足够大、手续费应该足够低。

乘此机会,我要分享一下加科莫·祖科对以太坊的温和观点:

“我认为以太坊是这个行业最糟糕的骗局之一,所以任何对比特币感兴趣的人都应该完全无视它,不要污染比特币这样严肃的东西。以太坊像所有山寨币一样,其开发工作是中心化的,但更糟糕的是,它还有救助 TheDAO 这样的先例,以及 ‘你们能先别交易吗’ 这样的荒唐命令,还有因为创始人的各种假新闻而引发大涨大跌的风险。以太坊也具备所有的不可持续问题,因为他们误解了区块链的取舍(“我们想把一切都放在链上!”),是标准的 ‘大区块’ 诈骗币,所以节点在技术上就会趋于中心化。它具备一切假装懂技术的脑残制造的安全缺陷,因为这帮人根本就不知道自己在干什么(到目前为止,已经证明你在以太坊上甚至没法实现简单的多签名安全性以及保证不被别的用户 ‘意外打断’ …… 就别提什么复杂的 ‘智能合约’ 了)。因为预挖货币和 ICO,它还同时具备道德上、伦理上、法律上的问题以及扭曲的经济激励。它跟所有的 ICO 一样使用欺诈性的 ‘我们不是货币,我们是应用币’ 措辞。它的叙事每个月都在变,而且他们会无视虚假承诺被揭穿的事实,不断增加新的空头支票(具有应用币的世界计算机啦,图灵完备啦,无法停机的应用啦,富状态性啦,可以收藏的电子猫啦,DeFi 啦,开放式金融啦,价值储存啦,统统都是泡影)。它还有一个惯于销售骗局的创始人,在启动这个骗局之前喜欢介绍 ‘在普通计算机上模拟量子计算’(就像那些销售疗愈水晶和时间机器人没什么区别)。以太坊的网站上还放着一个因为 TheDAO 事件而完全沦为商业骗局的标语(‘不可停机的应用’)。它的验证基础设施完全集中在一家公司(Infura)。它还有一个 ‘2.0 路线图’,完全就跟科幻小说一样,就是一份失败宣言。我觉得它甚至比 Bitconnect、Dentacoin 和 BSV 还要糟,因为在后者上虽然有人赢钱有人输钱,没有人会浪费声誉、技巧、天赋和时间。以太坊则相反,浪费了许多有价值的智力资源。”

—— 加科莫·祖科

(译者注:“TheDAO 救助事件” 发生在 2016 年;TheDAO 声称要使用以太坊上的智能合约实现一种投资者可以随时进入和退出、投资方向由投资者投票决定的投资机构;但其智能合约的代码有安全缺陷,黑客利用了这个缺陷取走了合约中的 364 万 ETH;以太坊基金会后来选择了硬分叉,产生了一条资金归还了原位并修补了安全漏洞的链。今天的以太坊是这条分叉过的链;而没有硬分叉的链是 “Ethereum Classic”。“你们能先别交易吗” 疑是指事件发生时,以太坊创始人维塔利克在线上聊天室里要求交易所暂停以太坊交易:“ok can you guy stop trading”。)

img

- 谢谢加科莫跟我们分享他的富有启发的观点 -

2015 年 8 月 15 日,区块体积大战正式开打。嘉文和麦克共同发布了一篇博客,声称新版的 BitcoinXT 将实现嘉文的 BIP 101,而且嘉文也不再支持 Bitcoin Core。不会 有什么矿工投票,直接就会激活。

此时离中本聪消失已经快 5 年了,但神奇的是,他的邮件地址居然发出了一封新邮件:

“我跟进了近期的辩论,我本希望最后能形成普遍的共识,但是 BitcoinXT 0.11a 的发布表明这似乎是不可能了,因此我不得不分享我对这次非常危险的分叉的担忧。这位 ‘wannabe Bitcoin’ 开发者说他们跟随了我最初的愿景,但事实远非如此。在我设计比特币的时候,我希望它(desinged it in such a way that)如果没有全体共识就难以进一步改变、甚至不可改变。我希望它不受克里斯玛领袖的影响,不论那个领袖是嘉文·安德烈森、巴拉克·奥巴马还是中本聪。他们使用我以前的文字,说比特币一定要这样发展才行,但我也可能犯错误,而且今非昔比。如果仅仅两个开发者就可以改变比特币、随心所欲地重新定义它,那我只能说比特币是一个失败的项目。”

—— 中本聪

(译者注:“克里斯玛领袖(charismatic leader)” 是社会学家马克斯·韦伯发明的概念,指的是以魅力、非凡特质号召人们行动、形成统治的领袖。)

比特币的过去、现在和未来(四):区块体积大战 (3)

这条消息无法明确证明来自中本聪本人,但它的意义不变:即使这封信真的来自中本聪,一个去中心化的协议如果还是依赖于其创造者才能走向未来,那依然是一个失败。

2015 年 8 月 17 日,德默斯在 Bitcointalk 论坛和 r/bitcoin 版块上颁布了一条新规则。在此之前,人们一直讨论且只讨论 BitcoinXT,两个论坛基本上都被这个话题垄断了。德默斯声称,被讨论的东西打破了比特币的共识,应该算作一种山寨币。作为论坛的版主,他要求所有想要讨论这种山寨币的人到别的地方去:新规则会删除跟垃圾币相关的帖子。BitcoinXT 在 Bitcointalk 上会进入山寨币板块,但在 Reddit 论坛的 r/bitcoin 板块上,人们不可以再讨论它。

Roger Ver(罗格·沃),也就是 Bitcoin Jesus(比特币耶稣),是一位在 2010 年发现比特币并成为坚定支持者的人。他是一个超级自由意志主义者,甚至放弃了美国国籍,还投资了一些比特币初创企业。罗格没有什么技术知识,只是想让比特币变得更加政治化,他跟嘉文、麦克、卢克·达实和格里高利不一样:他们想让比特币变得更中立,不那么吓人。在区块体积大战中,罗格并不是那么在乎区块体积,只是一直鼓吹比特币消费和储蓄的理论(I’d add thank fuck when you’ve made millions with Bitcoin :-D(译者注:此句不可解。))。在他所写的支持嘉文和麦克的帖子被德默斯封掉之后,他彻底炸毛了。所谓 “自取其辱”,说的就是这个比特币耶稣,他搞得自己除了论坛的公告板,在所有地方都被禁言了。结果,罗格·沃成了 r/bitcoin、Blockstream 和 Bitcoin Core 最热切的反对者,事后也被证明是大区块主义最热切的支持者(后来延伸到其它几乎每一种垃圾币)。

8 月 24 日,BitPay、blockchain.info、Circle、BitGo、 KnCMiner、itBit 和 Xapo 各公司一起发出了一份公开信,称他们已经跟嘉文 —— 比特币的领袖 —— 讨论过了,意识到摆在眼前的道路就是提高区块体积限制;他们同意并决定支持嘉文。整个行业都决定支持 BitcoinXT,大区块主义者似乎已经胜券在握,因为这似乎是行业的巨头们一起作出的选择;这种选择也让人担心,因为这具有政治上的影响:比特币是由不可变更的共识治理的吗?还是由合法的、主要在美国受监管的实体控制的呢?这似乎是一个很容易被管制的市场,只要美国政府控制了这些企业,比特币立即就会变得像 Linden Dollar、e-gold 和 PayPal 一样遭人唾弃。

隔离见证与假中本聪

两种以后,IETF(互联网工程任务小组,开发了 TCP/IP 的非正式工程师团体)的前成员 Pindar Wong(品达·王)建议停止用博客相互攻击,面对面解决问题,并呼吁格里高利、嘉文、亚当和各大公司在 9 月 12 日、蒙特利尔举行的 Scaling Bitcoin Phase 1 大会期间亲自讨论这个问题。

格里高利·麦克斯韦尔本来在大会的萎靡气氛中非常羞怯,但他开始跟嘉文争论之后,这场友好交流就变成了真正的辩论 —— 你要知道,有 80 个人在场聆听这两位开发者的观点。40 分钟之后,格里高利停止了会议,他说让他们两个人来决定比特币的命运是不公平的,合理的是让每个有想法的人都说出来,要是能在黑板上写下来就更好。

12 月 6 日,Scaling Bitcoin 的第二场会议举行,这次是在香港。在第一次会议期间(除了格里高利跟嘉文的争论),会议基本上被闪电网络的演讲主导;这一次,则是被皮耶特·乌勒提出的一种叫做 隔离见证(Segregated Witness) 的提议的有关演讲主导了。隔离见证致力于提升比特币的可扩展性,办法是提高可以在单个区块内包含的交易的数量,并减少交易对存储空间的花销。隔离见证实现目标的办法是将交易的签名数据(“witeness(见证数据)”)跟交易的其余部分分割开来。如此以来,交易的体积就可以减小,不改变 1MB 的体积限制也可以在单个区块中塞入更多加以。此外,卢克·达实还发现,有了隔离见证,不必执行硬分叉就可以稍微提高区块体积的上限。

在香港会议期间,一个大玩家现身了:比特大陆的 CEO 吴忌寒。比特大陆是一家生产挖矿 ASIC 的企业,占据了 80% 的市场份额。吴忌寒声称隔离见证应该用硬分叉来实现,而不是用软分叉来实现(我们后面再讨论这两个词的含义)。

2016 年 1 月 3 日,Coinbase 交易所的 CEO Brian Armstrong(布莱恩·阿姆斯特朗)宣布支持 BitcoinXT,公开贬低了 Bitcoin Core。但是,问题在于,1 月 14 日,麦克声称他在香港,意识到了大部分矿工都不想要 BitcoinXT,而且也不会支持它,所以在一篇题为 “比特币实验的解决方案” 中宣布(用他自己的话说) bitcoinXT 实验的终结。从行业的角度看,bitcoinXT 似乎非常强劲,因为得到了 Coinbase 的支持;但在矿工那里,bitcoinXT 得到这支持非常弱,因为矿工们达成了一个不成文的约定,决定用硬分叉支持一个 2MB 的隔离见证。后面我们再说为什么许多人渴望这个隔离见证硬分叉。

在 2016 年 2 月 5 日,两份美国杂志《Gizmodo》和《Wired(连线)》上出现了文章,声称澳大利亚投资人、企业家 Craig Wright(克雷格·怀特)就是真正的中本聪,是比特币的匿名创建者。怀特声称自己拥有130 万比特币 —— 著名的 “Patoshi” 挖矿模式挖出的比特币的数量,许多人都相信那就是中本聪本人的踪迹。

这条新闻在社区中引发轩然大波,因为许多比特币人,包括格里高利、卢克和弗拉基米尔,都跟怀特划清了界限,认为他的说法中有水分。后来怀特改变了他的说法,标榜自己是大区块主义者的领袖,并声称有必要将区块体积提高到 GB 级别,甚至 TB 级别,而隔离见证是 “垃圾”。

Bitcoin Classic 和名人们

2016 年 2 月 10 日,嘉文放出了一种新的比特币客户端,叫做 “Bitcoin Classic”,这个客户端获得的支持比 BitcoinXT 还要少。不久之后,香港的圆桌会议会聚集了一些已经参加过 Scaling Bitcoin phase 2 的开发者和矿工。之所以有这个圆桌,是因为一些矿工威胁要运行嘉文的 Bitcoin Classic;关键就在这里,吴忌寒再次现身释放了一个清晰的信号:这不是区块体积的问题,而是隔离见证应该要用硬分叉(不向后兼容)来实现,而不是软分叉。

“Bitcoin Classic” 的名字似乎意味着:我们要加入一个变更,但这个变更是尊重中本聪的最初愿景的。即使它是一个变更,也几乎是回到原本的状态。我要说,这是卑鄙的营销手段。

在两天的密集讨论之后,人们达成了下列约定:

“我们中国矿工,承诺不会运行 Bitcoin Classic,只会运行 Bitcoin Core。作为回报,我们在场的比特币开发者,愿意为隔离见证开发一种硬分叉,但仅在社区接受它的时候才会激活它。”

格里高利·麦克斯韦尔,时任 Blockstream 公司 CTO,跟亚当·贝克发生了口角,因为格里高利说:“你不能代表任何人,你也不是比特币,你也不能做这样的黑箱交易。比特币就是比特币,根本不在乎你的约定。” 亚当则回应说,他们没有跟矿工承诺要改变比特币,只是承诺了会开发可以硬分叉的代码,而这些代码也仅会在社区形成共识的时候发布到生产环境中。

- - -

2016 年 5 月 2 日,嘉文·安德烈森迈出了一步,完全改变了历史:他写了一篇博客文章,声称自己被邀请去了伦敦,在克雷格·怀特的一架私人飞机上,克雷格秘密向他证明了自己就是中本聪。他也声称,几天之后,怀特就会向公钥签名向整个世界证明自己是中本聪。

事实证明,克雷格没有提供真正的签名,他发布了一篇文章,在文中似乎是提供了签名,但这个签名是错误的。随后克雷格发文称自己不能签名,因为他还不够强大,不能暴露自己,因为他太在乎自己的隐私了。随后他删除了自己的博客。

大人物!

不久之后,2016 年 5 月 5 日,在一次称为 Consensus 的大会上,嘉文继续主张怀特就是中本聪,这时候维塔利克·巴特林巧妙地打断嘉文之后也给出了他自己的说法:

视频:https://youtu.be/2qLI3VIHuKU

2016 年 5 月 6 日,弗拉基米尔(Bitcoin Core 的 GitHub 代码库维护者)移除了嘉文的公钥,并称嘉文给怀特的背书是危险的,可能导致对嘉文被劫持的担忧。嘉文对代码库拥有太多权限了。

比特币的过去、现在和未来(四):区块体积大战(4)

Blockchainlab 里发生的事情

2016 年 7 月 27 日,blcokchainlab 团队里也发生了分裂:Lawrence Nahum(劳伦斯·那恩)(首席科学家)被 Blockstream 挖走了 。Blockstream 是大区块主义者眼中的三大反派之一,自然也是小区块主义者眼中的三大英雄之一。这三大团体分别是:

Bitcoin Core;

Bitcointalk 论坛和 r/bitcoin 板块的版主组合,也就是德默斯和 cobra(科布拉)。

Blockstream。

Blockchainlab 中的一号名人同时是 Blockstream 的雇员; 还有另一位成员叫做 “Franco Cimatti(HostFat)”,是一位狂热的大区块主义者(但他更多是从言论自由的角度反对糟糕的审查:也就是说他并没有那么主张 “大区块更好”,只是主张每个人都应该有机会参与改变比特币和表达看法)。

Blockchainlab 中的裂痕变得不可弥补,而祖科也不再尝试维持派系的平衡,他开始选边站,并向品达·王提议在米兰举办 Scaling Bitcoin 的第三次会议。

两个 “大事件” 被认为是祖科和 blockchainlab 表明了自己的立场:

承办和组织一场倾向于小区块主义者的会议;

直接参与会议议程的起草,因此祖科和其他组织者可以决定哪些论文可以上台演讲、哪些不行;又因为会议有两天,有数十个演讲,所以决定必定是在定性的基础上作出的。主要的话题是,给定区块的体积有上限,如何才能最好地扩展协议?

除了主要话题,组织者依然留下了一个环节来讨论激进改变共识机制和提高区块体积限制的可能性。有一位 Meni Rosenfeld(曼宁·罗森菲尔德)准备了关于弹性限制的演讲:他的想法是你可以在交易池较慢满时临时让区块变大,并在交易池清空时让区块变小。显然,不是由矿工来决定何时扩大和收缩区块,而是由一套规则,根据最低的可入块交易费水平来决定。这个提议没有展示出来,因为论文的质量实在是太糟糕了。但 Bitcoin Unlimited 客户端在这个环节出现了,在 Bitcoin Classic 死亡之后,Bitcoin Unlimited 成了大区块主义者们凝聚共识的新圣杯。

彼特·陶德介绍了客户端验证比特币(client-side validated Bitcoin)的想法,标志着 RGB 的诞生。他声称:矿工不仅不需要决定区块的体积,甚至不需要知道交易是有效的还是无效的。矿工只需要因为在链上包含他称为 一次性密封条(single-use-seal) 的东西而得到支付。如果 Alice 给 Bob 支付了,那么支付证明(包括签名、输入脚本和输出脚本),都应该点对点地传递给 Bob,只有交易的哈希值需要留在链上,这样甚至连矿工都不知道 Alice 和 Bob 在干什么。这可以提供巨大的可扩展性和惊人的隐私性;

唯一被讨论和容忍的共识变化是使用软分叉激活、可能增大区块体积的隔离见证。隔离见证可以用软分叉来实现,因为旧的节点将只能看到交易的一小部分(输入和输出),不再包含花费脚本;花费脚本会放在一个并行的、称作 witness program(见证程序) 的数据结构中,放到区块之外;区块中只会包含这些见证程序的承诺;结果,新的节点可以通过的单个区块理论上可高达 4 MB,而在旧的节点那里,会把这些交易当成有效的,并且区块依然只有 1 MB(不会看到见证程序)。

一些大区块主义者,包括吴忌寒和罗格·沃也参加了这次会议。他们非常扎眼,因为他们在分发印有 Hard Fork Café(硬分叉咖啡馆) 的 T 恤(模仿了 “Hard Rock Café” 的图标)

真正的宣战事件是,大区块主义者团体甚至复刻了大会结束时候的终场聚会:他们组织了一个 言论自由聚会 ,辞令是这样的:在大会上,你不得不听大会组织者想让你听的内容;但在我们的言论自由聚会上,任何人都可以拿起话筒,提出对共识规则的任意更改。

许多人都去参加这个偏门会议,而且令人震惊的是,他们把所有的中国矿工都邀请来了。唯一一个例外是 F2Pool(鱼池)的 CEO 王纯,他既去了大会的终场聚会,也去了这个言论自由聚会。

这是第三次让世界上最重要的比特币开发者齐聚一堂的大会,存在明显的 单点故障 问题。正是出于这种担忧,这个国际化的组织委员会制定了严格的规则,例如,食品必须是全生产链条可验证的。加科莫·祖科还委托了一个富有反恐经验的国际安全公司,他们能保证高度的安全性,同时允许高度的自由。众所周知,比特币友不喜欢被截住、搜身和骚扰。

- 祖科假装成前摩萨德,在第三次 Scaling Bitcoin 会议上搜索恐怖分子 -

在 Scaling Bitcoin 会议之后,祖科给 blockchainlab 办公室安排了两件事:

主持 Bitcoin Core Meetup,在大会结束后组织正式的开发者聚会;

Gabriele Domeninichini(加布里埃尔·多梅尼基尼)曾是 Blockchainlab 的雇员,他想测试一些东西:

由撒迪厄斯·锥亚和约瑟夫·潘开发的,闪电网络的 Go 语言实现;

Christian Decker(克里斯蒂安·德克尔)的实现;克里斯蒂安发明了完全类似于闪电网络的东西;后来他跟长期的 linux 开发者 Rusty Russell(罗斯提·拉塞尔)一起受雇于 Blockstream。他们俩持续开发着这种 C 语言的闪电网络实现;

两个非常聪明的法国小伙。他们在开始设计硬件钱包之后,发现巴黎已经出现了一款非常强大的硬件钱包 Ledger,于是他们转而开发一种叫做 eclair 的闪电网络实现,并创建了 ACINQ 公司。

加布里埃尔安装好这些软件后,意识到虽然理论上它们在实现的是相同的想法,但依然缺乏共通的技术规范。后来,祖科就说服了 Lightning Labs 的 Elizabeth Stark(伊丽莎白·斯塔克),将这些 公司/开发者 都聚集在一起,让他们一起工作,直到产生所有实现都遵循的互通规范,让实现之间开启通道和实现路由成为可能。

这并不是这种方法第一次派上用场。几个月前,里卡多·卡萨塔正在开发区块链上的公证服务,需要制作时间戳;彼特·陶德和另外三个人也在开发类似的东西。在米兰形成一个团队、集体头脑风暴之后,彼特·陶德开发的 opentimestamps 被选中作为首屈一指的协议。

- 米兰的 Blockchainlab 办公室里的头脑风暴,由比萨驱动(感谢 OpenAI) -

回到闪电网络,所有的参与者最终形成了一套协议,名为 米兰协议;不过,两天以后,名字就改了,叫做 BOLT(闪电网络技术基础)。

2016 年 11 月,Bitcoin Core 0.13.1 版本分三步,包含了隔离见证的代码以及可以让软分叉激活的表态机制(矿工可在区块内特定位置表示 “我们已经准备好了”)。软件马上进入了生产环境,但激活时间是在几个月之后,并且要求在此期间内形成 95% 以上的同意。

大酱缸:Bitcoin Unlimited

2017 年 1 月 30 日,运行 Bitcoin Unlimited 的矿工挖出了一个大于 1MB 的区块,该区块立即成了一个孤儿块。

2017 年 3 月 12 日,Shaolin Fry(少林炒饭)(虚构身份)提出了 BIP148 - Mandatory activation of segwit deployment(强制激活隔离见证) ,本质上就是一个要求矿工在特定日期前表示接受隔离见证的 Bitcoin Core 软件;要是矿工不这么做,不包含支持信号的区块就会被运行这种客户端的节点认为是无效区块、抛弃掉。这个提议非常具有进攻性,因为它不仅要求矿工接受隔离见证,还需要明确表态支持,不然就有颗粒无收的风险。大部分 Bitcoin Core 开发者都反对 BIP 148,但卢克·达实表示支持,他说:用户制定规则,矿工必须接受,不然就要承担区块被拒绝的风险。因此,一场运动形成了,他们声称像 Bitcoin Core 一样不支持 BIP 148 的只是少数人。反对者则辩称,虽然隔离见证是一个好方案,而且工作情况良好,但不应该鲁莽,因为这样做可能破坏网络内部的共识。

2017 年 3 月 15 日,Bitcoin Unlimited 客户端上发生了一件怪事。这种小众的比特币客户端添加了许多新技术,其中一种存在 bug,它会一次性拉取网络中的所有节点的数据。在 Slack 频道里,吴忌寒和嘉文·安德烈森两人都表示,可以通过制造空区块来反击 Bitcoin Core。他们的想法是:因为这是一个 bug,而且这个 bug 让所有人都宕机了,那么一定是有人有心利用;一定是来自 Bitcoin Core 的坏人,应该给他们点颜色瞧瞧。

比特大陆(吴忌寒的公司)在一个聊天频道中表示大约 1 亿美元将被投放到空区块生产和攻击比特币网络上(没有书面证据)。他们计划让比特币网络死掉,只剩下 Bitcoin Unlimited。

两天后,全世界最大的密码货币交易所(除了 Coinbase)发出了一封给 Bitcoin Unlimited 的联名信,他们说:

如果 Bitcoin Unlimited 不添加重放攻击保护(rely protection),他们不会提供分叉币的交易服务(译者注:如果你分裂了网络,那就会出现两条区块链,因为它们的相似性,在一条链上有效的交易,在另一条链上可能也有效,因此,其他人可以把你在一条链上的交易广播到另一个网络中、造成执行;例如,你在交易所中取出了一些比特币,你可以把同一笔交易放到另一条链 —— 暂命名为 “bitcoin cash” —— 上,从而获得一些 bitcoin cash;重放攻击保护就是在解决这个问题)

修复重放攻击问题等同于宣布 Bitcoin Unlimited 不再是(不再服务于)比特币,而是一种山寨币。

(译者注:作者没有说,但从这里的描述可见,Bitcoin Unlimited 已经开始计划硬分叉比特币了:形成一个共识规则与比特币网络不兼容、原有的比特币节点无法在其中运行的网络;这样做也会形成另一条区块链、另一种密码货币;只不过,它会跟原有的比特币网络有一段相同的历史。)

幸运之神非常照顾我们,3 月 18 日,更大的打击来临:Bitfinex 交易所推出了分叉期货:你现在存入一个比特币,就可以获得交易所的两份期货,一份是 core 版本的比特币期货,另一份是 unlimited 版本的比特币期货。他们放开了交易,而且,一开始的时候,unlimited 币期货的价格比 core 币期货高出 20%,后来稳定在后者的大约 3%。这些期货清楚地表明,要拿真金白银选择其中之一的时候,97% 的资金会放在比特币而不是 Bitcoin Unlimited 上。

4 月 5 日,又一个打击来临。格里高利·麦克斯韦尔发表了题为 隐形 AsicBoost 的文章。大意是说,在使用 SHA256 哈希算法时,它不是对整个文件操作的,它会先把文件分成许多片段,然后哈希每一个小块;而在哈希区块头时,需要把区块头分成 两个片段。在你想要改变区块头的哈希值的时候,你不必使用两个新片段,你可以按住第一个片段不变,仅仅改变第二个片段,这样可以节约每一次哈希运算的时间。有两种办法可以做到,一种办法是使用区块头中的信号位(signalling bits)字段作为熵源(这将暴露你在使用 AsicBoost 技术);另一种办法是(格里高利发现),按特定的顺序排列区块内的比特币交易,可以隐藏你在使用 AsicBoost 的事实。他也意识到:

用硬分叉实现隔离见证,不会影响这样使用 AsicBoost;

但如果以软分叉实现隔离见证,就不可能这样 “悄悄地” 使用 AsicBoost。

然后,格里高利·麦克斯韦尔拿到了比特大陆的 ASIC 使用的 FPGA 固件,发现所有矿机都有一个隐形的优化:使用隐形 AsicBoost。比特大陆在生产中有竞争优势,这就是为什么吴忌寒非常希望隔离见证是一个硬分叉。骗局穿帮。随后格里高利·麦克斯韦尔又发现了另一个骗局,他称为 antbleed:只要比特大陆愿意,它可以通过互联网发送一个信号,远程关闭比特大陆卖出的所有 ASIC。

4 月6 日发生了另外两件事:

Samson Mow(缪永权)加入了 Blockstream(大区块主义者眼中的一个大反派加入了另一群大反派)

闪电网络的创造者之一约瑟夫·潘反对隔离见证并提出了一种叫做 扩展区块 的替代方案,这种方案也是软分叉,但跟隔离见证不同,它也让吴忌寒满意。后来人们发现,扩展区块不会打破比特大陆的隐形 ASICBoost 算法。

约瑟夫·潘后来离开了比特币,转而在以太坊上开发。比特币社区因此发现,有一个 Slack 秘密频道 Dragon'S Den,喜欢在互联网上攻击别人,是由缪永权领导的。约瑟夫·潘认为自己是受害者。

纽约协定和 Bitcoin Cash

2017 年 5 月 22 日,Consensus(共识)大会(就是嘉文被巴特林嘲笑的那个会议)的另一次会议举行;在会议上,组织者 Coindesk 宣布他们已经解决了可扩展性争议。他们宣布,他们已经让所有的比特币大公司形成了合意:接受硬分叉形式的光欸见证。这个一致意见被称为 “[纽约协定](https://en.bitcoinwiki.org/wiki/New_York_Agreement#:~:text=The agreement intended to put,then doubling the block size)”。在接下来的两天里,大约 50 个创业公司似乎表示支持这个决定,其中包括 Blockstream、Lightning Labs 这样的公司。荒谬的是,这其中有一些纯粹小区块主义的公司;实际上,这样的公司多到许多人公开否认这条新闻,因为他们从未签名,也没有接受这样的共识。不久之后真相大白,一个 Coindesk 的员工没有询问任何人就直接通报这些创业公司的会员身份。50 个公司中大概有 20 个是错的,他们根本没有同意纽约协定。

既是开发者也是矿工的 James Hilliard(詹姆斯·西利亚德)通过 BIP 91 – Reduced threshold Segwit MASF(减低强制激活隔离见证的门槛)给所有支持隔离见证硬分叉的人喊话:“你也想要隔离见证,我也想要隔离见证。是用(吴忌寒不喜欢的)软分叉来实现,还是用硬分叉实现、让它通过,这就是争议的核心。”

从 2017 年 3 月 22 日到 6 月 5 日,争论四处发生,但隐形 AsicBoost 的发现,在公共舆论中扮演了重要的角色;甚至一些原本的大区块主义者,也开始动摇了。

大约是 6 月 20 日,Unicode 联盟在其字符集中引入了比特币的图标。

7 月 21 日,BIP91 通过,真正的 “锁定” 到来。吴忌寒发表了一篇回应文章,他声称大错已经铸成,现在的路线并非共识;还表示,他们将执行一次用户激活的硬分叉(UAHF)。吴忌寒预告的就是 Bitcoin Cash,将在 8 月 1 日从比特币中分叉出来。Bitcoin Cash 链将拥有更大的区块,而且不会包含隔离见证。

9 月 9 日,另一场新的大会 Breaking Bitcoin 举行。至少,他们不再讨论可扩展性,转而讨论 “如何打破比特币” 以及所有可能的攻击和安全问题了:

视频:https://youtu.be/R2Ohxdwtp80

在这次大会的舞台上,一些矿工被问及会不会支持 2x 分叉,BitFury 的 Alex Petrov(艾力克斯·佩德洛夫)回答:不会;在我签名纽约协定的时候,我的意思是,如果有这样的共识,那我们会执行硬分叉;很显然,如果没有共识,我们永远也不会挖掘 2 MB 的区块(配合见证程序的折扣,总体积可以高达 8 MB)。(译者注:这里的 “2x 分叉” 指的应该是上文所说的 “纽约协定” —— 以硬分叉激活的隔离见证;该方案也包含了将区块体积上限提高到 2 MB 的内容;被人称为 “Segwit2x”。)

在 Breaking Bitcoin 会议后,许多其他人(比如 RootStock 和 Xapo)也确认了佩德洛夫的这种表述。但依然有一些公司(他们支持纽约协定),比如 Coinbase 和 BitPay,发了邮件提醒自己的用户要下载新版本的软件,不然会被切断跟网络的连接。这是一个鲁莽的举动;在正式发布以前,这个软件就被人发现有漏洞,会导致运行这个软件的网络从第一天开始就崩溃(这个软件很快就被人放弃了)。除此之外,这个软件还包含了两种奇怪的机制:

将一些地址加入了黑名单;

取消了 boostrap 节点,优先连接这些企业的节点(嗯哼)。

需要这些节点,是因为 Bitcoin Core 在第一次启动时不知道到哪里寻找其它节点,所以它会使用硬编码在软件内的初始化节点(有 6 个);这 6 个节点来自几位德高望重的开发者,从这 6 个节点处获得数据之后,Bitcoin Core 就能建立起跟其它对等节点的连接、找到点对点网络的合适入口。

在 BitPay 发出邮件、邀请用户为了安全理由(没有任何解释)下载新版本的软件时,法国开发者 Nicolas Dorier(尼古拉斯·多里亚)说:

“太过分了,我对你的信任已经破产了。我要把你们扫进历史的垃圾堆。”

—— 尼古拉斯·多里亚

经历了一番疯狂的 C# 语言编程,几天以后,尼古拉斯发布了 BTCPay Server,一个没有 BitPay 公司的 BitPay 软件,开源、免费下载。

2017 年 11 月 8 日,区块体积大战落下帷幕。

(未完)

比特币的过去、现在和未来(五):比特币的现状(1)

本文为《比特币的过去、现在和未来》译本的第五篇。前一篇见此处。

协议的现状

屋漏偏逢连夜雨

在摧毁了叫做 “纽约协定(New York Agreement)” 的群氓之后,人们意识到,比特币是不可驯服的。即使 80% 的哈希率、最大的报纸、最大的 ASIC 制造商、最大的交易所和开发者多数,一起参与一个最大的比特币会议,想要控制比特币也只能垮台。没错,比特币是不屈不挠的。欣喜之情洋溢四方。

但是,这种欣喜,很快被两个负面事件(以及有歧义的第三件事)给浇灭了:

2017 年 11 月 14 日,Baltic Honeybadger 大会开幕的几天前,一位 Bitcoin Cash 程序员在 Bitcoin Core 的代码中发现了一个通胀 bug,他声称这个漏洞如被利用,可以导致另一次不受控制的通胀,就像比特币早期的那次一样(逼得中本聪不得不执行一次软分叉)。

这个 bug 是由 Matt Corallo(马特·科拉罗)通过更新加入到代码中的。简单来说,节点会先检查一笔交易时有效的 —— 检查脚本有效、签名有效、没有制造通胀 —— 然后再放到交易池中;新区块到达时也会执行这样的检查;所以,有两次检查,交易池检查和区块检查。

马特在一系列的优化中删掉了其中一次检查,然后连续两次检查之间的交互就会创造这个很难利用、但并非绝不可能利用的漏洞,产生了不受限制的通胀风险。跟中本聪的 bug 的区别在于,中本聪的 bug 本来就存在,而这个是后来产生的,所以很多人都很困惑,因为这意味着:

Bitcoin Core 的开发者们,虽然能够嘲笑 “叛教者” Gavin(嘉文)、Gzrzik(贾兹克),等等、揭穿 Bitcoin Unlimited 客户端的漏洞、纽约共识的漏洞,但也不是绝对正确的;

一种社会风气已经形成,有些人提交的代码没有得到任何人的评审,因为他们被认为不可能犯错;

这个发现并不来自 Bitcoin Core 开发者自己,而是来自 Bitcoin Cash 的开发者。

Steam(一个正版游戏分发平台)最终放弃了支持比特币支付,虽然他们此前已经支持比特币大约 1 年了。在博客文章中宣布此事时,他们提到的理由有:

比特币的价格汇率波动太大;

链上的手续费太高(但我必须说一句,这是因为网络中都是空区块,所以交易池非常堵;谢谢你吴忌寒)。

12 月 9 日,由芝加哥期权交易所授权的第一份比特币期货合约推出并正常化。在这些期货合约执行前不久,比特币兑法币的汇率在 12 月 17 日达到了历史新高:19783 美元。

快进到 2022 年:本轮市场波动的低点低于历史高点,因此许多人都很恐慌。但打开 bitcoinvgold 网站,并使用 Jameson Lopp 的工具,我们会发现,实际上比特币在 2017 年的购买力是被高估了的。

天才想法:taproot

2018 年在行情下跌中开始,但在 1 月 22 日,Gregory Maxwell(格里高利·麦克斯韦尔)提出了一个非常有趣的想法。对协议层的改变总是会讨论很长事件,但两个特性是被讨论得最多的:

Schnorr 签名:如本文第一章(译本第一篇)所说的,这种签名的最显著的优点是,你可以加总 Alice 的公钥和 Bob 的公钥、产生一个新公钥;在签名时,两人分别签名,最后却可以得出一个签名,且这个签名正是那个新公钥的有效签名。实质上就像一种链下的 multisig;

MAST(Merkelized Abstract Syntax Trees,默克尔抽象语法树):利用一棵默克尔树来表达一笔交易的所有花费条件。只有实际上用到的花费条件才会曝光,所以交易的体积可以更小、效率可以更高。此外,MAST 还可以创建仅在特定条件下才能执行的合约,可以让交易变得更加灵活和强大。2018 年 1 月的时候,这个想法有两种 BIP:BIP 114 – Merkelized Abstract Syntax Tree 和 BIP 117 – Tail Call Execution Semantics ;它们之间是互不兼容的,所以要选就只能选其中一个。

格里高利想出了一个绝妙的主义:

“我们不必把脚本的默克尔树根作为输出放在时间链上,可以放一个 Schnorr 公钥上去,因为,几乎每一种合约,都有一种退化情形(最明显的情形),就是所有参与者都同意的那个。我们可以在比特币上实现一种标准合约,其公钥是所有参与者的公钥之和,因此,如果所有参与者形成了一致意见,都签名了,他们的签名就可以加总起来,形成一个签名,直接花费合约中的资金而不必诉诸合约的代码。此外,这个公钥又是通过乘以默克尔根,微调过的。所以,如果参与者之间有争议,他们可以选出需要执行的合约代码分支、通过默克尔分支揭示默克尔树的结构,然后展示这个树根是如何包含在调账后的公钥中的。”

—— 格里高利·麦克斯韦尔

格里高利采用了 Schnorr 签名的提议和两种 MAST 提议,将两者融合在了一起,形成了他称为 taproot 的想法。

同样在 2018 年 1 月,Stripe 放弃了对比特币的支持,因为 Steam 已经放弃了。隔离见证已经进入了生产环境,闪电网络也在蓬勃发展,但依然非常小众,还没有触及主流。

2018 年 3 月 23 日,一个重要的非技术事件发生了。在此之前,最著名的比特币书籍毫无疑问是 Andreas M. Antonopoulos(安德鲁斯·M·安东波罗斯)所著的《精通比特币》。这时候,Saifedean Ammous(赛费迪安·阿莫斯)所著的《比特币本位》出版了,而且很快便进入了大众,因为它不仅影响了比特币人,还显著影响许多不了解比特币技术、纯粹从经济视角看待它的人。

这本书被 Michael Saylor(迈克尔·塞勒)和 Jack Dorsey(杰克·多洛希)引为给他们启蒙的东西之一。

Drivechain 和 “后比特币神教”

2018 年 3 月 31 日,Blockchainlab 关门大吉了;但是,4 月 7 日,Paul Sztorc(保罗·斯托克)的博客 truthcoin 上发表的一篇文章引发了一个新的现象。保罗本来想在比特币上创建一种预测市场,但是比特币缺失了一些功能。保罗没有提出引入这些功能的提议,转而成了侧链技术最大的支持者之一。但是,他发现,比特币上的侧链即使以特定的形式(免信任的想法)开始,最终也会走向信任模式。

保罗不喜欢这种模式,他提出了 drivechain 的概念,本质上,就是让矿工可以对一条侧链的历史投票,这样节点就不必自己验证这些历史,但需要信任矿工中的多数。这是一种完全不同的信任模式,而且将大量的权力交到了矿工手上;而且,因为矿工在隔离见证的故事中表现得好像敌人一样,所以,人们对信任矿工来运行去中心化系统的核心想法产生了怀疑。许多人因此拒绝 drivechain 的想法,认为这实在太过危险。保罗也将自己的提议视作区块体积争论的解决方案,因为主链保持小区块的同时,各 drivechain 上可以使用大区块;但这也没有被人们接受,因为它要求人们非常信任矿工。

保罗还写过一篇关于工作量证明的,非常精彩:Nothing is Cheaper than Proof of Work(中文译本)

4 月 7 日,保罗发表了这篇文章《Bitcoin Post-Maximalism》,开创了一种趋势。虽然早在 2014 年,就出现了以前的比特币人憎恨比特币的情形,因为他们原来用比特币赚了很多钱,但又在市场下跌中损失惨重。但在这篇文章中,保罗提出了 “后比特币神教” 和 “反-比特币神教” 的概念:这是一种文化反应,当垃圾币的世界陷入灾难时,这些人就开始指责警告了垃圾币未来会崩溃的比特币神教教徒。尤其是 ICO 的崩溃,保罗说市场崩溃并不是因为有人创建了不可持续的泡沫并且每个人都在其中投机,而是因为神教教徒阻止了 drivechain 技术,要是有 drivechain,市场就不会崩溃。所以,他宣布自己不再是个神教教徒了。

后来至少有 11 次这样的浪潮。

eltoo、RGB、闪电火炬、CoinJoin 战争和黑名单

4 月 30 日,Christian Decker(克里斯蒂安·德克尔)、Rusty Russell(洛斯蒂·拉塞尔) 和 Olaoluwa Osuntokun(奥罗卢瓦·奥森托昆)又带来了一项技术创新:“eltoo”。eltoo 是德克尔在几年前构思的想法,非常类似于 Thaddeus Dryja(撒迪厄斯·锥亚)和 Joseph Poon(约瑟夫·潘)的闪电网络。eltoo 是另一种实现闪电网络的方式,而且更简单、备份数据的风险更低,支持多方通道,以及其它微小的优势。想法很棒,但需要在比特币链上作一个改动才能让它跑起来,这就是 BIP 118 – SIGHASH_ANYPREVOUT 。简单来说,在创建一笔比特币交易的时候,你需要为交易的每一个输入提供(该项资金所有者的)签名。一般来说,只有当前这个输入会被签名,以前的输入、未来的输入都不能使用这个签名;也就是说,如果这个输入被移到另一笔交易中,你所创建的签名就失效了 —— 这是为了保证输入只能按其主人的意愿被花费。

SIGHASH_ANYPREVOUT 则是这样一种签名选项,它允许签过名的输入可以放到未来的任何交易中,不论这个输出是否已经被移动过。This allows signatories to retain control over how their funds are spent even if the input is moved to different transactions(此句不可解)。

这个想法获得了大量好评,但依然停留在概念阶段,克里斯蒂安不想太过急切地推行它。

2018 年 7 月 3 日,Zucco(祖科)在里斯本演讲了 RGB 协议,分享了文档和 RGB 背后的想法。从这里开始,RGB 的想法将由 Maxim Orlovsky(马克西姆·奥尔洛夫斯基)带领的一队乌克兰年轻人带着继续前进;后来 Federico Tenga(费德里科·腾戈)加入了,并推出了第一款 RGB 钱包(Iris Wallet),在 2022 年 10 月发布。

2019 年末1 月,一位匿名的推特用户 Hodlonaut 提出了建立一个叫做 闪电火炬 的闪电中继网络的想法:他发了一条推特,表示他会给第一个回复他这条推特的人支付 10 万聪(satoshi,比特币的最小单位),只要留下闪电网络发票即可;但这个人必须发一条同样形式的推特,并加码 1 万聪,也就是给下一个最快回复的人支付 11 万聪,以此类推;他想看看闪电网络能让这个实验进行到什么程度。在实验断掉、又经 Elizabech Stark(伊丽莎白·斯塔克)和 Jack Dorsey(杰克·多洛西)重启之后,这个实验变得宏大起来,而且不止于此:在 Bitcoin Magazine 因为担心法律后果而拒绝接受邀请之后,这笔钱通过一个苏格兰人流入了伊朗,因此违反了美国的管制。这支火炬变得非常著名,而且骗子也蜂拥而至:一个著名案例是,当火炬传到祖科手上时,一位名为 “比特币巫师” 的用户留下了一条闪电发票;得到支付后,这个人就带着资金完全消失了(那确实是一个创建不久的账号,但也有很多交互,而且有一些名人是其粉丝)。这时候,祖科自己拿出了同样数额的钱,重启了火炬传递;当火炬达到了一个可观的数额之后,它被发给了 Bitcoin Venezuela,一个致力于帮助受到恶性通胀和独裁统治折磨的委内瑞拉人的志愿者协会。

比特币的过去、现在和未来(五):比特币的现状(2)

4 月 12 日,另一件大事发生了:We are Hodlonauts(我们都是 Hodlonauts)。Hodlonaut 因为闪电火炬而变得非常著名,他在推特上的粉丝数量超过了 1 万,然后,他开始使用自己的影响力警告人们 Craig Wright(克雷格·怀特)的可疑,因此,他收到了克雷格·怀特的威胁信。他是匿名的,但 Calvin Ayre(卡尔文·艾尔)(克雷格·怀特背后的金主)在产出的出版物 CoinKeeg 中悬赏 5000 美金(以 BSV 支付)揭开 Hodlonaut 的真实身份(BSV 是一种分叉自 Bitcoin Cash 的垃圾币,译者注 )。有人获知 Hodlonaut 可能住在奥斯陆,于是就给 Hodlonaut 的雇主打电话,假装成挪威警察,要调查这个推特账户。这位雇主真的相信了他是一名警察,因此公开了 Hodlonaut 的全名和地址;然后,克雷格的起诉书就送到了 Hodlonaut 的家里,起诉理由是诽谤。

这件事引发了一场壮观的运动:每个人都在自己的个人简介页添加了 Hodlonaut 的图片,并把卡通人物的头都放进 Hodlonaut 的头盔里面。

- 推特上充斥着给 Hodlonaut 的声援 -

克雷格·怀特诉 Hodlonaut 案在 2022 年 10 月结案,Hodlonaut 胜诉。

视频:https://youtu.be/KniTdm-qKpY

2022 年 12 月 23 日,Hodlonaut 在推特上披露克雷格已经请求上诉(并且已被接受):

“我刚刚知道挪威法庭接受了克雷格的上诉。我将不得不重头再来一遍。我当然不会认输。”

—— hodlonaut 13%er 🌮⚡🔑 🐝 (@hodlonaut)

2019 年 5 月 1 日,Nicolas Dorier(尼古拉斯·多里亚)提出了 BIP 78 – A Simple Payjoin Proposal(简单的双向支付提议) ;Payjoin 是一种类型的 Coinjoin(多人为同一笔交易添加输入),只不过在执行 Coinjoin 的同时你也完成了一笔支付。具体来说,Payjoin 交易有两个输入,一个来自支付方,一个来自接收方。也就是说,资金不是由支付方直接发给接收方的,而是(相当于)双方都把资金给了某个 “中间” 地址,然后双方再各自把资金从 “中间地址”(混合过的资金)中取出。这样一来,外部的观察者就不知道谁是发送者,谁是接收者了,因为他们的资金混合过了。

几天以后,2019 年 5 月 8 日,第一个可能成真(因此让人担忧)的为了保护私人利益而回滚比特币的提议出现了。具体来说,币安交易所被黑了,其 CEO 赵长鹏宣布他会给矿工付钱,让发生盗窃的链变成孤儿链;他希望拿回这些资金,并说服矿工挖掘另一条链。这没有给比特币链制造无效的状态,产生重组也没有违反规则;但仅仅是为了挽回币安的安全性问题所造成的损失就发动重组,也是非常有争议的。最后,重组并没有发生。

- “资金是安全的!” -

再说回链上隐私。8 月 2 日,CoinJoin 实现之间的战争开始了。CoinJoin 就是多方为同一笔交易提供输入;一开始,中本聪在他的白皮书里说,当一笔交易有多个输入时,很明显这些输入都属于同一个人,这是链上隐私的局限性 —— 有些线索必然暴露;但实际上,几年以后,格里高利·麦克斯韦尔在 bitcointalk 论坛上写了一篇帖子,指出交易的输入并不必然来自同一个人。你需要做的只是实现一个足够好的钱包(让多个人为同一笔交易提供输入)。格里高利,theymos(德默斯)和其他人提供了 15 BTC 作为奖金,悬赏开发这样的钱包,但这个原型迟迟没有出现,直到 nopara 推出了 zerolink,它采用了 David Chaum(大卫·乔姆)最初的 e-cash 的理念,并放在 CoinJoin 的语境中,从而让协调员失明;就像在 e-cash 中,协调员靠着盲签名,在不知道自己签名了什么东西的情况下防止了重复花费,CoinJoin 的协调员也失明了。CoinJoin 在 Wasabi 钱包、Whirpool 钱包和 Samorai 钱包中都实现了。

8 月 2 日,Dojo 推出,这是一种 Bitcoin Core 的从属应用,跟 Bitcoin Core 一起运行,用来跟 Samourai 钱包 沟通。Dojo 是必要的,因为在此之前,在使用 Samourai 和 Whirpool 之时,CoinJoin 期间的服务器是通过大卫·乔姆密码学致盲的,但 Samorai 是一种手机钱包,而且所有的公钥都需要进入和退出 Coinjoin。这种批评因为 Dojo 的推出而部分得到缓解,因为,如果少数用户使用了 Dojo,而许多用户 “正常” 使用 Samourai,结果就是,如果一个使用 Dojo 的人跟许多使用 Samourai 的人进入了一笔 CoinJoin 交易,那么你的公钥是哪个将一目了然,因为只有你的哪一个是不可追踪的,别人的都是可以追踪的。

这件事具有历史意义,因为随着 Dojo 的推出,Luke Dashjr(卢克·达实)和格里高利·麦克斯韦尔的批评开始了,他们警告这个实现不好,建议不要使用。其他许多开发者加入了进来,随之而来的是一场没有边际的、无关技术的 文化/道德 战争。

2019 年 12 月 3 日,Bitfinex 成为第一个集成闪电网络的交易所。

2019 年 12 月 12 日,第一种 “第二代” 闪电钱包 Phoenix 发布,这种实验性的钱包的理念是这样的:“当每个人都在使用比特币、小额资金无法在链上结算(也就是普通支付将使用 Layer2 或其它形式的链下技术)时,你使用一个复杂的、要分别管理链上和链下两种余额的钱包,有什么意义?”

因此,分别展示两种余额(链上的、所有闪电通道中的)也没有意义。但也不是要展示每一条通道的余额,只是抽象地表示出来。就像在浏览网页时,我们不会想要看到每一个 TCP 连接,如果真的需要,我们会手动打开浏览器的高级选项,但在日常使用中,浏览器作了一次抽象,来隐藏这些复杂性。

这种简洁性意味着许多的妥协和取舍:

从隐私的角度看,如果你在使用 Phoenix 时不使用洋葱网络,那么别人可以看到你的 IP 地址,并观察你的所有公开通道;

当某人通过链上交易(潜水艇互换)给我支付时,代价可能很高;

它可以出借流动性给你,但价格非常高。

2019 年 12 月 27 日,Facebook 公司推出的密码货币实验 Libra 以失败、关门告终。各种各样的记者找上最著名的比特币人,要求他们评论此事:他们直接以早期的 PayPal 和 Linden Dollar 的例子回应。

2020 年 1 月 6 日,一个将在 2022 年变成一场大戏的提议出现了:Jeremy Rubin 的 BIP 119 - CHECKTEMPLATEVERIFY,但在当时,它乏人问津。这是一种 限制条款(covenant):在当前的比特币上,如果我可以花一笔钱,我就可以把它发到任何地方去。我创建一个满足花费条件的脚本,它会放在输入里面,然后这个输出就被花费掉了;此时我创建一个输入,使用完全不同的花费条件 —— 我先满足 A 条件,然后才能创造 B 条件。花费条件 B 无法做到:只有你创建的输出(条件 C)满足某一些条件时,你才能满足我这个花费条件。你是做不到让一笔资金只有在交易的输出满足预定义的条件时才能花费的。(而限制条款就是开启这种特性的技术。)

2020 年 1 月 19 日,Pieter Wuille(皮耶特·乌勒)、Jonas Nick(乔纳斯·尼克)和 Anthony Towns(安东尼·唐斯)提出了 BIP 341 – Taproot: SegWit version 1 spending rules 。两个月后,3 月 16 日,新型冠状病毒 COVID-19 大流行爆发,封锁和隔离也开始了,经济活动面临普遍衰退,连比特币也大跌了。

5 月 11 日,在半个地球处在封锁管制之中的时候,比特币增发速度的第三次减半到来。6 月 9 号,又出现了一场闹剧,是关于 “blacklist(黑名单)” 的。比特币软件可以按照 IP 屏蔽滥发消息的、不值得信任的或者经常搞破坏的对等节点。实际上,这就是我们说的 “黑名单”,但在美国文化中,从 2020 年开始,就有一种攻击软件项目的风气,说 “blacklist”、“whitelist(白名单)”、“Master(常被用作软件开发的主分支的命名)” 这样的词语会让人联想到奴隶制,因此应该使用别的词语。2020 年 6 月 9 日,一个路人用户(没有别的贡献)在 Bitcoin Core 代码库里发起了一项 Pull Request,要把 blacklist 这个种族主义用词替换成 blocklist。除了是一个有点搞笑的事件,它也是一个技术问题,因为在比特币软件中,这个词的含义是非常模糊的。这个 PR 被 Marco Falke(马尔科·法尔克)不经讨论立即投入了生产环境中,因为他希望避免 “混乱”,而且显然如果他拒绝这个 PR,就会吸引那些指控他是种族主义者的人。所以,他出于自己的意愿,就把这个 PR 合并到了生产环境中。Bitcoin Core 在生产环境中合并了一个荒谬的请求,这激怒了许多开发者,他们指出 Bitcoin Core 不是过家家,不是人们搞政治宣传的地方,它是一个至关重要的软件,你不能不经过社区的同意就把一个请求合并到生产环境中。状况升级到 John Newbery(约翰·纽伯瑞)不仅开始为这个举动辩护(“为了包容性”),甚至拉黑了一位曾经给 BTCPay Server 代码库提交代码的贡献者。这个影响是非常负面的,而且引发了一个持续至今的问题。开发者的角色改变了,而且一直在变化:在区块体积大战中,开发者是 “守土英雄”;但如今我们可以看到,同样一些人,难以对抗开始影响社会的民粹主义(populusmo) 。新一波的开发者屈服于这种清教徒式的傲慢,而且被赶出项目的恐惧变得越来越强烈,尽管这样的事情明明跟管理代码和创建软件的能力没什么关系。这跟 90 年代和 20 世纪初期的文化形成了鲜明的反差,那是一个 “别烦我(no bullshit)” 的年代,穿着奇装异服、放肆无礼和玩世不恭才是常态。

Richard Stallman(理查德·斯托曼)被逐出了他自己创建的基金会 —— Free Software Foundation(自由软件基金会,FSF),因为他的一些言论和行为被认为不合适、对软件自由事业有害。具体来说,斯托曼被指控发表性别歧视言论以及提议对遭到性侵的受害者采取不当行为。FSF 决定开除他的主席职位,以保护组织的体面、确保他推动软件自由事业的努力不会因为不当言行而被破坏。

- “自由是指言论自由,不是指免费啤酒。” -

2020 年 9 月 3 日,由芝加哥期货开启的金融化浪潮仍在持续。11 月 30 日,比特币的法币汇率突破前高;对美元的汇率突破了 19850,因此我们正式进入了牛市。

(未完)

比特币的过去、现在和未来(六):现在与未来

本文为《比特币的过去、现在和未来》译本的最后一篇。前篇见此处。

现在与未来

Taproot 锁定以及二氧化碳寓言

终于讲到现在了。出于便利,我们就从 2021 年开始。

2021 年初,Elon Musk(伊隆·马斯克)这个小可爱就宣布从 2 月 8 号开始,特斯拉公司将储备一些比特币;这是在封锁结束之后的宏观局势中,对美元和其它法币表达的不信任。到 3 月 24 日,特斯拉公司直接接受了比特币作为支付手段。

马斯克依赖于 BTCPay Server,与之建立了良好的或伙伴关系,这也引发了比特币价格的一波上涨。所有这些炒作和权力都在人们意料之外,是基于马斯克这样的名人的态度转变的。名人效应非常让人意外,人们的热情也直冲云霄,全部都是价格上涨的有利条件。

2 月 12 日,一位用户在推特上创建了一个 “#LaserRayUntil100K” 活动,字面意思就是,在比特币的价格到达 10 万美元之前,一直使用带有镭射眼的头像;然后每个人都在推特上使用带有镭射眼的照片。

- Micheal Saylor(迈克尔·塞勒)的镭射眼 -

3 月 6 日,taproot 的激活历程开始了;此前虽然已经有了 BIP 341,但并没有出现任何实际的激活提议。讨论很多,但都不是关于 taproot 本身的,因为不论技术上还是政治上都没有争议(不像隔离见证)。Taproot 对所有人都是好事。真正的辩论时关于如何在生产环境中激活的;人们讨论了两种方向:

BIP 8 – Version bits with lock-in by height(按高度锁定的信号位激活机制):“我们给矿工一些时间,让他们在准备好之后告诉我们;但即使他们没有准备好,我们依然会执行这次软分叉”;

BIP 9 – Version bits with timeout and delay(带有超时和推迟机制的信号位激活):“我们给矿工一些时间,他们在准备好之后就可以告诉我们;如果他们没有准备好,那这次软分叉就算失败”。

分歧带来了一个问题:想要保守一些,BIP 9 方法肯定是更好的,但另一方面,一些向来非常保守的开发者(例如 Luke Dashjr)又坚持,这种 “保守” 方法让矿工可以掀起政治活动,让软分叉的预备机制变成一种政治投票机制。

最终,一种令人难以置信的提议出现了,并且它因为 Bitcoin Core 的开发活动而拥有了巨大的推动力,但实际上所有人都不高兴。这就是叫做 Speedy Trial(速战速决) 的提议,它允许先使用 BIP 9 这样的机制,但不会给矿工一年的时间,最多只会给一个月。也就是说它给出了在尝试、失败之后也许还能再发起 BIP 8 的余地。

“速战速决” 提议出现之后,所有 BIP 8 阵营的人都不满意,因为不论如何它还是给了矿工权力;但保守的 BIP 9 阵营又认为这种激活方式太危险,因为时间窗口非常短。

Bitcoin Core 维护者们的普遍感觉是,就没有什么具体的措施,虽然 taproot 已经被讨论了很久了,但没有人出来做任何事情。然后 “速战速决” 就被部署到了生产环境中,而且还有一个用户可以操作的标签,可以把 “速战速决” 变成 BIP 8,在窗口期结束后就直接激活。

从技术的角度看,每个人都会对 taproot 的到来感到高兴;但从方法的角度看,很多人都感到失望,因为这看起来就跟垃圾币上的情况一样:开发者觉得某个东西足够好了,其他人就必须接受。

6 月 12 日,Taproot 正式进入了生产环境。

2021 年 5 月 5 日,一家上市的矿业公司 Bitcoin Marathon 挖出了一个区块,并在其 coinbase 交易中写道 “这是一条 OFAC 合规的区块链”(OFAC 是一个金融特别工作组,工作内容是在全球市场中消灭被认为 “有害和肮脏” 的交易以及任何妨碍政治制度的东西)。我们不知道一条区块链变成 “OFAC 合规的” 是什么意思,但一边倒的抗议马上就爆发了,比特币人开始制作 CoinJoin 交易、让居住在伊朗的朋友将资金转发到 Marathon 的 coinbase 地址里。基本上,Marathon 被混洗过的货币和来自 “不合规地址” 中的 “自由货币” 给淹没了。

5 月 19 日,对那些把一切都押在马斯克身上、把他当成比特币吉祥物的人来说,灾难降临了;特斯拉公司宣称:

“我们做错了。我们发现比特币会产生二氧化碳,并导致全球变暖,因此我们不再接受比特币了。”

—— 特斯拉

显然,这种说法没有任何道理,他们还提出了每一笔比特币交易的能源消耗量:这个指标没有任何道理,因为比特币交易不消耗能量,最多你只能以区块为单位,估计挖矿所消耗的能量,但进一步推导到每一笔交易的能量消耗就没有任何意义。不然你要干什么?因为特斯拉的电车要耗电,就让特斯拉关门吗?

特斯拉的声明是完全错的,但奇怪的是,特斯拉公司并没有卖出自己储备的比特币,只是不再接受比特币支付而已。关于这样做的动机,人们有几种猜想。最流行的一种(没有证据,只是联想)是,一些人提到,自特斯拉在 2 月 8 日宣布接受比特币支付依赖,许多人都用比特币购买了特斯拉,但在美国,如果你出售比特币来换取法币,你需要支付资本利得税,除非你拿去买东西,那就不需要支付资本利得税。所以,许多人通过拿比特币购买特斯拉(免税),再把特斯拉卖成美元,就躲避了资本利得税。

上面的环保注意什么可能进一步掩盖了这种没有证据的猜想。同样的,矿工并不必然会产生二氧化碳,因为挖矿是用电的 …… 然后有人可能会说:“那电力是燃烧化石燃料产生的呀,因此也会释放二氧化碳到大气中。”。那行啊,特斯拉的电池是不产生二氧化碳(目的是为了停止使用内燃机),你的电池不是也要用电吗,电不是也要从什么地方来吗?特斯拉要扮演环保主义者、说比特币不环保,怎么着都让人汗颜。

禁令、战争和限制条款

2021 年 5 月 21 日,另一份禁令在中国下达 —— 从 2014 年以来,中国一直在毫不动摇地封锁比特币。所有矿工都不得不停止在中国大陆挖矿。有趣的事实是,中国境内的哈希率有 30% 是地下的,这是以往的禁令失败的绝佳证据。另一个有趣的事实是,价格并没有因为禁令而改变(再次为马斯克感到尴尬)。

2021 年 5 月 31 日,Marathon 的 CEO Fred Thiel(弗莱德·泰尔)在一段视频中露脸,宣布他们会拥抱比特币社区的原则,根据协议确认一切有效的比特币交易。不会有黑名单,而且他们会支持 taproot。

6 月 5 日,在迈阿密的比特币大会上,Jack Mallers(杰克·迈勒斯)(非常激动地,哭着)宣布萨尔瓦多将接受比特币作为法定货币:

视频:https://youtu.be/_59hrgTiRJU

几天以后,这项法律在萨尔瓦多接受投票,而且发生了一些微妙的事情:萨尔瓦多的总统 Nayib Bukele(纳伊布·布克勒)开设了 一个 twitter space(语音聊天室),跟比特币人平等交谈,而且制作了标准的推特表情包。显然,布克勒这是在自己家里,因为他在聊到一半的时候道歉说自己要去投票了。这项法律得到了大量赞成票,因此通过了:

“所有萨尔瓦多的公民都有义务,在接受支付时接受比特币,只要客户希望以比特币支付”。这在许多人心中产生了矛盾,一方面,比特币能被用于支付当然是好事,但另一方面,如果某个商家不愿意接受比特币,就会遭到警方的强迫,那在伦理上就不是好事了。

如果商家面临技术上的困难因此无法接受比特币,则可免除这种义务;

国家将会为所有商家提供基础设施,让他们可以实时交换比特币和美元,而且不必支付手续费。

这是一种可以容忍的法定货币,因为它不是由国家强加的。9 月 7 号,萨尔瓦多实行比特币法。

- 纳伊布·布克勒的漫画 -

2021 年 11 月,Adopting Bitcoin 大会在萨尔瓦多举行,在此期间,taproot —— 已经在 6 月锁定 —— 激活了。

现在是 2022 年。

2 月 24 日,俄罗斯军队入侵了乌克兰;许多年轻人决定逃离乌克兰;虽然乌克兰被入侵了、不是侵略者,但它毕竟是个民族国家,具备民族国家的所有特点,因此国家立即动员起来,阻止年轻人离开祖国。

许多人认为自己有一些事情比向素未谋面的人开枪更重要,所以依然决定逃离。一个乌克兰人在银行账户和 ATM 被冻结、无法携带现金离开祖国的情况下,拿着比特币成功逃离;他的故事在互联网上传开了。

不仅有人逃离乌克兰,也有人逃离俄罗斯,因为俄罗斯也有一样的全民动员。随着这些故事的传播,比特币回到了聚光灯下,此外,乌克兰政府还发起了一项密码货币募捐(比特币和垃圾币来者不拒)来支援军队,这项募捐活动也非常成功。

4 月 19 日,又发生了一场戏剧。Jeremy Rubin(杰里米·鲁宾)(不是一个特别受欢迎的开发者,曾跟 Mike Hearn 一起提出在比特币中增加黑名单)在两年前提出了著名的 限制条款 技术(可以限制花费交易的输出的花费条件)的一个非常全面的版本:BIP 119 – CHECKTEMPLATEVERIFY。杰里米突然发表了一篇博客文章(用 Gavin Andresen 的口气)宣布,关于 BIP119 的讨论已经太多了,但没有人表明立场。

他转而提议也为这个 BIP 来一次 “速战速决”。在 taproot 升级之后,一些人依然对 “速战速决” 耿耿于怀,因为他们认为,即使是 taproot 这样技术上没有争议的提议,使用这种升级方法也会带来负面效果,会激励每个人都使用速战速决来提议任何东西。

还有一些人因为杰里米曾经提议过黑名单而害怕限制条款,而有些人单纯时不喜欢杰里米,因为他使用了嘉文一样的不可一世的语气,用一篇文章就把所有人打死。当有一些人表示,限制条款是个好东西,但谁会认为它比 CISA(跨输入的签名聚合)、APO(eltoo 背后的技术)更重要?

这似乎变成了一场在推特和各种邮件组中上演的、伴有各种尖锐反应的闹剧。最后,在 5 月 2 日的时候,杰里米发表一篇文章,并在消息中宣布,他会等待社区的共识解决这个问题,等到他等不下去的时候,他会改变想法,为以太坊工作(嗯,你去吧)。

6 月 28 日的时候,另一波反比特币神教浪潮到来,这一次是由 Nic Carter(尼克·卡特)发起的。尼克有一个著名的身份是 Castle Islang Ventures 的联合创始人之一,这家风险资本专注于投资区块链项目。意思是,这家风投公司也投资垃圾币和模棱两可的共识,比如尼克投资了做链上活动分析的,和在以太坊上实现自动化 KYC 的。

不久之后,尼克就会参与一档倾向以太坊的播客,夸奖以太坊的诸多优点和历数比特币人的不是。接下来就出现了四十几篇文章的群舞,主题一模一样,都是比特神教的死亡。这些文章中,最主要的概念就是(用各种各样的方式)把比特神教跟 plan B 提出的 “存量流量比” 价格预测模型联系起来(这个模型预测了 15 万美元的高点;许多神教教徒都同意这个预测)。实际上,许多人都嘲笑基于这种模型的价格预测,因为显然,市场价格是永远不可预测的。不然的话,不就等于天降油炒饭了吗。

在这个长篇故事中,最后一件事情不是关于比特币的,而是一种垃圾币 Tornado Cash,其 创始人/开发者 Alexey Pertsev(阿列克西·佩德采夫)被当局逮捕了。这个事件非常热门,因为首先,最大问题的垃圾币是以太坊,以太坊已经完全被审查了,其 51% 的出块者都表示服从 OFAC 的监管。但最令人震惊的是一位开源软件的开发者被逮捕了,他不像 Ross Ubrich(罗斯·乌布里希)是一个中心化的网站的主管、一位商人;也不像 Assange(阿桑奇)是一个组织的头头,他完全就是个开发者,人们以为他是受到保护的。但事实并不如此,而且,不幸的是,冲突往往都会加剧。

新的技术和固化

CISA(跨输入的签名聚合):我们已经说过,Schnorr 签名优于 ECDSA 的地方在于其可聚合性,即,如果 Alice 和 Bob 用自己的私钥签名了同一条消息,那么这两个签名的和将正好等于 Alice 和 Bob 的公钥之和的签名。这个方式已经存在于 taproot 中,我们可以制作出一个公钥,需要 Alice 和 Bob 两方的签名才能生成该公钥的签名。这种聚合是在单个输入的内部发生的,需要花费一笔这样的资金时,Alice 和 Bob 的签名就要聚合,然后只发布最终聚合而成的签名。

但是,如果也能聚合不同输入的签名,是不是更好呢?

一笔交易的多个签名都是签名的整个交易,为什么我们非得一个一个输入这样验证签名?我们可以将所有输入中的所有公钥的签名汇总成一个签名。这样做的好处很明显:节约时间链上的空间;让基本的 CoinJoin 交易在提高隐私性的同时费用更低(如无 CISA,CoinJoin 的手续费将比普通交易更贵,因为你在链上写入了更多东西,而且必须跟更多人协调;有了 CISA,假设 Alice 要支付一个输入和一个输出的手续费,她要独自支付一个签名的手续费;但 Alice 和 Bob 一起也只需要支付一个签名的手续费,这样签名的手续费就会在两人之间平坦)。

真正的大问题在于,隔离见证是通过给签名数据的手续费打折来实现区块扩大的,所以 CISA 带来的手续费缩减已经很少了(签名数据的手续费本身就只有同体积的交易元数据的 1/4)。CISA 和隔离见证折扣不是好朋友。

解决这个问题的办法之一是取消隔离见证的折扣,并引入 CISA,这样使用 CISA 的 6 个参与者就能获得跟隔离见证一样幅度的手续费减免(至少要有 4 个参与者,因为有一些开销是省不下来的);而且,从架构的角度看,CISA 也比隔离见证折扣要干净清爽很多(隔离见证的折扣实在丑陋)。

但也有开发者反对 CISA 的想法,不过,这是因为他们已经对比特币基本技术的固化做好了准备:

“或迟或早,我们将不得不止步。CISA 确实是个好想法,但我们要走到哪里去呢?CISA 实现之后我们又会找出另一个好想法,但固化对于基础协议来说是必要的。稳定性比优雅更重要。就像 TCP/IP 协议自 1981 年至今的变化一样,只有顶层的协议改变了。”

—— John Carvalho(约翰·卡瓦略)

Simplicity(已经在 Liquid 侧链上部署):这是一种非常高级的比特币通用编程语言,在此基础上你几乎可以做任何你想做的事,包括重构几乎每一种你能想到的软分叉,然后将这种软分叉变成脚本定义的一部分(而不是变成共识规则)。节点在运行一段 Simplicity 脚本之前就可以知道需要投入多少计算资源以及它将耗费多少时间,所以它跟 Script 是显然不同的,因为它非常通用。Simplicity 是 Blockstream 公司创造的,而 Adam Back(亚当·贝克)声称:

“Simplicity 是一种可以带来固化的软分叉,因为一旦它作为软分叉部署了,你就不再需要任何软分叉,所有需要的东西都可以用 Simplicity 复制出来。”

—— 亚当·贝克

APO(ANYPREVOUT):一开始 APO 是由 eltoo 论文提出的,叫做 SIGHASH_NOINPUT,而且有些地方很像限制条款。基本上,它的作用就是让签名可以用来花费输出,但不指定要花费哪个输出,你只需签名并确定可被花费的 UTXO 的脚本需要满足的一些条件即可。这种技术很有趣,它可以支持一种叫做 eltoo 的闪电通道建构方案,比目前在用的方案更优雅,因为不仅备份数据更加简单,而且可以同时跟 N 个人共享通道。APO 是完整的,而且有详细描述了(CISA 还没有)。它缺少的只是推动它的支持者,因为 Christian Decker(克里斯蒂安·德克尔)不想被看成不惜一切代价也要推动一次软分叉的人。

结论

我就在此处停笔了。

后面可能会有适当的更新,但此时我想先谢谢你,谢谢你跟我一起走了这么远的路,这意味你拥有的不只是一点点的耐心。

想给我留言的话,请不要客气,直接在 telegram 找我;或者你也可以在推特上找我!

(完)