了解一件事物或者一个人,最好的方式就是先弄清楚它的底层逻辑。
关于区块链的底层逻辑之一:非对称加密,我一直不是很理解,知道最近才想清楚是怎么一回事。
非对称加密解释起来有点绕,把与之相对应的对称加密弄清楚了就好理解什么是非对称加密了。
加密就是暗号技术。
比如说520,很多人都知道这是我爱你的意思。
520=我爱你,这就是一种暗号。不信你问问爷爷辈的那一些人,估计大多数人都蒙圈。
这就是最简单的对称加密。
再比如,外语也是一种暗号。
你点开这篇文章一眼扫过去,文章讲了什么你了然于胸。
但是你的好友Bob也打开这篇文章确实一脸懵逼,因为Bob不懂汉语。
而要是他把这篇文章拿去翻译成英文,那么这个暗号就被破解了,他也就能读懂这篇文章了。
然后Bob觉得这篇文章写得太好了,他用英文也在币乎发布了一篇同样内容的文章。
我在币乎上看到了这篇文章,但是我因为不懂英文,看到了也不知道里面写了什么,直到隔壁老王把内容翻译成汉语给我看,才知道Bob就是把这篇文章改成英文版了。
然后我给Bob点赞并评论:你真有眼光。Bob立马给我回赞:你文章写的真好!
这个段子里有2个暗号的例子:
A)这里的中英文互译,对称加密的特点就是可以互译。
B)我给Bob点赞和评论,潜台词是:你小子赶紧给我回赞。而Bob给我回赞,意思是:合作愉快。
对称加密就好像双行道马路一样,从A到达B,然后可以从B原路返回A。
非对称加密就像单行道
与之对应,非对称加密就像单行道:可以从A到B,但无法从B原路返回A。
再来举个例子。
比如,这篇文章道出了区块链的本质,是篇难得一见的好文章,每个人看了都想点赞。但是这么好的东西我只想给你看,而对其他人保密。
想要做到此文天知地知,你知我知。该怎么办?
除了把我们两个人关在小房间里偷偷面诉之外,就只能对文章进行加密了。且必须做到暗号只能被你破译。
这里就可以用到非对称加密的技术了。
非对称加密的核心技术就是哈希算法。
哈希算法翻译成人话就是,给文件编号。
比如,把“我要点赞”进行哈希(MD5 HASH)之后得出编号:03bb0af6faec2b3ec065cb5384566e40
(MDS HASH 是哈希算法的一种)
记住:每一份文件只有,且只会有一个编号。
比如,把“我要点赞。”进行哈希之后得出的编号就完全不同:9f4cd60d2c0fc8599c03832374910066
仅仅是多了一个句号而已。
现在,你把“我要点赞”这句话加密之后发给我,但我看到的只是一个编码,一脸懵逼,该怎么办?
这时就要理解,公钥和私钥的用法了。
公钥:公开的钥匙,向世界公开的钥匙。只能解锁私钥加密的编码。
私钥:私人的钥匙,只有你自己知道。只能用来解锁公钥加密的编码。
回到例子。
你用我的公钥加密“我要点赞”,然后发到网上去。
其他人想偷窥我俩的秘密,但是打开一看都蒙逼,因为只有用我的私钥解锁才知道了:哦,原来你想给我点赞。
为了表达对你的谢意,我用你的公钥加密了一句话:谢谢你。明晚6点我请你吃饭。
然后也把这句话发到网上去,你收到之后首先一喜:凡语这小子挺有良心的。但转而一想:好像隔壁老王也准备请吃饭啊,这句话到底是凡语发的,还是隔壁老王发的呢。
这时就要用的数字签名的技术了。
我用我的私钥加密“凡语”两个字,附在之前的信息上面。
你用老王的公钥解锁,发现得出的是另外一个编码,然后用我的公钥解锁得到“凡语”两个字,然后便知道这是凡语要请你吃饭。
哈希算法,公钥与私钥,数字签名,这三个部分组合在一起便是区块链的基础加密方式了。
非对称加密的目的
非对称加密的目的:这是你我两人的秘密,天知地知,你知我知。
马云说,未来的能源不是石油而是大数据。
当数据进行交易的时候,对数据的保密就非常重要了。
假如你花了1个亿从腾讯买了一个数据库,而我只花了1百万请一个高手就能把它破译掉,那数据交易就玩不转了。
而大数据的重要性在于能喂养出人工智能,因此能支撑数据交易的区块链技术备受瞩目。
我是凡语,正在拼了老命学习区块链,若有错误之处还望指出。