首页 > 比特币 > 正文

早在 2016 年,比特币开发就成为整个开源社区的典范,集成了 Gitian 构建——一种“计算机中的计算机”框架,让开发人员以更透明的方式验证二进制计算机文件。但随着支持确定性和可引导比特币核心构建的 Guix 最近的合并,该协议的工作变得更加不可信。

尽管所涉及的过程相当复杂,并且主要与开发人员有关,但这两个关键问题涉及信任和语言——比特币的组成部分对我们所有人都很重要。正如计算机科学中的任何速成课程都会告诉您的那样,计算机接收二进制指令(“1”和“0”),但人类必须使用合乎逻辑且易于理解的编程语言进行编写。编码部分完成后,需要将指令编译成计算机可以理解的那种语言。并且当开发人员需要共享生成的二进制文件时,他们彼此之间必须具有一定程度的信任(除非该过程涉及额外的验证步骤,这很耗时)。

作为一种去中心化的协议,比特币需要额外的关注和谨慎。如果在开发人员之间交换的二进制文件中碰巧有轻微的第三方更改(例如恶意黑客攻击),那么新版本的客户端可能会出现错误和副作用,从而导致大量资金损失. 除非建立适当的验证过程,否则此问题很容易成为单点故障。

Guix 是一种可以替代 Gitian 的开发人员工具,它将使比特币核心开发更加无需信任。

吉蒂安和吉克斯

所有开发人员都运行相同的代码并比较二进制文件的想法是不切实际的,因为系统架构、操作系统甚至编译时间等变量的差异——甚至是微小的差异——可能会产生不同的结果。因此,为了解决这个问题,一位名叫Dev Random的匿名开发者创建了 Gitian。

正如比特币杂志的 Aaron van Wirdum所描述的那样,Gitian 是“计算机中的计算机”,它提供了一个虚拟空间,可以在没有变量的情况下编译二进制文件。无论该过程使用哪种设备或操作系统,都保证结果始终相同。

但是,该程序不足以满足 Bitcoin Core 开发人员的需求,因为它过于依赖 Ubuntu 操作系统。这种依赖性本身就可能成为故障点,验证过程需要更高的透明度和可审计性。

正如 Chaincode Labs 工程师 Carl Dong 告诉比特币杂志的那样,“标准化环境严重依赖于,而且有些盲目地依赖于 Ubuntu。事实上,我们构建环境的方式是从 Ubuntu 下载不可审计的、不透明的二进制文件(换句话说,“可信二进制文件”),使我们面临第三方风险。人们可以想象攻击者如何通过入侵 Ubuntu 的基础设施(或者,可能只是通过在那里工作)来毒害所有比特币核心版本的可执行文件。”

Dong 负责引入 Guix,这是一个二进制验证系统,使开发更加去信任,并准备完全取代 Gitian。

“Guix 使我们能够以一种我们依赖严重减少的可信二进制文件集的方式构建环境,”他说。“大部分环境都是由一个微小的二元种子构建而成的,这个构建过程的可审计性要高得多。”

此外,信任最小化实施(于2019 年 7 月 12 日并入比特币核心)旨在消除第三方风险。董认为这是一种更简单、更少平台特定的比特币核心工作方法。未来,Guix 还将允许开发人员在不同的 CPU 架构上进行构建,并随时间生成可重现的可执行文件。这些功能对于透明和合乎道德的发展至关重要,它们还将使二进制文件的交换更快、更高效。

诚然,董从 Gitian 的意图和架构中汲取了灵感。尽管如此,两者都没有空间,Guix 将成为替代品。

“我将 Guix 集成到比特币核心的工作当然从 Gitian 那里获得了灵感,但它们并没有太多的互补性,”董说。“我预计一旦对 OS X 和 Windows 目标的交叉编译支持完成,Gitian 将退休。”

GUIX 和普通比特币用户

如果 Guix 是由开发人员创建并用于他们自己交换已编译二进制文件的工具,那么普通用户为什么会关心?好吧,它还消除了对为 Bitcoin Core 客户端下载的数据的信任。尽管可能性很小,但恶意的第三方(如网络钓鱼网站)可能会在此过程中进行干预,并在缺乏适当的验证框架的情况下窃取您的比特币。Guix 正是遵循深深植根于比特币文化的“不信任,验证”的理念。

据董说,“Guix 允许用户验证他们下载的比特币核心客户端是否与比特币核心开发人员编写的代码完全一致。它减轻了针对我们将代码库转换为我们发布的客户端可执行文件的方式的攻击。”

尽管明确关注开发人员的需求,但如果用户选择对他们运行的软件持谨慎态度,Guix 也是用户可能需要和想要使用的东西。

截至发稿时,Guix 仅适用于 Ubuntu 版本。但是,董估计 Windows 和 Mac OS 版本将在 2019 年底“乐观”发布。 本着比特币真正保守的精神,附加了“完成并经过彻底测试”的条款,所以我们不应该持有当明确的优先事项是稳健性时,我们为最后期限而喘息。

猜你喜欢
发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论信息