木星链 木星链
Ctrl+D收藏木星链
首页 > Gate.io > 正文

BTC:金色观察 | Utreexo进展

作者:

时间:1900/1/1 0:00:00

Utreexo进展

概要

本文会介绍Utreexo的优点,以及这些优点的实现程度,阐述最新Utreexo应用中取得的重大进展,但是要让这项科技大众化,还需要一个漫长的过程。

2020年7月最新的演示发布会中,我们指出,未来Utreexo项目能够将Utreexo累加器应用到btcd,btcd是Go语言的BTC实现。我很高兴,因为该实现已经能够用于另一个演示版本。这个版本中可以演示一种称为“致密状态节点”的新修剪型节点模式。

2020年4月发表了一篇“ELI5:Utreexo——一个扩容解决方案”的文章,这篇文章介绍了以下几个致密状态节点的优势:

1.?新的全节点模式只会占用几千字节,能够让hdd节点像ssd节点一样快速同步。

2.?能够实现初始区块并行下载。

3.?由于目前使用的是谷歌的数据库,通过致密状态节点,共识能够独立于数据库实现,加强BTC安全性。

4.?Utreexo的应用不会导致BTC分叉。

就目前的发展状况而言,第3和第4点现已实现,第1点只有部分实现了,因为非Utreexo数据的存在,节点大小还是不能缩小到千字节,第2点还在努力实现。

第3点为何重要?

几年来,在提高BTC安全性方面,重点之一是消除它的任何外部依赖性。外部依赖性指的是依靠那些BTC开发者没有编写的代码,而这些又是BTC软件运行必要的代码。对于任何高度依赖安全的项目,都要尽量避免依赖外部代码,因为它们可能会产生漏洞。为了把这种风险降到最低,依赖的外部代码都要经过审查,然后保留审查后的代码副本。然而,这种并不是完美的方法,代码如果由BTC开发者直接编写、测试和审查会更好。出于这个原因,BTC开发人员已经从中删除了各种产生外部依赖的代码,例如OpenSSH代码。

金色午报|1月5日午间重要动态一览:7:00-12:00关键词:Opensea、萨尔瓦多、NFT

1.Opensea以133亿美元投后估值完成3亿美元融资,Paradigm和Coatue领投;

2.萨尔瓦多财政部长:将推进比特币债券的发行;

3.PhantaBear NFT市值突破1000万美元;

4.前CFTC主席提议特设加密货币工作组,以统一美国加密货币监管;

5.阿迪达斯 Originals NFT 系列销售额接近6000万美元;

6.泰国推迟CBDC试点计划;

7.第三大比特币巨鲸今日再次购买372个BTC;

8.交通银行首个数字人民币智慧薪酬管理项目落地。[2022/1/5 8:26:12]

目前,依赖最大的外部代码是存储未花费输出集合和区块索引的数据库。现在BTC使用谷歌的“LevelDB”数据库。LevelDB必须要没有代码漏洞,这对于BTC的安全性至关重要。LevelDB中如果存在漏洞,可能会导致双花或导致意外分叉。事实上,BTC在LevelDB之前使用的是BerkeleyDB,2013年,BerkeleyDB在比特币核心节点中的应用出现漏洞,导致旧钱包节点在读取区块225430时失败,导致意外分叉。

上文提到的UTXO是BTC的一套支付系统。UTXO集合对于维护BTC的安全非常重要,因为这直接组成BTC共识,移除LevelDB将极大地提高其抵御风险的能力。

第3点的实现

之所以需要一个数据库,是因为UTXO集合包含超过6000万个UTXO,这些UTXO都要记录,并且能够快速访问,因为访问速度过慢会降低区块初始下载速度。快速访问大量细分数据通常会使用数据库。

金色财经CEO安鑫鑫:挖矿要走得更长远需要遵循五个核心原则:金色财经现场报道,4月25日,2021新基建区块链峰会在成都举办。在分布式存储新时代分会场上,金色财经CEO安鑫鑫以《换个角度 看待区块链挖矿产业》为题进行分享。他指出,区块链的世界是绝对公平的是万物互链利益共享的,基于此,挖矿项目走得更长远,需要遵循这五个核心原则,包括平等共识、代币扩散、生态共建、行为引导、正循环。[2021/4/25 20:55:58]

然而,有了Utreexo致密状态节点,根本不需要数据库。相反,我们需要让UTXO的发送者提供UTXO数据和Utreexo累加器,证明UTXO存在。这样在Utreexo致密状态节点实现中,UTXO集合无需保留。这允许从BTC共识的另一个关键部分中删除LevelDB。

