主页 > imtoken怎么用 > 哈希值和比特币有什么关系

哈希值和比特币有什么关系

imtoken怎么用 2023-09-27 05:11:29

在本文中,我们将首先介绍比特币中使用的加密技术:哈希。什么是哈希?洗牌有点类似于“洗牌”的概念,只不过洗牌的不是一张牌,而是一条数据。这个“洗牌”过程是严格定义的,结果是固定长度的。 常见的哈希算法有MD5、RIPEMD-160、SHA1、SHA256等,不同的哈希算法有不同的“清洗”过程,导致哈希值的长度不同,比如MD5不管根据输入的数据大小比特币有什么价值,最终会产生 128 位的结果,而 SHA256 生成的哈希值将是 256 位。一个好的哈希算法通常需要具备以下特点:

1.输入任意长度的数据,生成的hash值是固定长度的

2.得到哈希值的计算过程很快

3.输入数据的任何变化都会导致哈希值有很大的不同

4.是单向的,可以很方便的输入数据得到hash值,但是从hash值中无法得知原始数据的内容

哈希可以用来做什么?如果安牛今天下班前打了一份500页的重要文件,因为文件很重要,不能带走,如果有人偷偷溜进公司,他怎么知道第二天上班。公司晚上偷偷修改他的文件?简单的方法是获取整个文档的hash值,比如用SHA256得到一个256bits的hash值,然后写在纸上或者其他地方。第二天到公司的时候,直接获取这个文档的hash值,然后按照我昨天下班前得到的256bits hash值对比。如果两者之间存在差异,则表示有人修改了文档。阿牛应该仔细检查文件。如果两者相同,则说明文档没有被修改。小牛可以安心地继续编辑他的文件了。

回来看看为什么一个好的哈希值需要以上四点?

1.定长:因为结果是定长,所以阿牛可以知道准备复印多少张纸,不会长也不会短,不方便比较。如果是程序,设计者可以提前规划好要放置多少空间来放置hash值,而不用担心溢出问题

2.快速得到结果:虽然输入的数据越大,hash计算的时间越长,但是整个过程还是不需要太复杂的计算,所以即使阿牛的文件是500页, 可以快速得到哈希值

3.任何改变都会产生完全不同的结果:即使有人在阿牛的整个500页文档中多加了一个空格,阿牛第二天也能清楚的知道hash值不一样了,第三天这个特性的另一个重要原因是看不到原始数据和哈希值有关联,所以即使原始数据稍有变化,结果也完全不同

4.是单向的:如果小妞今天不小心把纸条掉在电梯里,被别人捡到了,他也不担心重要文件的信息流出,因为不能从哈希值中检索。推送原始数据的内容

哈希被广泛使用。例如比特币有什么价值,当一个网站登录时,密码将被转换为一个哈希值。如果有人检索到信息,密码就不会泄露。一些软件也会提供哈希值。下载后,用户可以通过比较文件hash来了解下载的软件是否被篡改。数字签名还使用散列来减少需要加密的数据。但是,MD5、SHA1 等一些哈希算法已被弃用。

那么哈希值和比特币有什么关系呢?比特币所谓的“挖矿”,其实就是不断的计算hash

直到找到一个合法的哈希值,这个合法的哈希值就是我们在上一篇文章中提到的“幸运草”。在第一篇文章中,我们提到了区块链的一个特点是“难以篡改”,也就是利用哈希值串联创建“链”的概念。任何数据篡改都会使原始合法散列。该值变得非法,导致“链”断裂。接下来说一下比特币“区块”的数据,“挖矿”如何计算哈希值,将“区块”连接成“区块链”。