什么是哈希?

简单来说,哈希就是输入任意长度的字符串都可以产生固定大小的输出。在比特币这种加密货币中,交易就是输入,然后经过哈希算法(比特币采用的是 SHA - 256),产生固定长度的输出。

下面就是使用 SHA-256 算法的例子:

通过上面的例子可以看出,无论输入大或者小,输出都是固定256比特的长度。这一特性在处理大量数据和交易时是至关重要的。基于哈希这一特性,我们不用记输入数据是多么大,只需要记住hash值即可。在我们进一步讨论之前,我们首先需要看看哈希函数的各种属性以及它们在区块链中的实现方式。

加密哈希函数

加密哈希函数是一类特殊的哈希函数。为了让哈希函数达到密码安全,需要有以下几个特性:

确定性(Deterministic)

对于同一个输入,无论用哈希函数计算多少次,都会得到相同的结果。

快速计算

对于输入的字符串,能在合理的时间内算出哈希函数的输出,否则会影响系统的性能。

隐秘性

如果我们已知字符串 A 的哈希值是 H(A),那么我们没有可行的办法算出 A 是什么。注意,这里说的是 “不可行” 而不是 “不可能”。 比如下面的例子中,知道输出哈希值是可以算出输入的。

假如我们掷骰子

哈希表与区块链的简单介绍相关推荐

  1. 区块链的简单介绍(一)

    区块链的简单介绍(一) ps:文字有点多,请耐心观看. 区块链是什么 实际上,区块链就是互联网的一部分.平时某宝购物.某团外卖等这些基础就是互联网数据与数据间的传输方式. 区块链是一个集合了密码学.分 ...

  2. 区块链的简单介绍(二)

    区块链的简单介绍(二) 什么是PoW共识机制 所谓PoW机制全称是proof of work,也就是工作量证明.最开始这个技术是被用来解决垃圾邮件的问题.不过后来中本聪发现这个技术能有效解决拜占庭将军 ...

  3. 区块链核心技术简单介绍

    今日对区块链的基础知识进行查缺补漏,参考了几篇文章后,对区块链中的几个核心技术增加了一点了解,给大家分享一下

  4. 【数据结构】人名查询哈希表设计(链地址法)

    文章目录 核心代码 链表节点定义 链地址法处理冲突 查询函数 完整代码下载 核心代码 哈希表使用「链地址法」解决地址冲突的方式,其数据结构就采用 数组+链表 ,数组的每一个元素都是一个链表节点,当地址 ...

  5. 哈希函数在区块链中的应用

    哈希指针 除了保存结构体在内存中的位置还要保存结构体的哈希值. 好处:不只可以找到结构体的位置,还可以检测这个结构体的哈希值. 区块链和普通链表的主要区别就在于用哈希指针代替了普通的指针. 识别区块数 ...

  6. 超详细的【区块链】技术介绍整理(七千余字+九大板块)

    区块链:详细介绍 一.什么是区块链(Blockchain)? 1.定义 2.从不同视角认识区块链 3.用生活中的例子理解区块链 二.区块链的来源 三.区块链的发展阶段 1.酝酿期 2.萌芽期 3.发展 ...

  7. 井通区块链发行通证介绍

    本节介绍井通区块链上发行通证的流程和相关开发相关资源. 一.通证发行流程 1.用户注册 商户需要在井通银关注册账号.井通银关现在改叫互享网: https://www.sharingnetwork.cn ...

  8. 井通区块链数据上链介绍

    井通区块链数据上链介绍 1.概述 本文主要描述井通区块链上通过Memo的方式进行数据上链,以及进行数据上链之后的数据查询等. 基本流程如下: 1) 创建钱包 2) 激活钱包 3) 抽取业务数据 4) ...

  9. 区块链基础(简单学习)

      摘要:2008年,区块链技术走上了舞台.其因去中心化,透明可信等特点受到了科技界的关注,成为了近几年热议的话题.2014年,以太坊平台的出现将区块链技术推到了新的高度.区块链技术采用了分布式账簿, ...

  10. 数据结构几个最简单的阐述完整版(带你入门:链表,栈,队列,哈希表,树)通俗易懂简单明了

    数据结构几个最简单的阐述完整版 一.链表(Linked list): 如下图是一个链表: 1.链表是无须存储在连续的空间内,一般都是分散存储于内存中.(指针是指向下一个数据的内存地址) 2.所有要访问 ...

最新文章

  1. wifidog接口文档(转)
  2. 理解webpack原理,手写一个100行的webpack
  3. Spring 框架所有版本大集合下载
  4. 简单几步搞定ISA ×××
  5. iOS项目开发优秀文章汇总
  6. 有问有答 | AWS使用精华问答,带您开启 AWS 上的云计算之旅!
  7. [leetcode] 24. Swap Nodes in Pairs
  8. 模型可视化工具netron
  9. 【图像配准】基于matlab GUI SIFT图像配准拼接【含Matlab源码 854期】
  10. 模拟生成随机四位GB2312的汉字验证码(python3.X)
  11. 2021-06-02使用Digispark(ATTINY85)制作一个Badusb
  12. 虚拟相机IOS手机端安装教程
  13. 龙讯|LT8911EXB高性能MIPI转EDP分辨率1080P@60
  14. php java 单点登录_用cas来实现php的单点登陆
  15. 红黑树(更高级的二叉查找树)
  16. 计算机应用powerpoint试题,《计算机应用基础》试题二
  17. 世茂集团“加速度”:是激流勇进还是蒙眼狂奔?
  18. linux下socket通信,server和client简单例子
  19. fcn_101代码理解
  20. 前端下载excel表格文件——flie-saver导出类型为csv或者xlsx

热门文章

  1. 3. Javascript 对象
  2. 9. 工作区和暂存区
  3. Struts中 s checkboxlist 的用法
  4. 用Python学分析:集中与分散
  5. SVNKit学习——使用低级别的API(ISVNEditor接口)直接操作Repository的目录和文件(五)...
  6. 烧写树莓派系统,SSH配置,无屏登录流程
  7. java之SpringMVC的controller配置总结
  8. HTML5中的一些新特性
  9. jquery 几个实用的小方法
  10. Java 代码混淆器