知识库
返回
Nervos·
4 mins
270 views
Common Knowledge Base (CKB):区块链开发者的梦想

Nervos 的 Layer 1 区块链,即 Common Knowledge Base(共同知识库),允许开发者使用自己的密码学原语并构建具有卓越用户体验的去中心化应用程序,这是在任何其他链上不可能实现的。

cover

许多有意构建去中心化应用程序(dApp)的潜在区块链开发者很快就会发现,当前的区块链开发环境相当缺乏灵活性。目前,几乎不可能构建出与 Web2 应用程序相媲美、具有出色用户体验的应用程序或 DeFi 类应用。这主要有两个原因。首先,特定区块链社区缺乏灵活性,这常常使非传统开发者感到困惑;其次,大多数区块链面临技术限制的挑战。

因此,如今基于比特币进行开发实际上是不可想象的。比特币的技术限制,也就是缺乏智能合约功能,导致了更为复杂的去中心化应用程序无法开发。此外,更重要的是,比特币的核心开发人员以及广大的投资者社区认为该协议非常僵化,给潜在的系统开发人员留下了极少的实验空间。另一方面,以太坊社区对开发人员非常开放,但它以及其他所有 Layer 1 区块链的技术瓶颈严重地限制了开发人员可以构建的应用程序的范围。

Nervos 认识到要让下一个十亿用户加入 Web3,就需要消除这些技术限制,所以 Nervos 网络的 Layer 1,即共同知识库(CKB),被设计成尽可能灵活和基础。在 CKB 上,开发人员可以自由地进行实验和构建,创造出与 Web2 产品相媲美甚至超越的 Web3 应用程序。区块链开发人员可以将自己的密码学原语引入 CKB 并构建出其他区块链上无法实现的创新型应用程序,而不需要受到其他链所强加的严格限制。

为了理解这是如何实现的以及它在实际中的意义是什么,有必要先了解 CKB 与其他所有区块链之间的根本区别。

CKB vs. 传统的区块链项目

CKB 与其他传统区块链的主要区别在于,后者将密码学原语嵌入到共识层,而 CKB 将其合并到智能合约层。尽管这个差异表面上看起来微不足道,但从开发者的角度来看,却有着巨大的不同之处。

以比特币和以太坊为例,在这些区块链上创建用户账户需要管理一组密钥。例如,在比特币中,通过将私钥作为输入,使用 Secp256k1 标准的单向椭圆曲线进行推导,得到公钥,再经过 SHA-256 和 RIPEMD-160 哈希函数处理该公钥,获得比特币地址,最后通过 Base58 校验编码算法将地址以更简洁的形式呈现。同样地,以太坊地址的导出方法涉及到私钥,使用 Secp256k1 标准进行椭圆曲线推导得到公钥,然后使用 Keccak-256 哈希函数对该公钥进行哈希处理,输出哈希处理结果的最后 20 个字节,以获取地址。

无论是在比特币还是以太坊中,SHA-256、RIPEMD-160、Secp256k1 和 Keccak-256 等密码学原语都嵌入在共识层中。如果有人想要更改这些原语,比如替换以太坊和比特币公钥的哈希算法 Keccak-256 或 SHA-256,或者使用不同的椭圆曲线导出公钥,那么唯一的方法就是提交比特币或以太坊的改进提案(BIP/EIP),并希望该提案能够通过硬分叉在各自的区块链上实施。然而,通过硬分叉改变区块链协议的规则是一个非常有争议和漫长的过程,通常需要数年的时间才能实现,这使得不被支持的密码学原语无法在实际操作中使用。

