捕获科技:区块链钱包开发的密码学(下)

2019-10-11


续:捕获科技:区块链钱包开发的密码学(上)


众所周知,密码学是区块链钱包开发技术的核心,那么关于密码学,你了解多少?

  加密Hash散列



  Hash是计算机科学中的一个术语,意思是输入任意长度的字符串,然后产生一个固定长度的输出。无论某个Hash散列函数的输入是3个字符还是10个字符,其输出的长度始终是相同的。
  加密Hash散列函数具有以下几个关键特性:


  确定性:无论给函数多少次特定的输入,它都始终会得到相同的输出;
  不可逆性:无法根据函数的输出来确定输入的内容;
  抗冲击性:没有任何两个输入可以得到相同的输出;


  

加密Hash散列函数的另一个重要特性是改变输入中的任何一位数据都将极大地改变输出结果。举例来说,111111和111112的Hash散列输出将会是绝对唯一的,且彼此间没有任何联系。
  加密Hash散列函数最为广泛的用例是密码储存。大多数网站不会储存用户的原始密码,它们会储存用户密码的Hash散列,并在用户访问给定的站点并输入密码时,检查散列是否匹配。如果黑客入侵了他们的数据库,也只能访问不可逆的密码Hash散列。
  一直以来,这就是Hash散列保证区块链中数据具有不可变性的原因。如果有人想在前面的区块中哪怕更改一位数据,那么不仅会改变该区块数据的Hash散列输出,还会改变后面的每一个区块。网络上的矿工和节点会立刻注意到所产生的Hash散列与其链的版本不匹配,并拒绝此次更改。
  Merkle 树
  Merkle树(或称为Hash散列树)是一种使用加密Hash 散列函数来储存散列输出(而不是每个节点中的原始数据)的树。每个叶子节点由其原始数据的加密Hash散列组成,而每个父节点(Parent Node)是其子节点Hash散列组合的Hash散列。
  那么,为什么Merkle树对区块链技术来说是十分重要呢?
  使用Merkle根并且应用加密Hash散列函数的性质,可以快速判断给定区块中的交易是否已被篡改,并识别正在被篡改的特定交易。
  如果已确认区块中的单个交易已经被更改,那么Merkle根最终将与“正确的” Merkle根截然不同,并且改动是十分显而易见的。
  Merkle树还允许用户在不下载整个区块链的情况下验证他们的的交易是否被包含在区块中。简单支付证明技术可以扫扫描Merkle树中的所有分支,并检查某个特定的交易是否已经被散列存储到该树中。如果不是在每个区块中包含一个Merkle根,区块链技术是不可能实现这种效率水平的。

相关新闻

新闻&案例

新闻动态
行业资讯

关于我们

公司简介
联系我们

联系方式

电话:020-22954640
微信:13265307814
邮件:service@buhuokeji.com
QQ:1663714047

开发合作扫我

关注公众号