开发者社区> 问答> 正文

Merkle Tree有哪些应用场景?

Merkle Tree有哪些应用场景?

展开
收起
鲁花花生油 2021-11-01 13:50:28 945 0
来自:华章出版社
1 条回答
写回答
取消 提交回答
  • 数字签名:最初Merkle Tree的目的是高效处理Lamport单次签名。每一个Lamport密钥只能被用来签名一个消息,但是与Merkle Tree结合起来可以签名多个消息。这种方法成为一种高效的数字签名框架,即Merkle签名方法。

    P2P网络:在P2P网络中,Merkle Tree用来确保从其他节点接收的数据块没有损坏且没有被替换,甚至检查其他节点不会欺骗或者发布虚假的块。在2.2节中,我们提到了BitTorrent使用P2P技术来让客户端之间进行数据传输,一来可以加快数据下载速度,二来减轻下载服务器的负担。一个相关的问题是大数据块的使用,因为为了保持torrent文件非常小,那么数据块Hash的数量也得很小,这就意味着每个数据块相对较大。大数据块影响节点之间进行交易的效率,因为只有当大数据块全部下载下来并通过校验后,才能与其他节点进行交易。为解决上面两个问题:用一个简单的Merkle Tree代替Hash List。设计一个层数足够多的满二叉树,叶节点是数据块的Hash,不足的叶节点用0来代替。上层的节点是其对应孩子节点串联的Hash。Hash算法和普通torrent一样采用SHA-1。

    比特币:Merkle Proof最早的应用是Bitcoin(比特币),它是由中本聪在2009年描述并创建的。Bitcoin的Blockchain利用Merkle proofs来存储每个区块的交易。而这样做的好处也就是中本聪描述到的“简化支付验证”(Simplified Payment Verification,SPV)的概念:一个“轻客户端”(light client)可以仅下载链的区块头,即每个区块中的80字节的数据块,仅包含5个元素,而不是下载每一笔交易以及每一个区块。5个元素为上一区块头的Hash值、时间戳、挖矿难度值、工作量证明随机数(nonce)以及包含该区块交易的Merkle Tree的根Hash。

    资料来源:《IPFS原理与实践》,文章链接:https://developer.aliyun.com/article/726565

    2021-11-01 13:51:44
    赞同 展开评论 打赏
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载