诚然,随着时间的推移,以太坊添加了更常用的加密算法,但只是通过预编译的方式。换句话说,EIP-196 和 EIP-197 的引入是为了更高效地在以太坊中使用 zk-SNARK(一种隐私增强技术,可以在不泄露数据本身的情况下验证数据)。验证 zk-SNARK 证明需要大量的计算能力,如果直接在智能合约层完成,成本将非常高。为了降低成本并提高效率,zk-SNARK 加密算法的基本组件(如椭圆曲线加法、乘法和配对验证)通过硬分叉作为预编译添加到以太坊虚拟机(EVM)。这意味着这些密码学原语直接由节点执行,而不是作为区块链上智能合约的一部分,从而降低了计算成本。然而,这也意味着在实践中使用不在预编译算法范围内的加密算法是不可能的。

这些区块链中密码学原语使用方式的固化给开发者带来了很大的限制。在大多数情况下,应用程序开发者无法摆脱这些限制,不得不做出妥协,最终可能会以某种方式限制用户体验。例如,以太坊最近实施了ERC-4337,这是一种向后兼容的更新,允许创建智能合约钱包,并可以定义自己的交易验证和执行逻辑,从而利用各种签名方案、椭圆曲线和签名协议。然而,ERC-4337只允许应用程序级账户抽象,将智能合约账户或钱包视为二等公民。

即使有了 ERC-4337 的更新,唯一能在以太坊上发起交易的账户类型仍然是外部账户(EOA),它与 EVM 的硬编码规则相关,并且只能使用预编译的密码学原语。

可以说,账户抽象本质上是必须在协议层实现的东西。尽管 ERC-4337 提供了无需许可和去中心化的社交恢复和第三方 gas 代付的方法,但它无法实现真正的账户抽象,其中交易可以从不同类型的主体发起,如 zk-SNARK 的状态转换,并引入了新的复杂性以及中继器、付款人和替代内存池的开销。

CKB 是一块空白画布

其他链(例如以太坊)类似于预先绘制的模板,应用程序开发者只能在预编译的边界内进行开发;而 CKB 则是一块空白画布,为开发人员提供了终极自由。

CKB 的虚拟机 CKB-VM 没有预编译,这意味着哈希函数和签名方案不会事先嵌入其中,而是在应用程序级别或与应用程序开发者创建的智能合约相同的环境中运行。CKB 采用的记账模型被称为 Cell 模型,它是比特币 UTXO 模型的更通用版本。存储在 Cell 中的数据没有强制规定的内部结构,完全由开发人员自行决定。Cell 模型具备与以太坊账户模型相同的编程/智能合约功能(并具备更好的扩展能力),但没有任何限制。

alt_text

CKB 基于 RISC-V 的虚拟机和 Cell 模型具有许多优势。首先,它们的高度泛化或抽象特性为开发者在构建区块链应用程序方面提供了更多选择。CKB-VM 可相对轻松地运行 CosmWasm 或基于 EVM 的虚拟机,使开发者能够在他们已经熟悉的环境中构建可互操作的去中心化应用程序。此外,CKB 支持所有编程语言,这意味着开发者可以使用他们已经掌握的任何语言进行编码。例如,CKB 的开发者最近成功地将 Lua 5.4 集成到 CKB-VM 中,允许开发者在 CKB 上运行独立的 Lua 编译器或将 Lua 代码嵌入到 CKB 主合约中,大大降低了链上合约的开发门槛。

简而言之,CKB 的虚拟机和记账模型具备无与伦比的灵活性,意味着开发者可以构建比其他链上应用程序更出色的去中心化应用程序和 DeFi 类应用,提供更卓越的用户体验。CKB 上的开发人员不再局限于使用现有的预编译密码学原语,也不需要等待通过硬分叉在协议级别编译新的密码学原语,而是可以自行使用和安装密码学原语,就像添加插件一样,而无需进行任何共识层的更改。例如,开发人员可以在 Cell 中部署以太坊的 Keccak-256 哈希函数(类似于在以太坊上部署智能合约),并构建支持该函数的加密库,从而在 CKB 上构建一个能够验证以太坊签名的去中心化应用程序。实际上,Lay2 团队在 2020 年就成功地实现了这一点,他们对 Secp256k1 和 Keccak-256 库进行了集成,成千上万的 CKB 持有者通过 ckb.pw 钱包,使用以太坊地址实现了存储和收发 CKB 的功能。

