近年来,比特币的概念非常流行。然而,“比特币”和“区块链”是非常难以理解的概念。知道它们很容易,但知道为什么很难。诚然,用来构建比特币世界的知识非常广泛,比如密码学、概率论、数据结构、博弈论等等,而这些学科的难度也很大。所以关于比特币的学术文献一般都比较晦涩难懂。而看科普性质的文章,很难用几千字说出比特币的本质。
“详解比特币”系列文章致力于用通俗易懂的方式,详细全面地讲解比特币的原理。
可以断言,比特币是完全基于密码学的,没有密码学就没有比特币。如果理解比特币的难度是五颗星,那么其中四颗在密码学。所以我会用很大的篇幅重点介绍比特币中的密码学原理。本文将介绍soul part ——哈希函数。哈希函数和三角函数一样,是一类函数的统称。SHA1、SHA256和MD5都属于哈希函数。名字再奇怪,也只是一个函数,就像一次函数和二次函数一样。每次输入一个数字,这个函数都会输出一个数字。但无论是哪种哈希函数,其算法本身就非常复杂,无法像线性函数或二次函数那样简单明了地给出一个表达式。直接写出具体算法意义不大,所以本文只描述hash函数的性质。(由于比特币使用的是SHA256,除非下文另有说明,否则哈希函数将SHA256称为特定哈希函数。)
1.哈希函数可以生成内容摘要。
首先拿文献的摘要做类比。任何学术论文都要写摘要,因为学术论文通常很长,很难在短时间内看完整篇文章。当我拿到一个文档,不看全文怎么知道是不是我要查阅的文档?答案是看摘要。一篇合格的摘要具有以下特点:第一,任何文件的摘要都不可能与其他文件的摘要完全相同;第二,摘要必须比文献本身短得多;第三,通过内容总结,肯定可以反向找到这篇文章的全文。可以看到hash函数的属性和内容摘要的属性几乎一模一样。
哈希函数是一种256位二进制输出,由特定算法针对任意长度的二进制输入进行计算。(特别说明:所有计算机使用相同的方法计算哈希函数,即相同的输入,无论哪台计算机计算,输出值都是一样的。)在某种意义上,哈希函数是生成任意二进制数的汇总的函数。
#比特币[超华] # #欧亿OKEx##数字货币#