找回密码
 立即注册
搜索

巨鲸数字-区块哈希值-区块链基础:什么是哈希?

哈希是将任意长的输入编程加密的固定长度输出的过程。哈希并不等同于加密方法,因为无法解密哈希值来获取原始数据。事实上哈希是一种单项加密函数。
有了哈希函数,就可以将互联网上的数据以固定长度字符串的形式来保存。其中一种方法就是SHA-256(安全哈希算法-256位),SHA-256是SHA-1的后继者,SHA-1的输出是160位的,它有三个特点:
第一、它具有单向性。
我们只能够把长的数据计算成一个短的哈希,我们不可能把哈希再推导出原来的数据,很多人很好奇区块链是怎么形成,比如区块打包以后,区块就会被计算出一个哈希,哈希会存放到下一个区块当中,下一个区块里面的哈希就把上一个区块给锁定了这就是传统中的哈希锁定,区块链的不可更改就是从这里面来的,因为是前面的区块更改了,后面区块里面存在哈希就不能够对应了,所以区块链它是每一个区块都对上一个区块进行的内容的锁定,这就是哈希锁定。



第二、哈希具有唯一性。
哈希的唯一性就是我们把一个长的数据变成一个哈希数据,每一个长的数据它变成的哈希数据都是唯一与之对应的,但是这句话是有问题的,因为把长数据变成短数据,或者是把长的文件变成一个短的哈希,那在科学上,它是有一定的概率会形成相同的哈希的,只是概率极低极低,哈希有唯一性就是这么来。
第三点、哈希具有离散性。
离散性就是我们两个非常相近的文件,或者是我们两个只相差一位数的一个长数据,我们计算出来的哈希它的数值是天壤之别,是没有任何相似地方的,哈希的离散性主要是为了规避一些有特征的攻击。
如果们的两个文件相差只有那么一丢丢,如果计算出来的哈希也很相近,它是更容易遭受到攻击的,所以正常的哈希它有这三个特点,哈希它的长度是32个字节,每个字节是八位数,现在通用的哈希都是256位数字,哈希的数值就是0-2的256次方,那2的256次方大概是多大,它比全宇宙的原子数量还要多。
哈希我们可以把它理解为是一个长数据或者是一个大的数据的一个指纹,哈希的用法我给大家归纳了三种:
第一、它可以加快原始数据的比对效率。
以及在区块链里面验证我们的状态数的效率。比如以太坊的账户中我们每个人的账户剩了多少钱,都在账户里面显示,每个节点的结果要是一致的,一致比对起来就很麻烦,我们通过生成哈希来比对的话,那验证起来就很简单了。
第二、哈希还可以用于签名。
大的文件和大的数据直接对他进行加密是很复杂的,所以说我们把大的数据和文件直接计算出一个哈希出来,然后我对哈希进行签名,签名之后,我就得到一个数字签名,然后大家可以利用我的公钥这解开数字签名,他就可以得到相应的哈希,然后和之前签名的哈希进行比对,大家就可以知道这个签名是我做的了。
第三、它还可以应用到挖矿当中。
应用到挖矿当中,我们拿比特币来进行举例,大家知道我们每个节点存的区块数据都是一样的,一样的区块得出的哈希就是一样的,这样的话就没有办法确认谁来拿到奖励。
为了解决该问题,中本聪设计了个方案:
在每个区块里面,它控制了一个小的空格,这小的空格你可以自己填数据,你自己填数据,每个人计算出来的哈希不一样,因为哈希具有离散性,所以挖矿的原理就是系统规定你计算出的哈希在某个范围以内,你就可以获得出块权,我们的矿机就在不断的修改我们区块的数值,不断的计算出哈希,那就力求计算出来的哈希符合系统的要求,以此来获得出块权

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册