如果你想更多地了解区块链技术和比特币的朋友,你必须爬过技术围栏。从技术的角度,你可以“睁开眼睛”看看比特币在区块链世界的第一次杀手级成功应用,看看中本聪为什么可以被称为外星人。说到区块链技术,就不得不提到一个区块链技术经常用到的知识——hash函数。
哈希函数是一种从任何类型的数据创建小型数字指纹的方法。哈希函数将一条消息或数据压缩成摘要,使得数据量变小,数据格式固定。这个函数混淆数据并重新创建一个称为哈希值的指纹。
如果百度和***真的有别的名字,应该叫(专业到让人看不懂百科)。给哈希函数一个简明的白话定义:哈希函数是一系列复杂的数学变换,有固定数量的输出值。
不能随便改。您应该遵循以下流程:
1.任意长度的内容(数据)
2.在这一系列复杂但固定的数学变换之后
3.将输出固定长度和格式的数据(数值)。
脚注:数学上会用H来表示这个变化后输出的值,中文叫消息摘要或数字指纹。
比如在比特币中,公钥用来生成地址的哈希函数SHA256,后面跟着“256”意味着输出的是固定长度为256位的数据。
这个数学变换不是可以称为哈希函数的任意变换。要将数学变换升级为哈希函数,必须满足三个条件:唯一性、单向和暴力解:
1。哈希函数的唯一性
直观的理解就是:只有输入X,才能得到H(X)。当你理解了这个特性,你就可以把哈希函数理解为你和你的指纹。你是输入,你的指纹是输出。唯一性意味着只有你可以拥有你的指纹。在比特币中,意味着你用来转账的比特币地址只能由你的公钥生成,就像你的指纹是唯一的一样。世界上没有人能生成和你一样的转账地址。
2。单向哈希函数
单向哈希函数意味着H(X)不能反向推导。
如果给你一个指纹,而你只有一个指纹,你无法想象指纹的主人是男是女,长什么样。你只能知道是指纹。
hash函数的单向性可以用一个不准确但很形象的类比来直观理解——猜猜谁拥有下巴?
这种充满男人味的迷人下巴是白拥有的?是张震吗?还是赵又廷?
答案揭晓:是我们最喜欢的坤坤,不是坤,是的农村↓
因为哈希函数是单向的,在比特币中,即使我们的收款地址是公开的,也没有人能知道我们收款地址的公钥是什么,更不用说私钥是什么了。
市场上有一种说法,量子计算机的出现会让比特币变得一文不值,但现在你应该知道,即使量子计算机出现了,仍然很难破解哈希函数,这是中本聪为比特币设置的安全锁。希望比特币有足够的时间升级到反量子加密算法。
3。哈希函数的暴力解
如果知道hash值H(X),真的想求输入值X,只能从源头开始,一次试一个数,每个数都设置到hash函数中,然后看输出hash值是否等于H(X)。
就像如果你真的想知道某个指纹是谁的指纹,那只能靠全世界一个人去找,把每只手里的指纹和这个指纹进行比对,是否一模一样,没有任何偏差。02
因为这三个特点,哈希函数成为了中本聪手中的利器,帮助他解决了很多设计比特币的难题。在比特币***中,除了引言和结语,几乎每一章都可以看到hash函数的使用。
利用哈希函数的唯一性防止欺诈——数字签名
利用哈希函数的唯一性提高效率——利用Merkel树查找交易记录
使用单向哈希函数保密——公钥生成比特币的地址。
用哈希函数的暴力解法设计比特币的工作量证明,当范围足够大时,不可能用指纹找到指纹主人,但如果缩小范围,比如在一个只有几百万人口的城市找到,难度就会小很多。这就是比特币挖矿难度的调节机制。如果你想让它更难,就扩大它,如果你想让它不那么难,就缩小它。
哈希函数出现于1953年,1970年蓬勃发展,2001年出现SHA-256。然而在2008年,hash函数被中本聪发挥出来,成为区块链技术不可动摇的基石。
从这个角度来看,这多少可以理解为什么专家和丹尼尔不禁称赞中本聪的天才,甚至怀疑中本聪是不是外星人。
此时,虽然你只知道比特币***中关于技术原理的一个基础知识哈希函数,但这并不妨碍你理解比特币***中你想表达的50%。
本文来自不择手段投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/504413.html