《比特币开发哲学》:对抗性思考

  • BTCStudy
  • 发布于 3小时前
  • 阅读 18

本文讨论了“对抗性思考”在比特币开发中的重要性,强调要从攻击者的角度思考,识别系统的弱点并采取措施应对潜在威胁。文章分析了比特币的安全假设和安全模式,探讨了普通用户如何通过对抗性思考提升自治能力和去中心化,并讨论了“抵抗公理”,即假设存在能够抵抗国家控制的系统,这是理解比特币开发的基础。

作者:Kalle Rosenbaum & Linnéa Rosenbaum

来源: https://bitcoindevphilosophy.com/#adversarialthinking

前篇见此处

adversarialthinking-banner

本章讨论了 “对抗性思考( adversarial thinking )” ,这种思维方式关注的是哪个环节可能出错、敌手可能会如何行动。我们要从讨论比特币的安全假设和安全模式开始,然后,我们要解释普通用户如何可以提升自己的自治能力和比特币的全节点去中心化 —— 这次是通过对抗性思考的视角。然后,我们要观察对比特币的实际威胁,以及敌手的想法。最后,我们要讨论 “抵抗公理( axion of resistance )”,它可以帮助你理解开发比特币的人的起点。

在讨论各种系统的安全性时,重要的是理解它们的安全假设是什么。在比特币中,一个典型的安全假设是 “离散算法问题是难解的”,简单来说,它的意思是,已知一个公钥,找出其背后的私钥,在实用意义上是不可能的。另一个非常强的安全假设是,网络的哈希算力中的大部分都是诚实的,意思是他们会遵守规则。如果这些假设被证明是错的,那比特币就遇到麻烦了。

在 2015 年,Andrew Poelstra 在香港的 Scaling Bitcoin 大会上作了 演讲,分析了比特币的安全假设。他首先指出,许多系统或多或少都忽视了敌意;比如说,要保护一栋建筑抵御所有类型的敌意事件,是非常困难的。相反,一般来说我们都会接受有一定概率有人会想烧掉房子,然后通过法律强制措施以及其他措施,在一定程度上防范这样的事件,以及其他敌意行为。

但互联网上的事物有些不同:

然而,在互联网上,我们没有这样的措施可用。在假名和匿名系统中,任何人都可能连接到任何人、可能伤害系统。如果可以故意伤害整个系统,那就会有人这么做。我们无法假设这样的人都在明处、都可以抓起来。

—— Andrew Poelstra,《安全假设》,Scaling Bitcoin Hong Kong (2015)

结果是,比特币的所有已知的弱点,都必须在一定程度上妥善处理,不然,它们就会被利用。毕竟,比特币已经成了世界上最大的 “蜜罐”(译者注:“蜜罐” 在安全学上指公开且对敌手有吸引力的目标)。

然后,Poelstra 解释了比特币何以是一种新的系统;它比(举个例子)具有明确安全假设的签名协议更加难以捉摸。

Jemeson Lopp 在自己的个人博客里 深入讨论了这一点

事实上,比特币协议曾经是、现在也依然是,在没有正式定义的规范(或者说安全模式)下打造的。我们最多能做的事情就是研究系统内的行动者的激励因素和行动,以更好地理解和尝试描述它们。

—— Jameson Lopp,《比特币的安全模式:深入研究》(2016)

所以,我们用的这个系统,似乎是能在实际环境中工作的,但我无法正式地证明它是安全的。也许,因为这个系统自身的复杂性,这样的证据是找不到的。

6.1 不仅对比特币专家有用

对抗性思考,不仅对硬核的比特币开发者和专家有用,对普通的比特币用户来说,也是有一些用处的。Ragnar Lifthasir 在一条 长推特 中提到,围绕比特币的过于简单的解读 —— 比如说,“你只要囤币就行” —— 可能会贬低比特币自身;他的结论是:

为了让比特币和我们自身都更加强大,我们需要像给比特币贡献代码的软件工程师那样思考。他们互相审核工作、巨细靡遗地寻找错误。在他们的技术活动中,他们会讨论一项提议可能出现故障的各种情况。他们会对抗性思考,他们是保守主义的。

—— Ragnar Lifthasir,推特(2020)

他把这些过度简化的解读称为偏执。他想说的是,这其中藏着一种危险 —— 你只盯着一个东西,比如说,“只要囤币”,可能就会忽视其它可以说更加重要的东西,比如安全地保管你的比特币,以及尽你所能以免信任方式实用比特币。

6.2 威胁

