从零到一学懂区块链:哈希函数
每天学一点区块链,每天get新知识。这个系列以概念普及、名词解释为主,帮助小白迅速入门,同时也是自己的学习笔记。可能做不到日更,但一定持续输出。
01
什么是哈希函数
哈希函数可以将任意长度的消息压缩成固定长度的二进制,其输出值称为哈希值,也叫做散列值。哈希函数是一种单向函数,对于给定的M,很容易推算出X=F(M),但根据X很难算出M。哈希函数的结果长度都是固定的,如SHA256算法长度为64个字符。比特币采用哈希函数中的SHA256算法和RIPEMD160算法(Secure Hash Algorithm)是输出值为256位的哈希算法,一般讨论的比较多。
02
哈希函数能做什么
由私钥经过单向椭圆曲线函数的运算可以得到公钥,公钥经过SHA256和RIPEMD160双哈希运算可以得到地址。对每个区块头进行哈希运算,可以生成一个哈希值,通过这个哈希值,可以识别出对应的区块,区块哈希值可以唯一明确地标识一个区块,可以说区块和哈希是一一对应的。我们知道区块由区块头和区块体组成。区块头包含当前版本号、前一区块地址、时间戳、随机数、当前区块的目标哈希值、Merkle树根值信息。区块体重包含交易计数和交易详情,也就是说每个区块都包含着前一区块(父区块)的哈希值,从而顺次连接成一条区块链。
未来已来,
只是尚未流行。
区块链
03
哈希函数的意义
哈希函数的单向性确保了它在密码学界安全性第一的不可动摇地位,哈希函数的结果无法提取得知,没法优化,也就意味着,得到哈希值的唯一方法是不断尝试,直到出现合适的哈希值,那么谁的算力大,谁就是老大。
总结一下:
1、哈希函数就是一种单向的数学函数,在密码学中起着重要的作用。
2、哈希函数可以由公钥生成地址。
下一节内容:每天学一点区块链——交易
可乐
我是可乐,在学习区块链的道路上前行
记录每天学到的一点知识
一起学习,共同成长
领取专属 10元无门槛券
私享最新 技术干货