《OK区块链60讲》是由OKEx&新浪科技联合出品的区块链科普动画视频,针对区块链零基础用户,通过系列文章、科普动画等形式,从概念、技术、应用等角度,通过5大板块,60个知识点,生动形象地科普区块链概念。本集课程内容由币信合伙人熊越导师指导完成。
哈喽大家好,我是小K君。今天我们要讲的内容是:“区块链中的密码学(上)”。
我们之前讲过,区块链的四大核心技术分别是密码学、分布式账本、共识机制、以及智能合约。而密码学又是其中最重要的一部分,因为密码学保护区块链体系的安全,它可以说是区块链的基石,其它技术正是以此为基础,才搭建出区块链这座高楼大厦。
区块链主要应用的密码学有两个部分,一个是哈希算法,另一个是非对称加密。而这节课,小K君主要讲一下,区块链密码学中的“哈希算法”是什么?
简单来说,哈希算法就是一种特殊的函数,不论我输入多长的一串字符,只要通过这个函数,都可以得到一个固定长度的输出值。就好比我们的身份证号码一样,无论你是北京人、还是上海人,每个人的身份证号码都是18位而且全国唯一。
同理,哈希实际也是一种压缩映射,它可以把任意长度的输入变换成固定长度的输出。永远都是固定256比特的长度。这个得到的输出值就叫做哈希值。
哈希算法有三个特点,分别是单向性、抗篡改和抗碰撞,它们赋予了区块链不可篡改、匿名等特性,并保障了整个区块链体系的安全。
先说第一个特点,单向性。所谓的单向性,就是指在哈希函数中,由输入可以得到输出,但通过输出却几乎不可能反推回输入。比如,我们输入已知字符串 A ,得到哈希值是F(A),但是我们通过这个哈希值F(A),却没有办法反推回来得到我们输入的数据。
区块链在数据打包成区块的过程中,数据都会通过哈希算法进行加工,正是基于哈希算法的单向性,区块链才有效保护了我们信息的安全性。
哈希算法的第二个特点是抗篡改能力。所谓的抗篡改能力就是指,对于任意一个输入,哪怕是很小的改动,比如一个标点符号,其哈希值的变化也会非常大。
它的这个特性在区块与区块的连接中,就起到了关键性的作用。
区块链的每一个区块,都会以上一个区块的哈希值作为标识,通过哈希算法再进行加工,这样后面区块不仅可以查找到前面的所有区块,也可以验证前面区块数据有没有被更改,除非有人能破解整条链上的所有哈希值,否则,数据一旦记录在链上,就不可能被篡改。
哈希算法的第三个特点是抗碰撞能力。所谓碰撞,就是输入两个不同的数据,最后得到了一个相同的输出结果,就跟我们逛街时候撞衫一样。
而抗碰撞,就是对于大部分的输入,都能得到一个独一无二的输出。注意,这里只能说出现碰撞的概率极低,但不意味着不存在碰撞,因为现存的任何一种哈希算法在概率学上都是无法证明不会发生碰撞的。
哈希算法的第三个特点主要应用在区块链的账户地址中,在区块链的世界中,任何一笔交易或者账户的地址都是完全依托于哈希算法生成的,这样做的目的就是保证交易或者账户地址在区块链网络中的唯一性,无论我这笔转账转了多少钱或转给了多少个人,在区块链这个大账本中都是唯一的存在。
总的来说,哈希算法在区块链技术中是最基础的存在,它就像是我们体内的白细胞,不仅区块链的每个部分都离不开它,而且它还赋予了区块链种种特点,保护着整个区块链体系的安全。
感谢熊越老师对本集内容的帮助和指导。