哈希算法、非对称加密是什么?
AITD专栏~
哈希算法是什么?
区块链的四大核心技术分别是密码学、分布式账本、共识机制以及智能合约。而密码学作为其中最重要的一部分,可以说是区块链的基石,而其他技术是以密码学为地基,才能搭建出区块链这座高楼大厦。
区块链主要应用的密码学算法有两个部分:一个哈希算法,另一个是非对称加密。
简单来说,哈希算法就是一种特殊的函数,不论输入多长的一串字符,只要通过这个函数都可以得到一个固定长度的输出值,这就好像身份证号码一样,永远都是十八位而且全国唯一。哈希算法的输出值就叫做哈希值。
哈希算法有三个特点,它们赋予了区块链不可篡改、匿名等特性,并保证了整个区块链体系的完整。第一个特点是具有单向性。比如输入一串数据,通过哈希算法可以获得一个哈希值,但是通过这个哈希值是没有办法反推回来得到输入的那串数据的。这就是单向性,也正是基于这一点,区块链才有效保护了我们信息的安全性。
哈希算法的第二个特点是抗篡改能力,对于任意一个输入,哪怕是很小的改动,其哈希值的变化也会非常大。它的这个特性,在区块与区块的连接中就起到了关键性的作用。区块链的每个区块都会以上一个区块的哈希值作为标示,除非有人能够破解整条链上的所有哈希值,否则数据一旦记录在链上,就不可能进行篡改。
哈希算法的第三个特点就是抗碰撞能力。所谓碰撞,就是输入两个不同的数据,最后得到了一个相同的输入。就跟我们逛街时撞衫一样,而坑碰撞就是大部分的输入都能得到一个独一无二的输出。在区块链的世界中,任何一笔交易或者账户的地址都是完全依托于哈希算法生产的。这也就保证了交易或者账户地址在区块链网络中的唯一性。
无论这笔转账转了多少钱,转给了多少个人,在区块链这个大账本中都是唯一的存在。它就像人体体内的白细胞,不仅区块链的每个部分都离不开它,而且它还赋予了区块链种种特点,保护着整个区块链体系的安全。
那什么是非对称加密呢?
简单来说,非对称加密就是用来对内容进行加密的一种特殊方法,我们日常生活中总用到的钥匙跟锁,其中开门用的钥匙,在密码学中就被称之为“密钥”。而像这种单独只有一个密钥,既用于加密有用于解密的方式被称为对称加密。
而所谓的非对称加密就是加密时会产生两个密钥,最核心的被称为私钥,它是由用户自己保管的,另一个会被公开出来,叫做公钥。
它们有个特点,私钥加密的内容通过公钥可以解密读取出来,反之通过公钥加密的内容,也可以由私钥解密读取出来。这就好像双胞胎的心灵感应一样,非对称加密的区块链中的主要用途并不是为了保护内容的隐私性,而是为了防止身份被冒充。
当我们在区块链网络上进行了一笔交易时,我没有办法确定交易的是不是你本人,这个时候就可以让你的私钥加密一段内容作为数字签名发过来,然后我通过已经公开的公钥进行破解。因为私钥只有你本人保留,如果我能用与之对应的公钥成功破解,说明是你本人在进行交易操作。如果不能破解,则说明是别人盗用了你的身份。以此就解决了“我是我”以及"这是我在交易"的问题。
总的来说,密码学是区块链网络中最基础的存在,它不仅保护了整个网络的安全,更解决了很多交易中的证明问题。
或许随着量子计算等新技术的出现,有人会质疑它的安全。但要知道,密码学也在随时代而进步,要是真的到了量子计算商用的那一天,区块链的密码学也一定会随着时代的发展变得更加安全。