针对主链扩容,以下是现有区块验证方式与Utreexo致密状态节点区块验证的对比:

这里唯一的区别是后者的区块验证没有访问数据库。相反,它使用Utreexo来验证区块。

代码变化非常小,因为大多数区块验证函数都保持不变。检查累加器证明后,经过验证的UTXO数据(验证块所需的)会转换成为“UtxoViewpoint”,也就是现有的UTXO集合缓存结构,这相当于比特币核心节点的CCoinsView,然后UTXO数据会传递给现有的区块验证函数。

第4点的重要性

在像BTC这样的去中心化系统中,加入新功能需要分叉,而分叉会带来很大风险。BTC硬分叉在很大程度上不可能实现,因为不值得为了一个功能而进行硬分叉。软分叉也很难实现,因为需要大量社区支持。

金色财经挖矿数据播报 | BSV今日全网算力上涨27.34%:金色财经报道,据蜘蛛矿池数据显示:

ETH全网算力178.548TH/s,挖矿难度2220.99T,目前区块高度10054859,理论收益0.00823938/100MH/天。

BTC全网算力119.308EH/s,挖矿难度16.10T,目前区块高度630177,理论收益0.00000780/T/天。

BSV全网算力2.082EH/s,挖矿难度0.28T,目前区块高度634694,理论收益0.00043225/T/天。

BCH全网算力2.814EH/s,挖矿难度0.40T,目前区块高度634896,理论收益0.00031983/T/天。[2020/5/13]

另一方面,在无需分叉的条件下,如果可以直接添加一个新功能,那么这个功能的部署就会简单得多。例如,BIP-152压缩区块继电器得到了广泛采用,无需分叉。对于BIP-152,节点可以选择是否加入,因为该提议没有强制性,没有选择加入的节点不用做出任何改变。

第4点的实现

这是最容易实现的一点,因为TadgeDryja第一次写Utreexo论文时,它就解决了。我们通过使用称为“桥接节点”的过渡节点,避免软分叉,这种节点能够连接新的Utreexo节点和当前的BTC节点。

当非utreexo节点连接到桥接节点时,桥接节点的功能与当前的BTC全节点相同。然而,一个Utreexo节点连接到桥接节点后,它将提供正常区块的Utreexo证明,同样也会将该证明提供给一个非Utreexo节点。

那篇4月发表的文章提到,会对Utreexo二进制文件进行硬编码,而且只能连接到我们运行的桥接节点,避免干扰BTC测试网。

金色午报 | 3月10日午间重要动态一览:7:00-12:00关键词:Ripple、以太坊2.0、Voice 、BitMex、区块链小程序

1. 解放军报:在区块链技术支撑下 我情信息能够及时更新并实现全网同步。

2. 上海市静安区体育局推出基于区块链的小程序 鼓励居民居家健身。

3. 以太坊2.0客户端Lighthouse正式进启动UI研发。

4. Ripple主要支持者Tiffany Hayden清空所持有的XRP资产。

5. BB:Voice 目前仅发布技术测试版,将逐步邀请用户使用。

6. 分析:BitMex交易员因杠杆交易面临清算风险。

7. 比特币核心开发者讨论Taproot和协议共识。

8. 王坚院士:加快推进区块链技术在工业互联网数据确权等方面的应用。

9. 比特币日内震荡上涨,最高涨至7966.12美元,现报7917.65美元。[2020/3/10]

第1点的重要性

要运行一个完整节点,上文提到的UTXO集合是必要条件。然而,越来越多节点采用这种集合后,再加上BTC的单位能够越分越细,UTXO集合将会变大。目前,UTXO集合大小约是4GB,但对于价格低廉设备,这个大小可能会继续增加,超过这些设备的处理能力。BTC如果能够得到广泛使用,降低UTXO集合的大小非常重要。

在当前BTC节点中,一个区块引用任何UTXO时,节点需要获取该UTXO,要么通过硬盘,要么通过缓存。节点如果硬盘速度较慢,就会造成问题,这也是BTC目前的瓶颈之一。对于修剪型节点,这是一个更大的约束,因为当区块经过修剪后,各个缓存的UTXO会写入磁盘。BTC开发者PieterWuille也指出了这个问题,修剪型节点的同步速度比未修剪节点慢。

金色午报 | 1月21日午间重要动态一览:7:00-12:00关键词:湖北、印度储备银行、赣服通3.0、青岛农商银行、BSV、EOS VM

1. 湖北省政府工作报告:强化区块链等新型通用技术引领带动。

2. 福建:积极推动区块链等技术在制造业领域应用与融合发展。

