从零到一学懂区块链(6):哈希函数
零到一学懂区块链:哈希函数
每天学一点区块链,每天get新知识。这个系列以概念普及、名词解释为主,帮助小白迅速入门,同时也是自己的学习笔记。可能做不到日更,但一定持续输出。
01
什么是哈希函数
哈希函数可以将任意长度的消息压缩成固定长度的二进制,其输出值称为哈希值,也叫做散列值。哈希函数是一种单向函数,对于给定的M,很容易推算出X=F(M),但根据X很难算出M。哈希函数的结果长度都是固定的,如SHA256算法长度为64个字符。比特币采用哈希函数中的SHA256算法和RIPEMD160算法(Secure Hash Algorithm)是输出值为256位的哈希算法,一般讨论的比较多。
02
哈希函数能做什么
由私钥经过单向椭圆曲线函数的运算可以得到公钥,公钥经过SHA256和RIPEMD160双哈希运算可以得到地址。对每个区块头进行哈希运算,可以生成一个哈希值,通过这个哈希值,可以识别出对应的区块,区块哈希值可以唯一明确地标识一个区块,可以说区块和哈希是一一对应的。我们知道区块由区块头和区块体组成。区块头包含当前版本号、前一区块地址、时间戳、随机数、当前区块的目标哈希值、Merkle树根值信息。区块体重包含交易计数和交易详情,也就是说每个区块都包含着前一区块(父区块)的哈希值,从而顺次连接成一条区块链。
未来已来,
只是尚未流行。
区块链
03
哈希函数的意义
哈希函数的单向性确保了它在密码学界安全性第一的不可动摇地位,哈希函数的结果无法提取得知,没法优化,也就意味着,得到哈希值的唯一方法是不断尝试,直到出现合适的哈希值,那么谁的算力大,谁就是老大。
总结一下:
1、哈希函数就是一种单向的数学函数,在密码学中起着重要的作用。
2、哈希函数可以由公钥生成地址。
下一节内容:每天学一点区块链——交易
更多相关文章
- 动画:一个底层运行函数的自白!
- 使用Eclipse实现自定义Jmeter函数助手
- Cocos平台 | 快速集成AGC云函数服务
- 正确使用异步函数的姿势[每日前端夜话(0x06)]
- Numpy中Meshgrid函数介绍及2种应用场景
- Python中匿名函数与内置高阶函数详解
- 面试必知必会|理解C++虚函数
- 类和函数傻傻分不清楚?三个例子讲明白
- hive窗口函数/分析函数详细剖析