我们不谈细节,不谈专业,用最简单的白话,带你走进最前沿的技术。

打开网易新闻 查看精彩图片

原始区块链的发展,这两年如火如荼,作为国家重点支持发展方向,就算你不是从业者,也需要对它了解一二。在未来,区块链的应用一定会更加深入你生活的各个角落。今天我们主要要探讨,区块链技术中的最底层的技术之一 - 密码学。密码学让区块链天然地具有安全性。那么你一定会有这样的问题:它到底是怎么来保证安全的呢?它到底有没有局限性呢?本文来一一回答这些问题。

区块链领域用到的密码学技术,简单来说主要分为三大类:加密,认证,识别。他们分别要解决的问题是什么呢?

  • 加密:把机密的原始信息进行数学变换以后,别人即使拿到也读不懂。
  • 认证:机密信息发给别人的时候,别人能够通过检查知道这就是你发的原始信息,而没有在中间被别人篡改过。
  • 识别:对于信息接受者,在接受机密信息的时候,会有一个检查机制,能使得他能知道信息是你本人发出去的,而不是某个冒充你的人发出去的。

接下来我们具体讨论这几个议题:

加密

加密

加密大体分为两种:对称加密和非对称加密。加密的实质就是通过一把钥匙(密钥),把原始信息进行一些数学变换,然后得到加密后的信息。对加密后的信息进行解密恢复成原始信息也需要一把钥匙。

那么,如果这两把钥匙是一样的,就是对称加密;如果这两把钥匙是不一样的,就是非对称加密。不一样的钥匙也能解密?是的,数学变换就是这么神奇。

在很多Web3的应用中,都有“钱包”的功能,“钱包”创建会让你设置助记词,这个助记词,其实就可以理解为某种钥匙。所以在加密的世界,可千万别把钥匙给丢了。就像你真的把你家大门钥匙丢了,别人捡到了,就很轻而易举地打开你家大门了。

而在非对称加密中,两把钥匙并不是对等的。一把称为“私钥”,这个是自己掌管的,一把称为“公钥”,这个是公开给别人知道的。

通过他们的区别,聪明的你一定知道了,对称加密通常是用来保护信息的。而非对称加密,在一定程度上更多地应用于,认证和识别。

认证

认证

要实现这个功能,需要引入一个重要的概念"哈希"或者称为“散列”。听起来是不是有一点高大上?其实,实质上还是数学变换。简单来说,可以把它理解,用数学变换把原始信息打碎揉碎,碾成渣。这个揉碎的方法大家都会。对于同样的原始信息,他们碾碎以后的渣,也是一样的。但是如果你想找到不同的原始信息,他们碾碎以后的渣也是一样的。那就极其极其困难。

因此,对于信息发送者他在发送原始信息时,还会同时发送残渣的信息。接受着,先用揉碎方法把收到的原始信息也给揉碎一边看看和接收到的残渣是否一样,如果不一样,则说明被篡改过。因为篡改的人,没那么个本事造一个不同的原始信息,并且残渣还一样。这就保证了安全。

识别

识别

为了让接收人,能识别发出的信息。发送者需要在发送的同时,对原始信息进行一种叫做“数字签名”的数学变换,从而产生一个“数字签名”。这个数字签名是使用前面提到的“私钥”生成的。由于私钥是自己保管的。所以这个签名只有发送者本人才能生成。接收者在收到信息时,使用私钥对应的公钥对签名进行验证。就可以保证来源的真实性了。

在实际使用中,前面提到的“散列” 和 “签名” 通常是一起使用的。从而一起解决防止篡改和识别的问题。

以上,我们说明了区块链所使用的密码学最基本的原理。其实简单来说,密码学的本质都是数学变换。实际应用中,大多数的算法,都是基于以上原理来进行的。例如区块链中会使用到的同态加密,零知识证明等都是如此。对于非技术人士,我们只要了解密码学之所以成立,之所以能保证区块链的安全,是由于这些加解密,散列,签名等等各种操作,他们都是基于一些“数学困难”问题而设计的。我们即使用计算机也要耗费很多时间,才能破解这些难题。从而保证是安全的。经常有人问我,某某密码能不能破解,我说能啊,给我三十年。哈哈。三十年之后,就算能破解又有什么意义呢?

所以,如果有一天,科技的发展到了出现某种超级的力量,能够在瞬间解决这些数学难题,那么密码学也就瓦解了。区块链也不再安全,你问我多久会出现?也许很快,也许很久。