昨天,BitcoinCore0.19.0正式发布,这是近11年前中本聪发布的比特币软件客户端的第19个版本,至今仍是比特币网络上的主流应用。在BitcoinCore首席维护者WladimirvanderLaan的监督下,这个最新的重要版本是由一百多位贡献者在大约六个月的时间里开发出来的。
合并550个pullrequest的结果,BitcoinCore0.19.0包括一系列的性能改进和bug修复,以及其他变化。
以下是其中一些变化的概述。
GUI默认Bech32地址
“bech32”地址格式已经在2018年初发布的BitcoinCore0.16.0中引入,但现在首次被设置为BitcoinCore钱包GUI的默认选项。
CertiK:franklinisbored推特账号遭入侵并发布了钓鱼链接:金色财经消息,据CertiK监测,@franklinisbored推特账号遭入侵并发布了钓鱼链接。请用户勿与链接交互。[2023/6/9 21:26:00]
Bech32地址是以“bc1”开头的地址。这类地址比较长,但是使用的字符比当前地址格式少,因为小写字母和大写字母之间不再有区别。Bech32地址还能用来减少因打字错误引起的问题。
此外,bech32的应用在SegWit的环境中提供了优势。到目前为止,一些提供SegWit功能的钱包是通过将其“包装成”P2SH输出来实现的。要从这样一个地址花费比特币,用户必须在“赎回脚本”中公布一段代码,以表明比特币确实被锁定在SegWit输出中。使用新的bech32地址,可以跳过这一步,这意味着从SegWit输出的花费将只需要更少的数据通过比特币网络传输并包含在区块链中。这使得bech32输出的交易甚至比P2SH输出的SegWit交易更便宜。
CZ发布长推特:“FUD帮助我们成长”:12月13日消息,CZ发布推特解释近日FUD现状,并直言“FUD 帮助我们成长,尽管它们非常烦人。”
CZ称,从创业开始就有大型交易所(现在非常小)赞助FUD活动、发布一系列FUD文章。此后,几乎每周币安都将发生FUD。[2022/12/13 21:41:42]
并不是所有的比特币钱包都支持发送到bech32地址,因此,BitcoinCore0.19.0用户仍然可以选择生成一个PS2H接收地址,在GUI进行切换。
降低带宽需求,预防分区攻击
比特币节点之间相互连接,共同形成点对点网络。在这个网络上,节点共享区块、交易和一些额外的交易数据。
但是这种点对点网络可能会受到攻击,例如分区攻击。如果攻击者控制了足够多的比特币节点,它可能会通过拦截流量的形式,从而切断比特币网络的某些部分。网络中被分割出来的部分可能会被,接受少数链而不是最长链为有效的,这可能反过来打开了双花攻击的大门。
推特名为Snarls Barkley的用户被盗约20枚NFT,部分被转入攻击Beeple推特的黑客地址:9月23日休息,PeckShield在Twitter上表示,推特名为Snarls Barkley的用户被盗约20枚NFT,包括BAYC、BAKC、Vee Friends、XCopy系列NFT,攻击者通过伪装可信网站的跨站脚本攻击来生成恶意OpenSea签名请求从而盗走NFT。进行本次攻击的黑客已将部分NFT转移至被Etherscan标记为攻击Beeple推特的黑客地址。[2022/9/23 7:16:54]
如果网络分区部分中的节点仅与主网络上的城市节点有一个连接,就可以对分区攻击进行反击。然后,它将接收和转发所有的交易和区块,并拒绝少数链而支持多数链。
实现这一点的一种方法是让节点之间建立更多的连接,从而使分区攻击更难实现。然而,更多的连接需要更多的内存和带宽;这是一种权衡。
Reddit联合创始人也将其推特简介改为Bitcoin:1月29日,随着马斯克将其推特个人简介改为Bitcoin后,Reddit联合创始人Alexis Ohanian也将其推特简介改为了Bitcoin。[2021/1/29 14:22:31]
BitcoinCore0.19.0默认增加了两个传出连接,但其聪明之处在于,这两个额外的连接仅用于传递区块,它们不会传递交易或额外的交易数据。这将降低额外的带宽需求,同时仍然使分区攻击难以成功完成。
弃用BloomFilters
BitcoinCore是全节点软件,这意味着需要下载和验证所有的比特币区块。虽然这是最安全的,但它不太适合资源不足的计算设备,如手机。因此,移动钱包通常用的是“轻客户端”:只下载与它们相关的交易和区块。
一种方法是使用BloomFilters,现在有一些钱包都在用BloomFilters。简而言之,BloomFilters是轻客户端使用的一种加密技术,用于从网络上随机的全节点请求相关数据。然而,不幸的是,随着时间的推移,BloomFilters变得对隐私非常不友好:它们实际上向全节点暴露了所有地址。最重要的是,支持BloomFilters请求的代价是占用全节点的CPU和磁盘空间,而对全节点本身没有直接的好处。
数据:BTC非零地址数创历史新高:6月25日消息,据Glassnode数据显示,当前BTC非零地址数为42,114,252,创历史新高。[2022/6/25 1:30:08]
特别是后一个原因,默认情况下,BitcoinCore0.19.0不再支持BloomFilter请求。如果用户愿意,他们仍然可以自行选择支持BloomFilter。
同样值得注意的是,比特币网络肯定会在未来几年继续支持BloomFilter,因为旧的BitcoinCore节点可能在新版发布的很多年后依然在使用中。
支持新的过滤器
BloomFilter的替代方案是称为“紧凑客户端区块过滤”的新解决方案。其完全颠覆了BloomFilter的模式。其并非由轻钱包创建发送到全节点,而是由全节点为每个区块创建过滤器。然后,轻客户端可以使用这些过滤器来确定与它们相关的交易是否发生在一个区块中。如果是这样,轻钱包将获取整个区块并从中挑选出任何相关的交易数据。
BitcoinCore节点已经可以在本地创建过滤器。BitcoinCore0.19.0用户还可以通过远程过程调用访问在该节点上运行的应用。
然而,这些过滤器还不能在点对点网络上使用。这意味着一个BitcoinCore0.19.0节点不会自动向其他比特币用户的钱包发送过滤器。这项功能可能会被添加到未来的BitcoinCore版本中——或者,用户可以选择通过在他们的BitcoinCore节点上运行的自定义应用来提供这项功能。
GUI禁用支付协议支持
支付协议是几年前为改善比特币的支付体验而设计的。除了向比特币网络广播的常规支付之外,用户和商户还会就支付的其他细节进行沟通,比如一个可读的目标地址和一个退款地址,以防在购买过程中出现问题。
虽然BitcoinCore在其GUI中整合了支付协议,但该标准从未被广泛采用。相反,大多数钱包仍然使用更基本的URI模式来接收支付:例如,可点击的链接或可扫描的二维码格式,用来传递支付地址和金额。
也许比使用率较低更重要的是,BIP70支付协议多年来一直遭受大量安全和隐私漏洞。因此,一些钱包已经主动拒绝执行该协议。BitcoinCore也曾计划不支持BIP70,因为人们认为维护它是不值得的,但BitPay对它的采用让这一过程陷入停滞。
在BitcoinCore0.19.0中,BIP70已经被默认从GUI中移除。BitcoinCore0.19.0的用户将不得不通过特殊配置编译他们的节点,确保仍然可以使用该功能。
其他……
除了上述的变化,BitcoinCore0.19.0还带来了一些较小的改进和变化。
例如,现在可以从设置过程中立即启动一个“修剪过的”节点,这让磁盘空间有限的用户可以轻松地启动一个新的比特币节点。BitcoinCore0.19.0还包含了部分签名比特币交易协议的新特性,该协议对多重签名和CoinJoin交易非常有用。同样,在钱包描述符领域也有一些改进,这对处理比特币应用的程序员特别有用。BitcoinCore0.19.0节点也将接受和中继交易,使用未来的SegWit版本,以确保即将到来的升级将顺利进行。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。