3. 印度储备银行:并未禁止加密货币交易,只是对银行等受监管实体隔离以避免风险。

4. 济南市市长:济南片区正探索实施区块链人工智能审批等政务服务新模式。

5. 江西:“赣服通”3.0版将创新运用区块链新技术。

6. 青岛农商银行开立山东首单银行区块链电子投标保函。

7. 2019年全年矿池平均赚矿工费428.53万美元,七大矿池年收入过千万

8. BSV创世纪升级技术变更:将恢复OP_RETURN的功能,不再支持P2SH地址。

9. EOS社区:出块节点开始测试EOS VM,性能大幅提升。

10. BTC现报8666美元,近24小时上涨0.15%,市值为1570.76亿美元。[2020/1/21]

Utreexo致密状态节点能够提高同步速度,因为无需对UTXO集合进行磁盘读取。这说明在任何存储中,无论是基于NVMe协议的固态硬盘还是其他硬盘,Utreexo致密状态节点都能发挥出同样性能。

第1点的目前进展

全节点大小尚未缩小到只有几千字节,因为区块头等元数据就占用了几百兆字节。尽管chainstate占用空间小,如果要实现目标,其他数据的大小也不容忽视。在这次发布版本中,目标是缩小到几百兆字节。

下图对比了Utreexo致密状态节点与比特币核心节点的chainstate。

如上图所示,Utreexo致密状态节点的chainstate大小仅为424字节,因此对于节点中的chainstate大小,出现了舍入错误。实际上,用于重新连接已知节点进行重启的peers.json文件占用了205kb,其大小约是chainstate的483倍。

以下对比了修剪型比特币核心节点和Utreexo致密状态节点之间的性能差异,观察基于NVMe协议的固态硬盘和其他硬盘的读写速度。

这项测试会指定节致密状态节点连接到一个不同的本地Utreexo桥接节点,从基于NVMe协议的固态硬盘读取数据,从而进行基准测试。假设比特币核心节点中前1864000个区块都经过了验证,将同样的设置应用到致密状态节点中。测试网3达到1906000区块高度后,完成测试。

本次测试使用了以下硬件:

CPU::AMDRyzen3600

内存:三星32GBDDR42666MHz

作为本地服务节点的基于NVMe协议固态硬盘:2TBSandiskULTRA.2NVMe.2

作为测试节点的基于NVMe协议固态硬盘:1TBHPSSDEX950M.2

测试节点硬盘:WesternDigitalWD10EZEX-22BN5A01TB7200RPM

以下是发送到比特币核心节点的标志:

-prune=550

-connect=127.0.0.1

-disablewallet

-blocksonly?

-testnet

对于比特币核心节点,在基于NVMe协议的固态硬盘上运行需要784秒,而在其他硬盘上则需要1066秒。对于Utreexo致密状态节点,在基于NVMe协议的固态硬盘上运行需要1,643秒,而在其他硬盘上需要1,700秒。

请注意,就当前Utreexo致密状态节点的实现而言,仍然要进行许多性能优化。它目前速度比比特币核心节点慢,因为我们分叉了一个比后者慢得多的btcd节点。我们后续会发布一个版本和一篇重点说明性能的文章。

为何第2点如此重要?

为了避免混淆,本文提到是指链级并行下载。这意味着单个节点将同时验证多个区块,比如100001到200000然后是200001到300000。第2点指的不是区块层级的并行下载,在这种并行下载中,区块的交易签名接受并行验证,这在btcd和比特币核心节点中已经实现。

在计算机领域,并行化是指同时执行多个进程。这可以提高空闲硬件的使用率,例如CPU,如果硬件处于空闲状态,性能可能会提高。近年来,由于物理限制,在提高时钟频率方面,CPU开发出现了困难。所以,人们更多地关注的是增加核心数量,而不是提高时钟频率。针对这种情况,软件开发也做出了相应改变,越来越强调并行化,目的是充分利用更多CPU核心。

并行化区块初始下载可以大幅减少同步全节点所需的时间,这样个人用户而言,运行一个全节点也更容易。更多的节点将使BTC网络更能抵御攻击。从这个角度来看,并行化也能够增加BTC的安全性。

第2点的目前进展

任何区块的验证都需要前一个块的UTXO集合。例如,如果我们正在验证区块501,我们需要区块500的UTXO集合。然而,要获得区块500的UTXO集合,需要区块499的UTXO集合。这会产生一个问题,那就是要追溯到BTC的硬编码创世区块,阻碍着链级并行化的实现。

有了Utreexo后,这个问题更加容易解决,因为UTXO集合只有几百字节,而不是几千字节。这让我们可以将整个UTXO集合表示硬编码到软件中,作为并行验证的起点。

