零到一学懂区块链:哈希函数

每天学一点区块链,每天get新知识。这个系列以概念普及、名词解释为主,帮助小白迅速入门,同时也是自己的学习笔记。可能做不到日更,但一定持续输出。

01

什么是哈希函数

哈希函数可以将任意长度的消息压缩成固定长度的二进制,其输出值称为哈希值,也叫做散列值。哈希函数是一种单向函数,对于给定的M,很容易推算出X=F(M),但根据X很难算出M。哈希函数的结果长度都是固定的,如SHA256算法长度为64个字符。比特币采用哈希函数中的SHA256算法和RIPEMD160算法(Secure Hash Algorithm)是输出值为256位的哈希算法,一般讨论的比较多。

02

哈希函数能做什么

由私钥经过单向椭圆曲线函数的运算可以得到公钥,公钥经过SHA256和RIPEMD160双哈希运算可以得到地址。对每个区块头进行哈希运算,可以生成一个哈希值,通过这个哈希值,可以识别出对应的区块,区块哈希值可以唯一明确地标识一个区块,可以说区块和哈希是一一对应的。我们知道区块由区块头和区块体组成。区块头包含当前版本号、前一区块地址、时间戳、随机数、当前区块的目标哈希值、Merkle树根值信息。区块体重包含交易计数和交易详情,也就是说每个区块都包含着前一区块(父区块)的哈希值,从而顺次连接成一条区块链。

未来已来,

只是尚未流行。

区块链

03

哈希函数的意义

哈希函数的单向性确保了它在密码学界安全性第一的不可动摇地位,哈希函数的结果无法提取得知,没法优化,也就意味着,得到哈希值的唯一方法是不断尝试,直到出现合适的哈希值,那么谁的算力大,谁就是老大。

总结一下:

1、哈希函数就是一种单向的数学函数,在密码学中起着重要的作用。

2、哈希函数可以由公钥生成地址。


下一节内容:每天学一点区块链——交易


©著作权归作者所有:来自51CTO博客作者mb5fe18f5282239的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 动画:一个底层运行函数的自白!
  2. 使用Eclipse实现自定义Jmeter函数助手
  3. Cocos平台 | 快速集成AGC云函数服务
  4. 正确使用异步函数的姿势[每日前端夜话(0x06)]
  5. Numpy中Meshgrid函数介绍及2种应用场景
  6. Python中匿名函数与内置高阶函数详解
  7. 面试必知必会|理解C++虚函数
  8. 类和函数傻傻分不清楚?三个例子讲明白
  9. hive窗口函数/分析函数详细剖析

随机推荐

  1. Android下SQLite数据库编程学习系列之二-
  2. Android中的MVC、MVP、MVVM
  3. 用PHP编写Android应用程序
  4. Android—最新版Android studioSDK下载与
  5. 《Android移动应用基础教程》(Android Stu
  6. (三)Android事件分发机制 - Activity篇
  7. [置顶] 总结的一些android公共库
  8. Android ADT插件配置
  9. 将要更新到android 4.0的手机列表
  10. 在 Android 4.1上,分析 input -- android