区块链:Hash——哈希值 / 散列值


    Hash是比特币和一些加密货币中比较重要的概念,常用的英文定义是哈希值或散列值。它是由一种数学函数针对指定的输入,只要输入内容不变,就会生成唯一的输出,这个输出被称为Hash,通常是字符串或一串由16进制数字代表的字符串。
    Hash函数一般是取任意的字符串,将其随机的打乱,然后从中产生出一个比原输入更短的字符串或数字,这就是hash函数的功能和介绍。计算出hash函数的值的操作过程所,也叫做hash函数计算过程。
    Hash在比特币和区块链技术中用处比较多,可以说Hash函数是区块链技术的基础,它可以被用来保护数据的安全,返回固定长度的Hash值可以有效防止数据比对、数据认证和实名认证等应用程序的篡改。这就是Hash函数和哈希值在比特币正确工作中所起到的作用。
    举个例子,比如你要在比特币区块链上发送的交易数据,其前面要先进行签名,就是有私钥和公钥进行如下签名:交易数据+私钥=签名。签名就是“你”的鉴定,只有你私钥的人才能够给你签名,而其他人没有你的私钥是没有办法给交易数据签名的。
    将交易数据签名后,这些签名数据+原本的数据就可以经过hash函数进行加密,这样就形成了一个数字指纹,这个数字指纹就是所谓的哈希值,它是唯一的,只要你的数据没有变化,这个Hash 值就是恒定的,一旦这个Hash值发生变化,比如你修改数据中的一小部分,整个Hash值(数字指纹)就会发生变化。这就可以避免不少的问题,比如数据篡改或数据滥用就可以有效防止了。
    使用哈希函数,只需要对原始数据的变更进行校验就可以做到密码一致性,因为任何变更都会导致Hash值的改变,这样就能够保证原始数据安全,也能有效的签署文件,保证文件内容的准确性。所以可以看出,Hash确实是比特币区块链发展的利器,它不仅仅是密码学上的一个实际应用,更是衍生出数字签名的一种基本技术,在比特币交易利用频率也非常高。