请注意一点,有可能会出现恶意节点,发送伪造UTXO集合。然而,这并不会降低我们的安全要求,因为我们有多个CPU核心,能够验证从创世区块开始一直到499区块高度。在这之后,我们会从501个区块继续验证,充分利用闲置CPU内核。完成前一步后,我们会检查区块,验证区块499和区块500的UTXO集合是否匹配。因此,经过硬编码的UTXO集合表示仅作为提示,以提升处理速度,实际上所有区块都会经过验证。

为了支持这种类型的链级并行化,代码库必须支持多个chainstate保持活跃状态。对于拥有多个chainstate而言,主要困难在于必须记录多个UTXO集合。UTXO集合需要一个数据库,磁盘上也要有该集合的缓存,这样读取速度才能加快,在这种条件下,运行节点的硬件要求会变高。但是,Utreexo致密状态节点即使没有数据库,也可以储存UTXO集合,所以这不是问题。

拥有多个chainstate的目标正在实现。对于Utreexo致密状态节点,工作量大大降低,因为不需要为每个chainstate建立数据库,这样就可以拥有多个chainstate。对于btcd节点,输入Blockchain即可访问CChainstate数据库,

目前,我们仍在研究每个chainstate应该如何处理p2p网络消息,尝试不同的方法,例如使用两个初始区块下载管理器,或者记录每个chainstate对区块发出的请求,但实现这个目标的过程仍然很漫长。

本次发布版本的缺陷

当前版本不支持区块链重组和内存池。因此,节点将以“blocksonly”模式运行,如果发生重组,节点会崩溃。Utreexo尚未能够实现对这两者的支持,所以这次发布的只是演示版本。BTC主网不会支持这个版本,它不应该用于实际交易中,因为它仍然是早期版本,也存在漏洞。

展望未来

第1点的目前进展中提到,我们会对Utreexo致密状态节点进行更多性能优化。这包括加速开发Utreexo累加器和btcd组件。我们目前注意到许多问题,一旦修复这些问题,致密状态节点的速度能够得到提升,只是需要进行更多测试来实现。

去年就开始了对区块链重组支持的测试,但出现了许多其他更紧迫的问题,暂停了该测试,在不久的将来,重组会得到实现。虽然还没有开始内存池支持的测试,但是我们已经计划了一段时间。我非常期待在今年实现支持内存池。

目前Utreexo累加器需要Go语言来编写。将累加器代码移植到Rust和c是一项持久工作。我们不确定要花多长时间,不过现在已经打造了代码基础,需要各方通力合作。Utreexo的发展仍然任重而道远。

本文内容来自于BitMEX

标签:BTCREEXEXOTREEbtc币多少钱一个REEX币nexo币未来能涨到500元吗Tree Finance

Gate.io热门资讯
BIT:Bitfinex表示已偿还5.5亿美元的NYAG Probe中心贷款

加密货币交易所Bitfinex周五声称已偿还其姊妹公司Tether稳定币的发行人5.5亿美元的贷款余额。2018年,该交易所从Tether借了超过6亿美元,与Tether共享高管和所有权.

1900/1/1 0:00:00
LID:探究新的 Solidity 0.8 版本

*译文出自:登链翻译计划*译者:翻译小组*校对:Tiny熊我们离Solidity1}contractSolidity08{functiontest()externalpurereturns(ui.

1900/1/1 0:00:00
比特币:春节来临会变春劫吗?

最期盼的春节马上就要到来了,与往年的“春劫”相比,一些分析师和交易员预测,今年不会出现"春节效应",即比特币价格今年不会在春节前后下跌.

1900/1/1 0:00:00
BOA:BOSAGORA (BOA) 上线福利:交易瓜分265,000 BOA,共建民主网络!

为了庆祝BOSAGORA(BOA)在库币重磅上线,库币和BOSAGORA团队将提供265,000BOA豪华大奖池.

1900/1/1 0:00:00
PKEx于2月9日15:00上线HPT公告

尊敬的PKEx用户:PKEx上线HPT具体时间如下:交易时间:2月9日15:00充值时间:2月9日15:00提现时间:2月9日15:00PKEx温馨提示:数字资产是创新型投资品,价格波动较大.

1900/1/1 0:00:00
加密货币:金色前哨|金标委发文介绍数字身份和全球法人识别编码

金色财经报道,2月8日,全国金融标准化技术委员会发文介绍了数字身份、加密货币和LEI,金标委引用的是LEIWorldwid发布的关于全球法人身份识别编码LEI的介绍.

1900/1/1 0:00:00