昨天,BitcoinCore0.19.0正式发布,这是近11年前中本聪发布的比特币软件客户端的第19个版本,至今仍是比特币网络上的主流应用。在BitcoinCore首席维护者WladimirvanderLaan的监督下,这个最新的重要版本是由一百多位贡献者在大约六个月的时间里开发出来的。
合并550个pullrequest的结果,BitcoinCore0.19.0包括一系列的性能改进和bug修复,以及其他变化。
以下是其中一些变化的概述。
GUI默认Bech32地址
Deribit和OKEx以太坊期权交易创历史新高:随着以太坊价格上涨,最近Deribit和OKEx交易所上ETH期权交易达到创纪录水平。5月31日,Derbit交易所上交易价值2000万美元比特币期权,而OKEx过去三天清算比特币期权也达到1200万美元。不过,期权交易活动增长并不表示未来价格会出现变化,仅表明以太坊交易者在市场上的活动更加积极,这通常会导致价格波动。本文撰写时,以太坊价格为238.21美元,24小时跌幅为0.58%。据悉,比特币期权交易活动在最近几周也变得更加活跃,持仓量更是创下历史新高。(beincrypto)[2020/6/1]
“bech32”地址格式已经在2018年初发布的BitcoinCore0.16.0中引入,但现在首次被设置为BitcoinCore钱包GUI的默认选项。
Bech32地址是以“bc1”开头的地址。这类地址比较长,但是使用的字符比当前地址格式少,因为小写字母和大写字母之间不再有区别。Bech32地址还能用来减少因打字错误引起的问题。
动态 | Bitfinex宣布成功向持有TRX的钱包进行BTT空投:Bitfinex昨日在Twitter上宣布BTT空投已成功完成,所有参与者都已收到与其TRX持有量有关的代币。Bitfinex早在今年2月就宣布的空投计划,在受支持的交易所,以0.11:1的比率向TRX发行BTT代币。这意味着每持有价值1000美元的TRX代币,钱包将有资格获得价值约5美元的BTT。[2019/10/13]
此外,bech32的应用在SegWit的环境中提供了优势。到目前为止,一些提供SegWit功能的钱包是通过将其“包装成”P2SH输出来实现的。要从这样一个地址花费比特币,用户必须在“赎回脚本”中公布一段代码,以表明比特币确实被锁定在SegWit输出中。使用新的bech32地址,可以跳过这一步,这意味着从SegWit输出的花费将只需要更少的数据通过比特币网络传输并包含在区块链中。这使得bech32输出的交易甚至比P2SH输出的SegWit交易更便宜。
动态 | 比特币耶稣对Bitfury的监视交易行为提出质疑:据ambcrypto消息,比特币耶稣Roger Ver在访谈节目中呼吁,比特币矿商Bitfury应该停止间谍活动。此前,Bitfury Crystal的负责人Kyrylo Chykhradze表示,在交易所分析部门的帮助下,可以密切关注BTC和BCH网络,并可以利用聚类算法确定属于特定用户的地址。这位负责人还表示,Crystal已开始帮助金融机构和执法部门识别和追踪敲诈勒索、等犯罪活动。[2019/4/2]
并不是所有的比特币钱包都支持发送到bech32地址,因此,BitcoinCore0.19.0用户仍然可以选择生成一个PS2H接收地址,在GUI进行切换。
降低带宽需求,预防分区攻击
比特币节点之间相互连接,共同形成点对点网络。在这个网络上,节点共享区块、交易和一些额外的交易数据。
动态 | bitFlyer交易所的一部分服务无法访问 现正在紧急修复中:据日本bitFlyer交易所消息,当地时间18:28分,bitFlyer交易所的一部分服务无法访问,现正在紧急修复中。[2018/9/21]
但是这种点对点网络可能会受到攻击,例如分区攻击。如果攻击者控制了足够多的比特币节点,它可能会通过拦截流量的形式,从而切断比特币网络的某些部分。网络中被分割出来的部分可能会被,接受少数链而不是最长链为有效的,这可能反过来打开了双花攻击的大门。
如果网络分区部分中的节点仅与主网络上的城市节点有一个连接,就可以对分区攻击进行反击。然后,它将接收和转发所有的交易和区块,并拒绝少数链而支持多数链。
实现这一点的一种方法是让节点之间建立更多的连接,从而使分区攻击更难实现。然而,更多的连接需要更多的内存和带宽;这是一种权衡。
公告 | Upbit将在ETH交易市场中中断CFI和TIX:据Upbit官网公告,从7月28日开始在ETH交易市场中中断CFI和TIX的交易服务。虽然在ETH市场中无法交易CFI和TIX,但是在BTC交易市场中仍然可以进行交易。[2018/7/27]
BitcoinCore0.19.0默认增加了两个传出连接,但其聪明之处在于,这两个额外的连接仅用于传递区块,它们不会传递交易或额外的交易数据。这将降低额外的带宽需求,同时仍然使分区攻击难以成功完成。
弃用BloomFilters
BitcoinCore是全节点软件,这意味着需要下载和验证所有的比特币区块。虽然这是最安全的,但它不太适合资源不足的计算设备,如手机。因此,移动钱包通常用的是“轻客户端”:只下载与它们相关的交易和区块。
一种方法是使用BloomFilters,现在有一些钱包都在用BloomFilters。简而言之,BloomFilters是轻客户端使用的一种加密技术,用于从网络上随机的全节点请求相关数据。然而,不幸的是,随着时间的推移,BloomFilters变得对隐私非常不友好:它们实际上向全节点暴露了所有地址。最重要的是,支持BloomFilters请求的代价是占用全节点的CPU和磁盘空间,而对全节点本身没有直接的好处。
特别是后一个原因,默认情况下,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版本,以确保即将到来的升级将顺利进行。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。