早在2016年,通过整合Gitian建筑(一种“计算机中的计算机”框架),比特币开发成为整个开源社区的典范,该框架使开发人员能够以更透明的方式验证二进制计算机文件。但是随着 Guix的最近合并, 支持确定性和可引导性的比特币核心构建,该协议的工作变得更加不可信任.
尽管所涉及的过程相当复杂,并且主要涉及开发人员,但所涉及的两个问题涉及信任和语言-比特币的组成部分对我们所有人都至关重要。就像任何计算机科学速成课程都会告诉您的那样,计算机会以二进制(“一个”和“零”)形式接收指令,但是人类必须以一种逻辑性且易于理解的编程语言进行编写。编码部分完成后,需要将指令编译为计算机可以理解的语言。并且,当开发人员需要共享生成的二进制文件时,他们之间必须存在一定程度的信任(除非该过程涉及额外的验证步骤,这非常耗时).
作为去中心化协议,比特币需要格外注意和谨慎。如果二进制文件中发生了轻微的第三方更改(例如,恶意攻击),并且在开发人员之间进行了交换,则新版本的客户端可能会存在错误和副作用,从而导致大量资金损失。除非建立适当的验证流程,否则此问题很容易成为单点故障.
Gitian和Guix
所有开发人员都将运行相同的代码并比较二进制文件的想法是不现实的,因为诸如系统体系结构,操作系统甚至编译时间之类的变量之间的差异(甚至是很小的差异)可能会提供不同的结果。因此,为了解决这个问题,以 开发随机 创建了Gitian.
正如《比特币杂志》的亚伦·范·维德姆(Aaron van Wirdum)所述,吉田(Gitian)是“计算机中的计算机”,它提供了一个虚拟空间,可以在其中编译二进制文件而无需变量。无论该过程使用哪种设备或操作系统,都保证结果始终相同.
但是,该过程不足以满足Bitcoin Core开发人员的需求,因为该过程过于依赖Ubuntu操作系统。这种依赖性本身可能会成为故障点,并且验证过程需要更高的透明度和可审核性.
正如Chaincode Labs工程师Carl Dong对《比特币杂志》(Bitcoin Magazine)所说:“标准化环境在很大程度上(盲目地)依赖Ubuntu。实际上,我们构建环境的方式是通过从Ubuntu下载不可审核的,不透明的二进制文件(即“受信任的二进制文件”),使我们面临第三方风险。可以想象攻击者如何通过入侵Ubuntu的基础架构(或者可能只是在那里工作)来毒害所有Bitcoin Core发行可执行文件。”
Dong负责引入Guix,这是一个二进制验证系统,它使开发更加不受信任,并将完全取代Gitian.
他说:“ Guix允许我们以严重减少可信任二进制文件集的方式构建环境。” “大多数环境都是通过一个很小的二进制种子构建而成的,并且此构建过程更易于审核。”
此外,信任最小化的实现( 被合并到比特币核心 (2023年7月12日)。 Dong认为,这是处理Bitcoin Core的一种更简单且针对特定平台的方法。将来,Guix还将允许开发人员在不同的CPU架构上构建并跨时间生产可复制的可执行文件。这些功能对于透明和符合道德的发展至关重要,它们还将使二进制文件的交换更快,更有效。.
不可否认,Dong从Gitian的意图和建筑中汲取了灵感。尽管如此,两者都没有空间,并且Guix将成为替代者.
Dong说:“我将Guix集成到比特币核心中的工作无疑是从Gitian那里获得灵感的,但是它们并不能互相补充。” “我希望一旦完成对OS X和Windows目标的交叉编译支持,Gitian将被淘汰。”
Guix和平均比特币用户
如果Guix是由开发人员创建并用于自己交换已编译二进制文件的工具,那么普通用户为什么会关心呢?嗯,这也消除了对为Bitcoin Core客户端下载的数据的信任。尽管赔率很小,但网络钓鱼网站等恶意第三方可能会在此过程中进行干预,并且在没有适当验证框架的情况下,会窃取您的比特币。 Guix严格遵循深深植根于比特币文化中的“不信任,验证”哲学.
根据Dong的说法,“ Guix允许用户验证他们下载的Bitcoin Core客户端是否完全与Bitcoin Core开发人员编写的代码相对应。它减轻了针对将代码库转换为我们发布的客户端可执行文件的攻击。”
尽管明确关注开发人员的需求,但是如果用户选择对运行的软件保持谨慎,则Guix还是用户可能需要并想要使用的东西。.
截至发稿时,Guix仅适用于Ubuntu版本。但是,Dong估计Windows和Mac OS版本将在2023年底“乐观”发布。按照比特币的真正保守精神,附加了“何时完成并经过全面测试”条款,因此我们不应该保留我们的呼吸是在明确优先事项是稳健性的最后期限.