目前,.bit 和 JoyID 是利用 CKB 无与伦比的灵活性和互操作性构建的去中心化应用程序的代表。

.bit

.bit 协议是基于 CKB 构建的最具创新性的应用程序之一,它展示了 CKB 跨链灵活性和兼容性的真正潜力。.bit 是一个跨链的 Web3 数字身份协议,使用户能够将人类可读的名称(如 “Nervos.bit”)映射到机器可读的标识符(如区块链地址)。

与以太坊 ENS(以太坊域名服务)等其他数字身份协议相比,.bit 在兼容性方面具有显著优势。ENS 仅支持以太坊地址,但 .bit 允许用户使用(理论上)任何公链地址甚至电子邮件来注册和管理其账户。这意味着用户可以使用狗狗币、比特币或任何其他公链地址创建和管理 .bit 账户,并在多个链上无缝地使用它们。除了管理数字身份之外,.bit 用户还可以在其 .bit 账户中存储各类信息,包括 PGP 公钥、Magnet URL 方案、智能合约地址、软件 MD5 哈希值、个人介绍等等。

从本质上讲,.bit 是一个拥有自我主权的数据容器,用户可以将其用作全方位的 Web3 帐户。由于 CKB 支持所有的密码学原语,因此可以使用各种公共链的密钥对或 Web2 应用程序的常见登录方法(例如 FaceID、指纹、Apple Passkey 等)来访问 .bit 账户。

JoyID

CKB是业界少数具备协议级账户抽象的 Layer 1区块链之一。在实践中,JoyID 是一个非常具有代表性的应用。JoyID 是一个构建在 CKB 上的非托管、跨平台、无密码、无助记词的加密钱包。它允许用户拥有和管理加密货币,无需创建和保管密码或助记词,因此提供了比其他加密钱包更好的用户体验。

CKB 的高度通用化或者说 “抽象” 设计,使 JoyID 能够利用 WebAuthn 广泛使用的 Secp256r1 (P256) 签名算法,而不是通常被硬编码的 Secp256k1。WebAuthn 这项技术得到了主流操作系统的完全支持,包括 MacOS、Windows、Linux、ChromeOS、iOS 和 Android。它能够在用户设备的可信执行环境(TEE)中创建密钥对,并使用私钥进行交易签名,同时确保私钥永远不会泄露。在签名授权过程中,需要进行本地认证,可以通过生物识别或 PIN 码实现。

通过使用 WebAuthn,JoyID 将普通移动设备转变为无需密码的冷钱包,创造了一个尽可能安全且用户友好的加密钱包体验。这是以前从未有过的创新,而且在其他任何 Layer 1 链上都是不可能的。此外,JoyID 还享受 CKB 协议级账户抽象的所有优势,包括社交恢复和多重签名账户的可能性。

写在最后

CKB 已经证明了自己是区块链行业中的游戏规则改变者。它为开发者提供了无与伦比的灵活性和自由度,使他们能够构建以往被认为无法实现的去中心化应用程序。通过将密码学原语移至应用层,并提供高度通用的虚拟机和记账模型,CKB 打开了实现卓越用户体验的 Web3 应用程序的新可能性。

.bit 和 JoyID 等创新型应用的成功证明了 CKB 设计的变革潜力,展示了它具备跨链兼容性、流畅用户体验和更高级别安全性的能力。随着区块链行业的不断发展,CKB 在定位上已经成为区块链开发者的理想选择,它提供了必要的工具和框架,促进 Web3 技术和应用程序的广泛采用。

凭借其前瞻性的思维方法和致力于培育繁荣生态系统的承诺,Nervos CKB 在推动去中心化技术的未来发挥着关键作用,最终使下一个十亿用户能够享受到 Web3 的诸多好处。

end