5分钟相识MIT比特币改进规划Utreexo,手机运行全节点再也不是梦 | BTC

杭州匡氏纺织有限公司

杭州匡氏纺织有限公司

  • 首页
  • 业务管理
  • 美容培训中心
  • 行业新闻
  • 服务支持
  • 你的位置:杭州匡氏纺织有限公司 > 服务支持 > 5分钟相识MIT比特币改进规划Utreexo,手机运行全节点再也不是梦 | BTC

    5分钟相识MIT比特币改进规划Utreexo,手机运行全节点再也不是梦 | BTC

    发布日期:2022-10-17 06:43    点击次数:197

    5分钟相识MIT比特币改进规划Utreexo,手机运行全节点再也不是梦

    洒脱喜 洒脱喜

    2020-04-14

    关注

    写在前面: Utreexo是由闪电网络(LN)论文作者之一Tadge Dryja提出的,它是一种实用于比特币的哈希累加器规划,而今该规划主若是由MIT数字钱银设计在担当资助开发,而本文作者Calvin Kim则是该名目标生动开发者之一,在这篇文章中,他俭朴说明白Utreexo的道理,并总结了该规划的4大所长以及2个负面影响。

    5分钟相识MIT比特币改进规划Utreexo,手机运行全节点再也不是梦 (图片来自:tuchong.com)

    先说说所长: 可实现几KB的全节点,且在硬盘驱动器(hdd)的同步速度可与固态硬盘(ssd)同样快; 准许初始区块下载的并行化处理惩罚; 经由过程准许共识独立于数据库实现,来增强比特币的安好性; 不必要分叉即可将Utreexo带入比特币; 尔后是弱点: 初始区块下载的带宽应用量添加了20%阁下; Utreexo存档节点的附加存储哀告;   Utreexo的运作道理  

    倏地概述:在Utreexo中,一个全节点兴许为每个区块只留存一个哈希,而传统的修剪版全节点则必须为每个区块留存全体的UTXO。

    为了理解Utreexo,我们起重要相识哈希树是怎么样事变的。这里要研究的就是默克尔树(Merkle tree),它也是比特币所应用的哈希树。

    一棵拥有8个子叶的默克尔树看起来会是这样的:

    5分钟相识MIT比特币改进规划Utreexo,手机运行全节点再也不是梦

    图1:典范的默克尔树

    该树中的每个数字都代表一个哈希。

    比特币中,最下面一行的全体数字都是买卖ID(TXID),00与01的跟尾哈希终局就是08,13则是10与11的跟尾哈希终局。

    而今在比特币中,默克尔树被用于在区块头中生成默克尔根(merkle root)。而Utreexo给与了默克尔树的见解,并将其应用于UTXO。必要留心的是,Utreexo不会替代区块头中的默克尔树。

    而今,要运行一个比特币全节点,你必须存储全体存在的UTXO,而在Utreexo中,你运行的全节点只有要存储UTXO的根。尔后这棵树看起来会是这样的:

    5分钟相识MIT比特币改进规划Utreexo,手机运行全节点再也不是梦

    图2:仅存储根数据的Utreexo树,留心,全体此外的哈希都被删除了

    从00到13的全体此外哈希在实现验证后被扬弃了,只有14这个根被留存了上去。

    假设用户想要花费UTXO 07,他们必须向你证明买卖的存在。这将经由过程供应(06, 07, 10, 12)来实现。尔后验证节点将应用领受到的哈希创立一棵零丁的树:

    5分钟相识MIT比特币改进规划Utreexo,手机运行全节点再也不是梦

    图3:用于验证的树,留心怎么样从该树计算出根

    空白地区十1、13和14可经由过程验证节点来举行计算,假设这棵树的根是14,它与我们存储的根成家,我们可以或许说该买卖是存在的。

    Utreexo轻细会宏壮一点,它的事变要领与此示例有所差别,但这是其见解的一个俭朴版介绍,其说明白怎么样只存储一个哈希(而不是全体的哈希),但仍然是一个全节点。

      Utreexo兴许带来的所长   所长1、可实现几千字节的全节点,且在硬盘驱动器(hdd)的同步速度可与固态硬盘(ssd)同样快 而今,全节点有两种范例:存档型(Archival)和修剪型(pruned)。在修剪型全节点中,用户只留存未应用的买卖输出(也称为UTXO)。而Utreexo准许另外一种称为致密形态节点(或CSN)的全节点情势,在个中,我们只存储根信息和钱包信息。这使得一个全节点的数据可小于1 KB,而今后比特币应用的全节点,用户需存储的数据因此GB单位来衡量的。

    随着比特币应用的添加,仅存储属于用户UTXO的才能就变得越来越重要。因为一个用户起码需一个UTXO(并且出于隐私启事,必要更多的UTXO),这将导致UTXO的添加。从下表中,我们可以或许清楚地看到UTXO阅历的促成。

    5分钟相识MIT比特币改进规划Utreexo,手机运行全节点再也不是梦

    图4 :UTXO计数,肃清OP_RETURN

    因而,修剪节点的存储需要将添加,从而添加比特币全节点的最低存储需要。而Utreexo经由过程答应用户修剪掉不属于他们的UTXO,来阻止这类环境。

    此外,因为致密形态节点(或CSN)可以或许在少于千字节的大小内默示全副Utreexo形态,因而无需在初始区块下载时期查询磁盘。这使得初始区块下载仅发生在RAM上,从而让hdd节点兴许像ssd节点同样倏地同步。 所长二、准许并行化下载初始区块 UTXO快照是指在特定的区块高度生活生涯全体UTXO形态。这方面的一个潜伏应用是assumeUTXO名目,它准许从快照高度同步区块链。而快照的重要阴碍,在于其大小是相当大的,而今约为5GB,并且其大小将随着“劣势1”中形态的促成而促成。对付Utreexo,服务支持在最坏的环境下[1],小于1 KB是兴许的(最佳的环境约莫是100字节)。应用Utreexo举行UTXO快照是极度俭朴的,ZKvM名目已经实现了Utreexo,并且正应用它经由过程在区块头中包孕Utreexo树根来生活生涯区块链形态。

    因为快照的实现已经变得极度经济,因而在每个区块高度都有一个快照就变得可行的了。云云,我们就能并行实现区块链同步的实现,这意味着一台计算机(或CPU焦点)可以或许从区块高度0同步到300,000,而另外一台计算性可以或许从区块高度300,001同步到600,000。而随着CPU的优化及GPGPU的崛起,这类异步区块同步,将有助于进一步削减启动比特币全节点所需的时光。 所长三、Utreexo可增强比特币的安好性(准许将共识代码与数据库别离) libconsensus名目旨在将共识代码从Bitcoin Core 中别离进去,以便: 可以或许改观非共识代码,而无须耽心会破坏共识; 准许在差别的比特币实现中应用一种共识API; 但因为很难将数据库(leveldb)与共识代码分开断绝分散,因而它终究被抛却掉了。

    这是一个极度重要的成就,因为在2013年,Bitcoin Core从Berkeley DB转移到了levelDB,并遭逢了一次意外的暂且硬分叉,一次意外的暂且软分叉以及一次硬分叉(BIP50)。

    而今,比特币的共识寄托于levelDB的畸形运行,这意味着假设levelDB不克不迭畸形事变,则兴许会存在应用另外一个数据库的分叉。

    而应用Utreexo今后,你可以或许痛处Utreexo树验证传入买卖或区块,而不必要数据库。这经由过程应用随附的证明查抄传入买卖正在花费的UTXO的存在性。 所长四、陈列不必要分叉 在放大区块链大小方面,由Boneh等人提出的RSA累加器,确凿要比Utreexo更有用,然而,实现这类规划必必要用到软分叉。而对付比特币这样的激进体系而言,纵然是软分叉也是必要极度警醒的,也因而,这些范例的累加器很难被应用于比特币。而 Utreexo的陈列,是不必要任何分叉的,用户只有经由过程运行Utreexo节点来抉择性应用Utreexo即可。

      Utreexo会带来的弱点   弱点1:带宽需要会额外添加20% 假设环境下,有人生活生计在一个极度荒僻、且带宽极度小的地区,而其应用了一台强盛的计算机来同步一个比特币节点,那末Utreexo带来的不是协助,而是一种侵害。前面提到的证明必须与TXO一起发送,这导致从平等节点下载的数据会多出20%阁下。

    从这个意思上讲,Utreexo可被看做是带宽和存储需要之间的一种衡量。假设你觉得存储价格(hdd,ssd)与互联网速度(及成本)比较是更大的阴碍,那末Utreexo可以或许有助于去阁下化。而假设你觉得互联网速度是一个更大的阴碍,那末Utreexo会有损去阁下化。 弱点2 :Utreexo存档节点的附加存储哀告 所谓Utreexo存档节点,是指存储Utreexo节点所需上述证明的现有比特币存档节点。

    这类节点会存储: 从独创区块起头的全体区块; 从独创区块起头的全体证明; 因为#2的启事,这将给存档节点带来额外的存储包袱。假设一个Utreexo存档节点存储每个区块的全体证明,这将是约莫100%的额外数据存储。

    然而,这可以或许经由过程不为每个区块存储证明而失去改进。譬喻说可觉得奇数区块存储证明,假设节点从偶数区块中哀告证明,则举行“重同步”。譬如,假设哀告区块566的证明,则Utreexo存档节点将: 检索区块566; 检索在区块565处组成的Utreexo树; 将来自区块566的买卖应用于Utreexo树,尔后从头生成证明; 将生成的证明发送给哀告它的节点; 尔后,这可以或许进一步举行优化,比喻每10个区块存储证明,依此类推,从而进一步加剧了存储包袱。

    终究,用户可以或许在cpu应用和存储之间举行衡量取舍。假设用户可以或许拜访高价的数据存储,他们可以或许抉择存储全体区块的全体证明。假设用户的存储空间无限,但其有余暇的CPU时光,则可以或许抉择削减存储量并举行更多计算。

      结论  

    总结来说,Utreexo和别的计齐整样,代表了衡量。我信赖,Utreexo将经由过程让用户抉择最得当自身的折中规划,从而有助于让比特币实现更高程度的去阁下化。

    而今开发者们正在积极开发Utreexo(github.com/mit-dci/utreexo),对付任何贡献,我们都将不胜谢谢冲动冲动:)

    极度谢谢冲动Tadge Dryja、Ruben Somsen、Paul Grau以及Janus Troelsen审阅了本文。

    脚注:

    1.在Utreexo之中,你偶尔必须留存多个根,差别区块高度留存的根数量是差别的。在Utreexo论文以及MIT比特币博览会Utreexo简介视频中,有对付这个成就更详细的说明。↵



    栏目分类