联邦钱包三天前还攒着四千多枚比特币,一个软件漏洞让它一夜之间只剩197枚——比特币主链没有停摆一分钟,这次被掏空的从来不是比特币,是一张替它签字的欠条!
最近流传着两种说法。一种说,这是一出侠盗故事:所谓的黑客其实是”白帽”,讲规矩、要挟带条件、事后陆续归还,危机圆满收场,皆大欢喜,比特币安然无恙。另一种说,这不过是加密货币行业又一次安全事故的重演,证明这个行业到今天还是不安全。这两种说法针锋相对,病根却是同一个:两边都以为这次的主角是比特币,可从头到尾,被掏空的从来不是比特币,是一张替它签了字、盖了章、却从没经过它本人过目的欠条。
美东周日(9月6日)夜里,Blockstream运营的比特币联邦侧链Liquid Network出事了。这条侧链的卖点,是给交易所和机构提供比主链更快、更私密的结算,代价是把”安全”这件事,从比特币主链那种成千上万个节点共同验证的分布式计算,压缩进了一小撮”联邦成员”手里的几把密钥——平时没人觉得有什么不同,毕竟多年来这几把密钥配合得心照不宣。出事的那一刻才现出原形:Elements这套底层软件里的一个漏洞,让人不需要偷走任何一把密钥,只靠一个本不该被认定为有效的信号,就能触发系统自己认可的”合法迁出”。这不是撬锁,是找到了一条系统自己没设防的门缝,从门缝里,把钱堂而皇之地”合法”请了出去。
后果是眼看着的:此前那个钱包里攒着四千多枚比特币,几笔操作之后,只剩197枚——接近全部储备的95%,一夜之间蒸发。侧链随即宣布暂停,交易所被叫停L-BTC的存取。而与此同时,比特币主链本身,没有暂停一分钟,没有召开一次紧急会议,该出块还是出块,十分钟一个,谁也叫不停。同一个周末,两条链,一条瘫痪,一条照旧——这就是答案本身。
这才是核心命题:能被一个按钮清空的信任,从来都不是比特币的信任,是比特币的一张欠条。侧链发行的L-BTC,本质上是一句承诺——“你交来的比特币,我们联邦好好锁着,你手里这张凭证,随时能换回一枚真的”。这句承诺平时和真的比特币一模一样,能拿去交易、能拿去结算,没人费心去分辨。可承诺终究是承诺,不是抵押物本身。一把钥匙出了问题,承诺立刻兑不了现;而被承诺指向的那个抵押物——比特币主链——压根不知道自己被人拿去做了担保,自然也不会因为担保出问题而受一点损伤。这不是比特币的信用打了折,是比特币的信用,从一开始就没有被真的搬进那个联邦钱包里,搬进去的只是一句话。
截至今天(9月8日),这句话正在被一点点收回来。对方陆续归还了3400枚,分期打了近九成的欠款,提的条件是Blockstream先把那个漏洞堵上;Blockstream照做了,双方隔着区块链留言谈了两天,像是在公开场合分期偿还一笔赎金。还剩598.5枚压在对方手里,眼下没有下文。这场谈判本身已经说明问题:能被”谈”回来的信任,从一开始靠的就不是密码学的绝对性,是几个人愿不愿意讲信用——这和比特币主链靠数学、靠算力、靠没有任何人能单方面叫停的那套机制,是两种完全不同的东西,一个是网络自己在算账,一个是几个人在商量。
早期,联邦侧链讲的故事听起来天衣无缝:多重签名、成员互相制衡、和主链锚定一比一,安全性看似是从主链”借”过来的,顺理成章。可到了末期,故事收缩成了一件事——只要几把钥匙背后那套软件逻辑出一次漏,借来的安全立刻现出借条的本相,该收回的,一分不会留情面。这不是意外打破了规律,恰恰是规律本身的一部分:任何把分布式计算压缩进少数几个决策点的设计,平时享受的是效率,出事那天,偿还的必然是集中带来的全部代价,一次性,不打折。
归根到底,人在设计系统的时候,总想找一条捷径——把复杂的、成千上万个节点互相校验的东西,简化成几个可控、可协调、可以开会解决问题的委员会。这条捷径能跑得又快又稳,前提是没人低估过那背后压缩掉的复杂度。这次的漏洞不是哪个人存心作恶,是一套自认为管得住全局的软件,遇到了它没设想到的一种输入——想用几把钥匙管住一整套逻辑,本身就是在赌那套逻辑没有盲区,而复杂系统的账,从不会因为设计者的自信而少算一笔。
世上没有比特币的替身,只有比特币自己那条,十分钟一个块、谁也叫不停的主链。
STRIPE 安全支付 · 支持银行卡
订阅全文:$50 年度通行证,一年内解锁全站所有付费文章
想走得近一些:Ko-fi 会员每周多读一篇专享深度文,每月 $3 起 加入会员 →