Guix能让Bitcoin Core的开发更加免信任

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

虽然这个过程相当复杂,主要涉及开发人员,但比特币的两个组成问题涉及到信任和语言,这对每个人来说都很重要。计算机科学的任何速成课程都会告诉您,计算机接收二进制指令(“1”和“0”),但人类必须用他们能够理解的逻辑编程语言编写这些指令。当编码部分完成时,需要将指令编译成计算机能够理解的语言。当开发人员需要共享生成的二进制文件时,他们必须对彼此有一定程度的信任。除非这个过程涉及额外的验证步骤,否则它是耗时的。

作为一种分散的协议,比特币需要更多的谨慎和关注。如果在二进制文件(如恶意黑客攻击)和开发人员之间的交换中发生了轻微的第三方更改,那么新版本的客户端可能会有错误和副作用,从而造成巨大的损失。除非建立适当的核查程序,否则问题很容易成为一个单一的故障点。

认为所有开发人员将运行相同的代码并比较二进制文件的想法是不现实的,因为在诸如系统架构、操作系统,甚至编译时间等变量上的差异即使非常小,也可能提供不同的结果。因此,为了解决这一问题,开发人员化名开发人员随机设计了吉田。

正如“比特币杂志”对作家艾伦·范·韦尔德姆所描述的那样,Gitian是一台“计算机中的计算机”,它提供了一个虚拟空间,可以在其中编译二进制文件,而不存在变量差异。无论您使用哪种设备或操作系统,结果都是一样的。

然而,这个过程不能满足比特币核心开发者的需求,因为它过于依赖Ubuntu操作系统。这种依赖本身可能会成为一个失败点,而验证过程需要更多的透明度和可验证性。

正如Chaincode实验室的开发工程师卡尔·董告诉比特币杂志,“标准化环境严重依赖于Ubuntu,而且它可能是盲目的。事实上,我们构建环境的方式是从Ubuntu下载不可审计的、不透明的二进制文件(换句话说,”受信任的二进制文件“),这使我们面临第三方的风险。不难想象,通过入侵Ubuntu的基础设施(或者仅仅通过将攻击者混入Ubuntu团队),可以污染所有比特币Core可执行的程序。”

董先生负责介绍国仪。这是一种二进制身份验证系统,允许开发人员在不需要信任并最终完全取代Gitian的环境中进行开发。

他说

“Guix允许我们以一种方式构建一个开发环境,在这种环境中,我们只依赖一组大大减少的可信二进制文件。大多数环境都是由一个很小的二进制种子构建的,构建过程更可验证。”

此外,于2019年7月12日纳入比特币核心的信托最小化实施旨在消除第三方风险。董先生认为,这是一种更简单、不太特定于平台的方式来应对比特币核心的安全风险。将来,Guix还将允许开发人员构建不同的CPU模式并生成可重复的代码。这些特性对于透明和合乎道德的发展至关重要,它们也将使二进制文件的交换更快、更有效。

可以肯定的是,董是受到吉田的启发。然而,即使两者都没有空间,Guix也将是一个替代品。

董说:

“我把Guix集成到比特币核心的工作当然是受到Gitian的启发,但它们并不是相辅相成的。我希望一旦对OSX和Windows目标的交叉编译支持完成,Gitian就会退出市场。”

如果Guix是一个由开发人员创建的工具,旨在为自己交换编译好的二进制文件,那么普通用户为什么要关心它呢?事实上,它也消除了普通用户对比特币核心客户端下载数据的信任担忧。虽然不太可能,但恶意第三方,如网络钓鱼网站,可能会在没有适当的验证框架的情况下介入窃取您的比特币的过程。Guix遵循根植于比特币文化中的\“无信任”的概念。

董说

“Guix允许用户验证他们下载的比特币核心客户端与比特币核心开发人员编写的代码完全相同,这样可以减少对代码库转换为发布客户端可执行文件的方式的攻击。”

虽然Guix对开发人员有更明确的要求,但如果用户选择使用他们谨慎运行的软件,Guix也是用户可能需要并希望使用的工具。

到目前为止,Guix只适用于Ubuntu版本。董先生乐观地估计Windows和MacOS版本将在2019年年底发布。为了符合比特币的谨慎精神,他还添加了一个“当它完成并经过彻底测试后”子句,也就是说,最优先的是健壮性,因此我们可以期待它的beta版本将尽快推出。