查看原文
其他

Nervos 最重要的两个技术优势

字节元 CKB 2022-07-15

大家好,我是字节君!

今天,字节君将给大家分享一篇来自雷兔科技(Lay2 Tech)创始人知县写的文章。这篇文章从技术的角度,介绍了 Nervos 公链的两大优势——自定义密码学账户抽象

因为原文特别「硬核」,很多小伙伴阅读时可能会很吃力,所以字节君将这篇文章进一步「大白话」了。如果想看原文,大家可以直接点击文末的「阅读原文」,或者将以下链接复制到浏览器中:
https://www.notion.so/Nervos-12ad576799204533b9f706476239ed3c


自定义密码学

字节君先给大家科普下什么是密码学。简而言之,密码学就是研究如何加密、如何解密的科学

加密、解密,在古代就有了,比如很著名的「凯撒密码」。凯撒(Caesar)是罗马帝国的奠基者,被一些历史学家视为罗马帝国的无冕之皇,有「恺撒大帝」之称。事实上,恺撒本人还十分热衷于密文写作。

在高卢(今法国南部)战争期间,凯撒不仅把敌人打得落花流水,还建立了广泛、深入的情报网。在高卢战争的记载中,提到了他的好友、罗马将领西塞罗被包围时,如何将消息通过密文传递给他。恺撒用密文的形式,是为了避免「当消息被敌人截获时,我们的对策不会被敌人发现」。

这个经典的密文是「VIMRJSVGIQIRXW SRXLI AEC」,通过一个四位的移位完成加密,比如首字母 R+4=V。破译密文后,得到的明文为「REINFORCEMENTS ON THE WAY」,也就是「援军就在路上」。

所以,恺撒密码其实就是通过将明文中的字母,按照固定的数字向后推移,进行加密。

随着时代的发展,加密、解密逐渐演变成一门科学——密码学。在区块链出现之前,密码学就在互联网中有非常多的应用了,比如最出名的非对称加密算法 RSA。在这里,字节君先给大家科普下什么是对称加密,什么是非对称加密。

对称加密,指的是加密和解密都用同一把密钥。做个类比帮助大家理解,我们把加密类比成上锁,解密类比成开锁。对称加密,就是上锁和开锁,用的都是同一把钥匙。所以,其缺点是,交易双方都使用同样的钥匙,安全性得不到保证。

非对称加密,有两把密钥,其中一把为公开密钥(公钥),另外一把为私有密钥(私钥)。这就好比一把锁有 A、B 两把钥匙,其中上锁需要用 A 钥匙,开锁需要用 B 钥匙。

RSA 加密算法,就是一种非对称加密算法。很多互联网协议之前都使用 RSA,现在 RSA 也是各个浏览器、Email 协议里使用最广泛、兼容性最好的非对称加密算法。

互联网之所以能发展到现在的规模,兼顾安全和便利,都与大量使用密码学分不开。比如,浏览器里几乎都有的算法 SubtleCrypto,甚至在小程序环境下都能使用;而 2019 年成为 W3C 推荐标准的 WebAuthn 算法,更是让浏览器的密码学强大到堪比硬件钱包,而使用上又非常便利(可以通过指纹、扫脸等方式解锁)。

回到区块链上,如果能直接使用这些互联网的密码学基础设施,而不是要求用户去下载钱包插件、App,自己走流程保管助记词,dApp 的用户门槛就可以大幅度降低。

然而,主流区块链的密码学一般都是底层写死的,比如:

这些区块链的签名算法,与主流互联网用的密码学体系不兼容,没法直接使用,只能依靠重新铺设的设施。

Nervos CKB 公链的不同之处,就在于大家可以使用自定义的密码学,并没有在底层将密码学写死。这就意味着,你在 Nervos 上开发应用,可以使用主流互联网用的密码学体系,甚至直接调用现有的互联网基础设施。

具体来讲,Nervos CKB 的虚拟机能够直接在应用层(智能合约里)部署密码学,这样我们就可以把上面提到的非对称加密算法 RSA、SHA-256 等等都部署上去。这就给使用现有的基础设施打下了基础。但是,只有这一点还不够,还需要 Nervos 的下面这个能力——账户抽象


账户抽象

「抽象」这个词本身就很抽象。

抽象本身是比较技术的词,有两个解释,我们只要关心第一个:所谓抽象是一个过程,我们把特殊性从一个系统里去掉,然后从系统里创造出一般性、普遍性。这是一般化的过程,通过去掉特殊的设计,把共性找出来,让系统可以变得更加一般化,可以适用于更多的场景。

这个解释可能还是很抽象,大家要记住的关键词是去掉「特殊性」,把「特殊性」从系统里去掉,在系统里找到更多共性,把共性的东西放在设计里,创造「一般性」

用一个不是那么区块链的例子解释一下。大家可能玩过游戏厅里的大型街机。如果你了解这种机器的话,你就知道每一台机器其实对应一个游戏。对于街机来说,系统设计是从软件到硬件一体的设计,所有设计都是围绕一个目的服务的,就是这一款游戏。当我们需要创造另一个新游戏的时候,我需要另外设计一台新的机器,所以游戏厅里摆了十台、二十台机器,每台机器是不同的游戏。

游戏行业发展到今天,最流行的东西已经不是街机了,更多的是像 XBox 这种通用的游戏平台。XBox 是一般化的设计,你可以为 XBox 设计各种各样的游戏,而后你只可以购买不同的游戏就可以在这一个系统上运行去玩。

所以,从街机到 XBOX 就是一般化的过程。从另外一个角度来说,XBox 是抽象层次更高的设计,可以适用更多的场景,里面为每一个特定游戏所打造的特殊东西很少很少,几乎没有。正是因为它没有那些特殊的细节,在这个平台上的开发者才能填补细节,才能让平台能够适应各种各样的需求。

回到 Nervos CKB 上。CKB 公链的第二个技术优势,就是账户抽象。所谓账户抽象,是指将区块链账户(地址)的解锁逻辑一般化的能力。

目前,主流区块链的解锁逻辑都比较简单、直接,而且是协议层级写死的。举个例子,BTC、ETH,都是根据交易体和签名还原出公钥,再按照既定规则把公钥转换成地址,最后与待解锁地址匹配,一致则解锁成功,否则解锁失败。

这种写死的逻辑,没办法适应一些更宽泛的情况,比如签名中有 client 相关数据内置,甚至签名不是针对交易本身的。为了方便理解,我们做个类比,主流区块链的解锁逻辑跟机械门锁一样,只能用一种方式打开账户的门。

在底层实现了账户抽象能力的 Nervos,相当于是拥有了电子锁,它的解锁逻辑可以通过密码、指纹、蓝牙、NFC 等等。举个例子,我们可以做到用 Email 的密码学解锁,然后按照 Email 中的指令执行合约,最简单的例子就是可以用发邮件的方式直接发送 CKB 到指定地址(或另一个邮箱),全程不需要任何「钱包」的参与。

这就是账户抽象带来的好处。

推荐阅读:区块链抽象和互操作性 2.0


   



END





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存