比特币有许多已知的弱点,而且其中不少还正在被主动理由。要获得一个基本印象,我们可以看看 Bitcoin Wiki 上的 “弱点” 页面。该页面列举了许多的问题,比如钱包盗窃和拒绝服务式攻击。

如果一个攻击者让他所控制的客户端遍布整个网络,那么你的全节点可能连接到的全是该攻击者所控制的节点。虽然比特币从不用节点的统计数据来决定任何事情,但是,将一个节点完全隔绝于诚实节点的网络,可以大大方便执行其它攻击。

—— 多位作者,Bitcoin Wiki

这种类型的攻击叫做 “ Sybil attack ”,它的基本形态是一个主体控制了网络中的多个节点,并假装成多个实体。

(译者注:“Sybil attack” 的常见翻译为 “女巫攻击”,实则翻译为 “分身攻击” 更贴切,下文取此译。)

如前面的引文所说,分身攻击在比特币网络中不算有效,因为网络中没有根据节点数量或者其它可计数的实体的投票,而只有算力投票(即挖矿,详见 章节 1.1)( 中文译本)。但是,这种扁平的结构,让系统容易受到其它攻击。“弱点” 页面就列举了其它可能的攻击,比如信息隐藏(通常被称为 “日蚀攻击( eclipse attack )”;还列举了 Bitcoin Core 软件实现的对抗此类攻击的启发式措施。

以上是需要注意的真实威胁的一个例子。

为了更好地理解敌手的思维,了解一下他们是怎么操作的,应该也有帮助。有个美国政府的部门叫做 “战略情报局(Office of Strategic Services)”,在第二次世界大战期间运作,它的目的之一是间谍活动,要执行破坏和宣传;该部门为工作人员制作了一份 小册子,教他们如何搞破坏。这本小册子的标题是 “简单破坏领域手册”,包含了潜入敌人、使他们行动艰难的具体建议。这些建议从烧毁仓库到磨光钻头,无所不包,就是为了降低敌军的效率。

sabotage-manual

- 图 6. 节选自《简单破坏领域手册》 -

比如说,这个章节(图 6)讲的是潜入者可以如何瓦解敌军的组织。不难想象,这样的策略也能用来针对比特币的开发流程(详见 第七章),这个流程是开放给所有人参与的。一个蓄意的攻击者可以通过无休无止地表达不相关的顾虑、在措辞上吹毛求疵、重提已经得到全面解决的讨论,来拖延开发的进度。攻击者也可以雇佣网军来提高效率;我们可以管这叫 “社会分身攻击”。使用社会分身攻击,攻击者可以让被提议的变更所面临的反对看起来很多,远超真实的反对情形。

你看,一个意志坚决的国家可以、也确实会动用一切力量来摧毁敌人,也包括从内部瓦解。因为比特币是一种货币,跟已有的法定货币竞争,有些国家可能会将比特币当成敌人。

Eric Voskuil 在他的 “密码经济学 Wiki(Cryptoeconomics Wiki)” 页面 讲到了他所谓的 “抵抗公理”:

换句话说,这里面有一个假设,是能够抵抗国家的控制的系统是有可能存在的。因为对相似系统中的行为的实证研究,这并不被视为一个事实,而只被当成一个合理的假设。

如果你不接受抵抗公理,你在思考的就是一个完全不同于比特币的系统。如果你假设没有任何系统能够抵御国家的控制,那么你的思考所得出的结论在比特币的语境下就没有意义 —— 就像球面几何与欧几里得几何的结论相互矛盾一样。如果没有这个公理,比特币怎么能是免信任的、抵抗审查的呢?这种矛盾,会让人在尝试合理化冲突时犯下明显的错误。

—— Eric Voskuil,Cryptoeconomics Wiki(2017)

他真正想说的是,只有当人们假设有可能创建国家无法控制的系统时,尝试才会有意义。

这意味着,要在比特币上开发,你应该接受这个公理,否则,你最好把时间花在别的项目上。知道这个公理,可以帮助你将精力集中在手上的真实问题上:围绕国家级的敌手编写你的代码。换句话说,对抗性思考。

6.3 结论

一个去中心化的低通无法在系统自身以外拥有可审计性,因此,比特币必须比传统的系统更加严厉地防范恶意行为。在这样的系统中,对抗性思考是必不可少的。

为了确保比特币的安全,你需要知道它的敌手,以及敌手的激励因素。绝大部分威胁,似乎都可以归结为拥有强大经济实力的民族国家,他们有税收,还能印钱。他们可能不会轻易放弃自己印发货币的特权。

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
BTCStudy
BTCStudy
https://www.btcstudy.org/