Nervos 最重要的两个技术优势

新手3/11/2024, 12:30:29 PM
这篇文章从技术的角度,介绍了 Nervos 公链的两大优势——自定义密码学和账户抽象。

自定义密码学

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

加密、解密,在古代就有了,比如很著名的「凯撒密码」。凯撒(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 到指定地址(或另一个邮箱),全程不需要任何「钱包」的参与。

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

声明:

  1. 本文转载自字节元 CKB],著作权归属原作者[字节君],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。

Поділіться

Контент

Nervos 最重要的两个技术优势

新手3/11/2024, 12:30:29 PM
这篇文章从技术的角度,介绍了 Nervos 公链的两大优势——自定义密码学和账户抽象。

自定义密码学

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

加密、解密,在古代就有了,比如很著名的「凯撒密码」。凯撒(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 到指定地址(或另一个邮箱),全程不需要任何「钱包」的参与。

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

声明:

  1. 本文转载自字节元 CKB],著作权归属原作者[字节君],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.