三分钟了解区块链常用数据结构「默克尔树」
默克尔树是由哈希值构成的树状数据结构,封装在区块链数据层,用于验证区块链数据的完整准确性。
原文标题:《默克尔树究竟是棵什么树?| 万向区块链小课堂》
本期万向区块链小课堂将为大家讲解区块链中经常提及的一棵树:默克尔树(Merkle Tree)。
来回忆下我们之前小课堂解构的区块链六层模型,默克尔树封装在数据层,说明它是一个密码学技术,用以保护区块链的安全。
默克尔树于 1979 年由美国计算机科学家拉尔夫·默克尔(Ralph Merkle)提出,本质上是一种树状数据结构,由数据块、叶子节点、中间节点和根节点组成。所以,一组合,就叫「Merkle Tree」。
默克尔树各部分的构成关系如下图:
要得到这样一棵默克尔树,首先要对底部数据块进行哈希运算,用每个数据块对应的哈希值生成叶子节点。再对相邻的 2 个叶子节点进行哈希运算,得到的哈希值生成中间节点,最后对相邻的 2 个中间节点进行哈希运算,得到的哈希值生成根节点。由于各类节点都是由哈希值构成,因此默克尔树又被称为哈希树,即储存哈希值的树状数据结构。
看起来是不是很像一棵底下堆满了礼物的圣诞树?
哈希运算和哈希值
生成默克尔树用到的哈希运算是区块链中常用的加密函数。任意大小、长度的数据经过哈希运算后都会得到一个固定大小和长度的数值,即哈希值。就像我们的指纹或签名能帮助鉴别我们的身份,哈希值也可以看成是数据的指纹或签名,用于验证数据的真实准确性,并具有以下特征:
确定性
数据和哈希值之间是确定的一一对应关系,即相同数据经过哈希运算会得到相同的哈希值。
不可逆性
哈希运算的过程是不可逆的,即数据经过哈希运算可以得到哈希值,但不可以通过哈希值推导出原始运算数据,由此保证数据的隐私和安全性。比如 Facebook 等网站会将用户密码计算成哈希值并储存。用户每次输入密码时,密码都会被转换成哈希值与网站记录的版本进行对比,从而验证密码是否正确。由于哈希运算的不可逆性,网站无法从哈希值中推导出用户密码,从而保证用户信息安全。
统一性
即上文提到的任意大小、长度的数据经过哈希运算后会生成大小、长度统一的哈希值,一方面起到压缩数据,减轻数据储存压力的作用,另一方面规整了杂乱无章的原数据,方便后期比对验证。
为什么要用默克尔树?
由于默克尔树本质上是由哈希值构成的树状数据结构,因此也继承了哈希值用于保证数据安全隐私和校验数据准确和完整性的功能,主要应用于点对点下载,例如 BT 下载、开源分布式控制系统 Git、比特币和以太坊区块链等场景中。因为我们难以保证这些去中心化系统中的每个节点都会提供真实可信的数据,也难以避免数据在传输过程中出现丢失、损坏等情况,所以需要引入数据加密和校验机制。
看到这里,你可能已经意识到了默克尔树其实就是将数据分割成多个小块,进行多次哈希运算,搭建出的一个树状数据结构。那为什么要对数据进行拆分,计算出多个哈希值用于校验呢?这不是增加工作量了吗?但其实这样做是为了提高数据验证的灵活性,数据量越大,默克尔树的这一优势会体现得越明显。
试想一下,如果我们不对数据进行拆分,而是将整体计算成一个哈希值,那当数据校验出现问题时,我们很难分辨问题出现在哪里,只能回过头去对整个数据进行排查,如果数据量特别大,那么这个错误排查过程无异于海底捞针。
但在默克尔树里,数据被拆分成多个小块,形成了多个分支,可以根据具体情况对部分数据进行校验,无需校验整个数据,从而提高数据校验的灵活性和效率。
最后总结一下默克尔树的知识要点:
-
由哈希值构成的树状数据结构
-
用于验证验证区块链等去中心化系统中的数据的完整准确性
-
具有灵活高效验证数据的优势
来源:万向区块链
比推快讯
更多 >>- Consensys 对 SEC 提起诉讼,以捍卫以太坊生态系统
- Axelar宣布将通过Filecoin虚拟机提供链上去中心化存储
- 金融科技巨头Stripe时隔六年后再次接受加密支付,目前支持 USDC 稳定币
- Paxos Treasury新增铸造1亿枚PYUSD
- 链上文化创意平台Spotlight完成200万美元Pre-Seed轮融资,Folius Ventures领投
- Starknet面向永续合约和期权协议开启DeFi Spring第三阶段
- 美众议院金融服务委员会高级议员:稳定币法案可能很快会出台
- Arkham:贝莱德在其 2 个 ETF 钱包中收到了超过 2万美元的符文代币空投
- 去中心化物理基础设施网络Natix完成460万美元战略融资,拟空投 10 亿枚 NATIX 代币
- Coinbase国际交易所将上线AEVO、ENA、ETHFI永续合约
- BTC突破64000美元,日内跌幅收窄至1.07%
- 9只现货比特币ETF今日净减持1,104枚BTC,净流出约7010万美元
- W代币现可通过Wormhole NTT在Solana、以太坊及L2网络上无缝转移
- Immutable 推出价值 5000 万美元的加密游戏奖励计划
- Wordcoin计划与PayPal和OpenAI进行合作
- 富兰克林顿普顿为其链上美国政府货币基金推出点对点转账服务
- USDC Treasury销毁超5622万枚USDC
- 以太坊 L2 区块链开发商 Movement Labs 完成 3800 万美元 A 轮融资
- A16z crypto 首席技术官:Meme币“赌场”破坏了加密货币的长期愿景
- 自 4 月 8 日以来疑似孙宇晨地址已购买 176,117 枚 ETH,约合 5.597 亿美元
- DCG聘请Aimie Killeen担任其新的首席法务官
- Benchmark:如果采用新的会计规则,MicroStrategy 盈利或增加 30 亿美元并成为标普 500 强公司
- 美SEC推迟就现货比特币 ETF 期权上市和交易做出决定,并征求公众意见
- 灰度于12分钟前向Coinbase Prime地址转入800枚BTC
- a16z Crypto提出代币发行的五条规则,包括勿以筹款为目的在美国公开出售代币
- 区块链B2B支付公司Paystand收购Teampay
- 美股区块链板块普跌
- CARV完成1000万美元A轮融资
- 交易员将美联储首次降息时间推迟至12月
- CME美联储观察:美联储5月维持利率不变的概率升至99.7%
- 美国退休顾问金融公司GRP已在7只比特币ETF中持有投资敞口
- 美国Q1 GDP低于预期 核心PCE物价指数大幅反弹
- 美元指数DXY短线下挫超20点,30年期国债收益率升至4.81%
- 国际象棋策略游戏Anichess完成180万美元融资
- 在美国财长耶伦背后展示“Buy Bitcoin”的笔记本以超100万美元价格售出
- 贝莱德IBIT现持有约27.44万枚BTC
- Moso完成200万美元种子轮融资
- 新加坡法院驳回加密投资公司Cake Group联创的清算请求
- 去中心化AI搜索引擎Adot完成300万美元Pre-A轮融资
- 据称美SEC将于下月拒绝批准现货以太坊ETF
- 以太坊周三的NFT日销售额超713万美元
- 通用验证层Aligned Layer完成2000万美元A轮融资
- 币安已开放BounceBit(BB)Megadrop
- 自推出以来,符文交易占所有比特币交易的68%
比推专栏
更多 >>观点
项目
比推热门文章
- Consensys 对 SEC 提起诉讼,以捍卫以太坊生态系统
- Axelar宣布将通过Filecoin虚拟机提供链上去中心化存储
- 金融科技巨头Stripe时隔六年后再次接受加密支付,目前支持 USDC 稳定币
- Paxos Treasury新增铸造1亿枚PYUSD
- 链上文化创意平台Spotlight完成200万美元Pre-Seed轮融资,Folius Ventures领投
- Starknet面向永续合约和期权协议开启DeFi Spring第三阶段
- 美众议院金融服务委员会高级议员:稳定币法案可能很快会出台
- Arkham:贝莱德在其 2 个 ETF 钱包中收到了超过 2万美元的符文代币空投
- 去中心化物理基础设施网络Natix完成460万美元战略融资,拟空投 10 亿枚 NATIX 代币
- Coinbase国际交易所将上线AEVO、ENA、ETHFI永续合约