比特币核心0.17.0发布:这是什么新功能
今天标志着比特币核心0.17.0的正式发布,这是比特币最初的软件客户端,是由Satoshi Nakamoto在近10年前推出的,并且仍然是当今网络上占主导地位的比特币实现。由比特币核心主要维护者Wladimir van der Laan 监督,这个最新的主要版本是由大约135个贡献者在大约七个月的时间内开发的。
超过700个合并拉取请求的结果,比特币核心0.17.0包括一系列性能改进和错误修复,以及其他更改。
以下是其中一些更改的概述。
改进硬币选择
钱包中的硬币有效地存储为单独的块(“交易输出”)。每个收到的付款通常有一个块; 因此,大多数块代表不同的数量。当从钱包进行支付时,将不同的块添加在一起以构成足以支付费用的金额加上费用。不同的块通常不会达到所需的确切数量,但是,在这种情况下,“更改地址”被添加到交易中,将任何剩余的资金发送回同一个钱包。
到目前为止,比特币核心钱包一起添加了不同的块。只有这样才能计算并加上支付交易所需的费用。但在某些情况下,向交易中添加费用意味着添加的块不再构成足够大的数量,在这种情况下,必须包含额外的块。
比特币核心0.17.0引入了BitGo工程师Mark Erhardt 设计的“分支定界”算法。这提供了两个具体的改进。首先,在选择每个块作为事务的一部分之前计算每个块的费用,以避免必须在以后添加新的块。其次,该算法尝试匹配不同的块,以便它们累加到所需的确切数量,从而避免在可能的情况下需要“更改地址”(剩余的“更改”被发送)。(有很多块的大钱包,比如那些由交易所或其他高流量实体操作的钱包,比其他钱包更不可能需要更改地址。)
此外,比特币核心0.17.0中的硬币选择算法包括可选的隐私改进。
虽然这是违反最佳做法的,但可能会收到多次付款到同一比特币地址。(例如,这会在捐赠地址中发生很多。)重复使用地址本身就不利于隐私,因为很明显,该地址上的所有硬币以及从该地址发出的所有付款都来自同一个用户。但是,当在不同的事务中使用绑定到同一地址的不同块时,将它们链接到最初不与该地址相关联的块时,情况会更糟。
为解决最后一个问题,比特币核心0.17.0为用户提供了在事务中优先添加绑定到同一地址的块的选项,并尽可能将任何其他块保留在事务之外。
轻松创建和使用新钱包
自比特币核心0.15.0以来,可以创建几个彼此独立运行的钱包。这些钱包都有自己独立的比特币地址,私钥,因此也有资金。用户可以将不同的钱包用于不同的目的; 例如,一个钱包可用于个人日常购物,另一个用于商业相关交易,第三个仅用于交易。这可以使会计更容易和更方便,并且用户可以更容易地从增加的隐私中受益,因为不同的钱包不能通过区块链分析彼此链接。
但是,到目前为止,只能在启动节点时创建新的钱包,并且它不适用于比特币核心钱包(GUI)用户。现在解决了这两个限制。比特币核心0.17.0允许用户随时创建新钱包,并在GUI中提供此功能。
作为额外的好处,比特币核心0.17.0引入了一个名为“Scantxoutset。”的功能。这使用户可以通过检查未使用的交易输出来快速验证他们的新钱包是否已包含硬币(例如,因为私钥是从另一个钱包导入的) (UTXO)设置,而不是重新扫描整个交易历史记录。
非高清到高清钱包升级
虽然早于0.13.0的比特币核心版本仍然要求用户备份他们的所有私钥,但所有比特币核心版本都提供了分层确定性(HD)钱包。高清钱包用户只需要存储一个种子短语(单词列表)作为备份。
然而,将他们的系统升级到比特币核心0.13.0及更新版本的比特币核心用户无法创建新的高清钱包。非高清钱包和高清钱包之间不兼容意味着这些用户仍然无法备份所有私钥。
比特币核心0.17.0现在允许这些用户升级到高清格式。此外,已经拥有高清钱包的比特币核心钱包用户现在可以选择生成或导入新的HD种子。
仅限观看钱包
比特币钱包通常存储私钥,允许用户花钱。但比特币核心也支持“仅观看”地址已有一段时间了。这些地址的私钥不存储在钱包中,但附在这些地址上的硬币仍然可以在钱包中看到。这使用户可以轻松接受付款并跟踪他们的资金,例如,将他们的私钥存储在离线状态。
比特币核心0.17.0将这一概念更进一步,并允许用户创建特定的仅限观看钱包,其中每个地址都是一个仅限监视地址。作为一个具体的例子,这将使比特币核心更容易用HD种子形式跟踪硬件钱包或纸质钱包中的资金。
部分签名的比特币交易
虽然许多交易很简单 - 一个用户支付另一个 - 比特币也允许更复杂的交易类型。这些包括,例如,多签名(multisig)交易,其中几个用户需要签署发送资金,以及隐私增强CoinJoin交易,其中不同的用户将他们的独立交易合并为一个大交易。
为了更好地促进这些类型的交易,比特币核心0.17.0引入了由Andrew Chow设计的BIP 174部分签名比特币交易(PSBT)框架。该框架允许比特币核心用户部分签署交易,但也为这种部分签名的交易添加元数据。其他人可以使用此元数据来完成交易。
如果该标准被其他钱包采用,PSBT将特别有用。作为一个潜在的用例,例如,它可以让用户通过将其锁定到多重帐户来保护他的资金,其中交易将需要从比特币核心钱包创建的签名,以及来自硬件钱包的签名。或者它可以让比特币核心用户与(其他)隐私保护钱包用户一起参与CoinJoin计划。
目前,部分签名交易功能仅适用于从命令行或通过连接的应用程序操作比特币核心的用户。
从用户界面修剪
存储所有(链上)比特币交易,比特币区块链目前超过180千兆字节,并且每天都在增长。新的比特币核心用户必须下载并验证所有这些数据。
由于称为“区块链修剪”的技巧,这些用户不一定需要存储所有这些数据。在修剪模式下,节点将自动忘记旧的交易数据,并仅保留安全操作所需的内容。到目前为止,只能通过命令行启用修剪模式。
比特币核心0.17.0首次提供了方便的GUI切换功能,可以从钱包中进行修剪,使其更易于访问希望运行完整节点以获得最佳安全性的临时非技术性比特币用户。