早在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年底“乐观”发布。按照比特币的真正保守精神,附加了“何时完成并经过全面测试”条款,因此我们不应该保留我们的呼吸是在明确优先事项是稳健性的最后期限.
核心协议
比特币Optech如何连接开源和企业世界
多年来,Bitcoin Core和其他开源项目已经构建了一系列技术,以改善比特币扩展能力和一般的比特币用户体验。借助隔离见证(SegWit),Replace-By-Fee和闪电网络等示例,比特币用户可以使用许多工具,以最佳,高效地利用比特币区块链。. 但是,从历史上看,特别是大型公司采用这种工具的速度一直很慢。见证人隔离是一个典型的例子:2017年8月在比特币网络上启用升级后,数家最大的比特币企业都没有采用升级。在下半年之前,SegWit交易的总份额甚至保持在50%以下的2019. Chaincode Labs的工程师John Newbery也注意到了这一点。前Google产品总监史蒂夫·李(Steve Lee)成为Square Crypto的产品经理。以及曾加入DG Lab的前Chaincode工程师James O’Beirne。看到这些和其他差异,他们希望帮助解决明显的脱节。三人于2018年中期发起了一项弥合差距的倡议: 比特币Optech. Lee解释说:“比特币是最成熟的区块链,尽管它使用的时间最长,但是使用区块链仍然存在很多效率低下的问题,而且资源稀缺。” 宣布 该项目是在2018年7月举行的Distributed 2018大会上的。“这确实是我们关注的重点,它可以帮助生态系统中的各个参与者找出如何最好地做到这一点。” 该计划将由在比特币Optech伞下联合的几个项目组成. 这些项目的第一个是一系列 工作坊, 召集比特币公司的开源开发人员和工程师亲自讨论相关技术。这些研讨会为所有参与者提供了技术知识,同时也帮助了比特币生态系统不同部分之间的进一步合作,这些部分有时对行业有不同的看法,开放源代码开发人员和比特币公司有时会发现彼此之间存在冲突. “将人们聚集在一起并举行面对面的会议确实是有益的,它有助于建立更加协作的生态系统,” Newbery在同一Distributed 2018公告中解释说。 “在纯技术层面上,从实际在地面上工作的工程师那里获得经验反馈,再回到开源社区,可以使那些开源项目变得更好,而从开源社区进入这些公司的信息可以使那些公司使用更好的技术。” 首个比特币Optech研讨会于2018年7月在旧金山举行。来自Square,Coinbase,BitGo,Purse,Xapo和Ledger的14位工程师讨论了主题,包括硬币选择,费用估算和“按需付费”以及建立等更多一般性话题。 Optech计划本身的价值以及比特币生态系统不同部分之间的通信. 自那时以来,该计划已显着发展。在巴黎(2018年11月)举办了第二次研讨会,随后在旧金山举办了另一场活动,在纽约举办了一次活动(均于2019年9月举行)。第五次也是最近一次的讲习班于本月初在伦敦举行。如今,Bitcoin Optech拥有24家成员公司,这些成员公司在财务上支持该计划,其中包括Bitstamp,Kraken,Casa,OKcoin和Bitrefill等。绝大多数会员公司也参加了至少一个讲习班. 比特币Optech团队本身也已经发展壮大。尽管O’Beirne在2018年之后停止捐款,但Blockstream的产品经理Mike Schmidt,Chaincode Labs的合伙人Adam Jonas和Chaincode Labs的工程师Carl Dong一直在该计划中担任各种组织角色. 纽伯里对比特币杂志说:“我认为比特币Optech在技术性比特币事务上已成为值得信赖的声音,并继续强调用户和企业可以更有效地利用区块链的方式。”离地. 这 比特币Optech通讯 是比特币Optech旗下的第二个大型项目。该新闻通讯由技术作家David Harding制作,在撰写本文时计数了84个版本,该新闻通讯继续积累大量信息,其中包含高质量的技术文档,并提供有关比特币和Lightning实现的最新动态的概述。. 在通讯中进行的更显着的努力中,哈丁撰写了关于bech32发送支持的24(!)部分系列文章,鼓励钱包提供商和公司实施将资金发送到bech32地址的选项,这是Bitcoin Core 0.16中引入的地址格式。 .0。使用bech32,用户可以充分利用SegWit提供的额外块空间,并享受许多其他好处。在23个受欢迎的钱包中,有19个集成了此选项,而其中的四个甚至默认情况下生成了bech32接收地址-尽管,当然,很难说这多少是由于比特币Optech新闻稿所致. 比特币Optech范围内的其他项目包括一个仪表板,该仪表板包含有关一系列技术的详细统计数据和采用指标;兼容性矩阵以及不同钱包对SegWit和Replace-By-Fee支持的概述;以及Scaling Cookbook,这是一份为工程师和企业扩展技术的技术文档。比特币Optech还提供了 概述 有关比特币相关技术主题的信息,已经成为许多人的首选资源. 也许至少同样重要,比特币Optech可能已经帮助治愈了由多年的规模争议引起的裂痕。直到2018年中期,一个想法才开始,并得到Xapo创始人Wences Casares,风险投资家John Pfeffer和Chaincode Labs联合创始人Alex Morcos的种子资金的帮助,Bitcoin Optech对技术解决方案的关注很可能在对齐不同部分方面发挥了作用比特币生态系统. Lee告诉《比特币杂志》:“我认为这进展很好,并且在公司参与度方面超出了我们的期望,并且影响了研讨会的内容和新闻通讯。” “很难说Optech实际采用了多少种优化,但是至少我认为Optech帮助了SegWit2X之后的修复过程,并使企业更好地了解了开源开发人员和过程的工作方式。”
Bitcoin Core 0.18.0版本:这是新功能
今天(2019年5月2日)正式发布 比特币核心0.18.0, 中本聪(Satoshi Nakomoto)在大约10年前推出了第18代比特币的原始软件客户端,至今仍是网络上占主导地位的比特币实施。在比特币核心首席维护者弗拉基米尔·范德兰(Wladimir van der Laan)的监督下,这一最新的主要发行版由大约100个贡献者在大约六个月的时间内开发完成. 比特币核心0.18.0包括典型的性能改进和错误修复范围,以及一些新功能. 以下是一些最重要的变化的概述. 硬件钱包兼容性 比特币核心0.18.0中最令人期待的更改之一将是使用户能够通过硬件钱包交互(HWI)工具连接其硬件钱包(Ledger,Trezor,Digital BitBox,KeepKey和Coldcard)。这结合了最安全的方式来存储私钥和与区块链进行交互的最安全方式之一. 硬件钱包被认为是安全的,因为用户的私钥永远不会离开设备。密钥永远不会暴露在互联网或它们所连接的计算机上,从而使硬件钱包不受远程黑客的攻击. 虽然已经可以使用Electrum个人服务器将硬件钱包连接到连接到整个节点的Electrum钱包,但HWI将成为Bitcoin Core项目的第一个本地,硬件到节点的选择。目前,HWI脚本仍仅是命令行,并且需要手动过程来连接硬件钱包. GUI对多钱包功能的支持 最新更新的另一个进步是使用户能够与多个钱包配对。这是在Bitcoin Core 0.17.0中完成的一些工作的基础上建立的,在Bitcoin Core 0.17.0中,用户不再受限于在启动节点时仅创建钱包,而可以在需要时创建和使用新的钱包。在Bitcoin Core 0.18.0中,用户可以将自己创建的多个钱包配对,然后将该功能插入图形用户界面(GUI). 此功能将在以后的更新中继续完善,因为在使用GUI来访问“ multiwallet”命令时仍然存在一些已知问题。最值得注意的是,您不能在装有多个钱包的情况下使用硬币控制功能,否则在尝试切换钱包时可能会保留错误的钱包. 硬币控制功能允许用户控制在发送交易时使用钱包中的哪些硬币。此功能是维护用户隐私的一个重要方面,因为某些未用的交易输出(UTXO)可能会比其他交易更能显示出更多信息,无论是通过其发送的地址还是它们的价值。 (例如,如果您拥有一枚价值1,000 BTC的UTXO,而另一枚价值0.1 BTC的UTXO,则您可能更喜欢使用0.1 UTXO来防止您所支付的人得知您拥有至少1,000 BTC。) 对输出脚本描述符语言的改进 由Blockstream工程师和比特币核心贡献者Pieter Wuille提议,输出脚本描述符语言首次出现在比特币0.17.0中。该语言的主要用途是允许用户命名与他们的钱包关联的不同类型的公钥和私钥,并使将这些密钥从一个钱包转移到另一个钱包变得更加容易。根据他的原始提案文件,Wuille的最终目标是有一天“消除完全导入脚本和密钥的需要,而使钱包只是这些描述符及其相关元数据的列表。” 随着Wuille和其他开发人员继续努力增加该描述符列表,最新更新通过提供新命令来允许用户开始为每个可被Bitcoin Core签名的脚本导入人类可读的描述符,从而完善了一些现有语言。. 比特币采矿促进隔离证人的采用 Getblocktemplate(GBT)是一种去中心化,开源的比特币挖矿池协议的首次尝试,它是由比特币社区在2012年开发的。当时,一些特定于池的挖矿协议只是为矿工发布了区块头,以解决问题,根本不知道块中到底有什么,实际上是盲目地将控制权交给了池操作员。像更新的BetterHash协议一样,GBT通过将块创建(事务选择)移交给矿工,将权力交还给矿工(“哈希”),从而分散了该过程. 如果您是矿工,希望加入受支持的池,则要开始使用协议,该矿工会与池服务器联系并请求初始模板,该模板将包括为参与该池而设置的规则。这些规则是由挖掘池自定义的,范围从硬币库和随机数参数到最小/最大时间散列。但是在最新更新中,未启用SegWit的接收此模板的调用将失败,并且矿工将收到一条错误消息。 ((但是,在任何情况下,未指定SegWit的矿工调用getblocktemplate都可能会导致用户错误,因为这会导致矿工获得较低的报酬。) SegWit于2017年实施,被认为是有史以来对比特币软件进行的最大协议更新。 SegWit带来的主要变化是修复了可延展性错误,并用块“权重”限制替换了块大小限制,允许多达4兆字节的交易数据,并极大地提高了网络的交易容量.