hyperledger fabric (二)

区块链的密码学特性:

区块链中使用的是hash算法,Merkle树,非对称加密算法这三种密码学中常见的技术。

区块链常用的hash算法是SHA256和RIPEMD160

SHA256是SHA算法的一个变体。SHA是有美国国家安全局(NSA)设计,美国国家标准与技术研究院(NIST)发布的一系列函数。包括:SHA——224,SHA——256,SHA——384,SHA——512 等变体。这些算法是用于数字签名。SHA256算法在抗碰撞性和效率之间做了平衡处理。很多区块链项目都支持SHA-256

区块链中的数据是存储在区块中的,一个区块中会存储若干数据,那么这些数据是以什么样的方式组织才能做到不可篡改的呢?

Merkle树解决了这个问题。

什么是Merkle树?

Merkle是树的一种(数据结构中的树),通常称为Merkle Hash tree,组成Merkle树的所有节点都是哈希值。

Merkle树的特点:
  • Merkle树是一种树形数据结构,可以是二叉树,也可以是多叉树,具有树形结构的所有特点。
  • Merkle树的叶子节点上的value可以任意指定,比如可以将数据的哈希值作为叶子节点的值。
  • Merkle非叶子节点的value是根据下面所有叶子节点的值,然后按照一定的算法计算得出的。如Merkle树的非叶子节点的value是将该节点的所有子节点进行组合,然后对组合结果进行哈希计算得出的哈希值。
Merkle树的应用领域
  • 处理对比和验证的场景中
  • 分布式环境下的对比或验证。Merkle大大减少了数据传输量,以及计算复杂度。
Merkle树的优点:
  • Merkle树明显的好处是可以单独拿出一个分支(作为一个小树)来对部分数据进行校验。这个特性在很多场合可以带来哈希表所不能比拟的方便和高效。
Merkle树在区块链中的应用

区块链中的每个区块中的交易是按照Merkle的形式存储在区块上面的。每笔交易都有一个哈希值,然后不同的哈希值向上继续做哈希运算,最终形成唯一的Merkle根。这个Merkle根将会保存在区块头中。利用Merkle树的特性可以确保每一笔交易都不可伪造。

猜你喜欢

转载自blog.csdn.net/weixin_33860722/article/details/86924977