原文:Nervos Metabolism - A Recap of Development 2022
软件开发和架构设计之间有着深厚的联系,这可以从两者所使用的词汇中看出,例如:基础设施、模块、框架等。这种有趣的联系给了我这次回顾的灵感——我们可以使用建筑史上的概念来回顾 2022 年 Nervos 的技术发展。
“新陈代谢(Metabolism)”是 20 世纪 60 年代战后日本的一场建筑运动。他们的独特见解是将建筑视为一个活的有机体,通过与环境的相互作用而发生变化,并对环境产生积极的影响。
Nakagin Capsule Tower, Kisho Kurokawa, 1970
同样地,Nervos 也将区块链网络视为一个生命体,它从环境中吸收能量并不断生长,通过与环境的相互作用形成新的独立的记忆和功能,将人类的组织形式推向一个新的阶段,并最终成为人类社会的神经网络。
作为新陈代谢运动的知识领袖和主要倡导者,Kiyonori Kikutake 对海洋城市的远见卓识也同样令人印象深刻。在现代社会陆上人口不断膨胀、海平面不断上升的背景下,人类从陆地迁移到海洋的梦想又重新回到了人们的面前。Kikutake 作为“新陈代谢”主义的核心成员,于 1959 年提出了他最初的“海洋城市”概念,将海洋城市视为新的人类社区的基本单位。
Floating Structure of Kikutake’s ‘Marine City’, 1960.
同样,今天的互联网也面临着用户增长放缓和市场高度饱和的现状。互联网平台高度中心化,已经成为吞噬用户数据的猛兽。互联网已经背离了自由和开放的初衷,变成了一头吞噬用户数据的猛兽。这是我们重塑互联网和构建 Web3 愿望背后的驱动力。如果我们能从陆地转移到海洋和外太空,我们也可以从 Web2 转移到 Web3。
感谢 Shan Lin 和 Yan Niu 介绍了新陈代谢这场建筑运动,感谢 Annie Peng 的编辑,让文章更具可读性。
Layer 1:由 Cell 驱动的新陈代谢
Nakagin Capsule Tower, Kisho Kurokawa, 1970
与 CKB 一样,新陈代谢主义最具代表性的建筑作品、Kurokawa Kisho 设计的 Nakagin Capsule Tower,也是围绕着 “cells” 展开的。每个 “cell” 都是一个易于拆卸和重组的立方体空间,就像胶囊公寓一样。对于居住者来说,“cell” 承载着他们日常生活的记忆。此外,“cell” 具有灵活的流动能力,就像在整个城市里循环的活细胞一样。
CKB 的设计以 “Cell” 为基本单元,来存储被称为 “Common Knowledge” 的集体共识维护的各类数据。CKB Cell 的灵活性由类似 DNA 的 Cell 脚本实现,该脚本编码不同的行为规则。CKB Cell 还具有生命周期,通过不断地消费和创造来驱动 CKB 的新陈代谢。
CKB 的首次硬分叉
CKB 在 2022 年成功激活了它的第一个主网硬分叉,告别了 Lina 并迎来了新主网 Mirana。Mirana 是自 CKB 于 2019 年推出以来两年努力的结果——包括虚拟机版本控制,可扩展的区块头,对密码学友好的指令集(如 RISC-V B 扩展)等等。硬分叉后,CKB 地址格式也进行了升级 ,为用户提供更一致的跨应用体验。
在这个过程中,我们学到了很多东西。最困难的事情是向矿工、矿池、交易所、钱包和开发者等生态参与者解释硬分叉后会发生什么。协助他们进行升级和测试;确保每个人都在硬分叉激活之前做好准备。协作很困难,但很值得;这就是我们愿意为真正的权力下放付出的代价。感谢大家,让网络升级顺利进行!
CKB-VM RVV Extension
CKB-VM RVV (RISC-V Vector Extension) 在 CKB-VM 的基础上增加了向量支持,这样它就可以使用单个指令集处理多个数据元素。尽管实现 RVV 指令的工作量很大,但我们仍然完成了所有指令的实现,开发了完整的功能、兼容性和模糊测试(RVV 是如此之新,以至于没有成熟的测试工具),迁移了一些加密算法,并进行了几轮优化。我们最近的评估显示,在 CKB-VM(例如 bn128)上运行的加密算法,其潜在减速不到 10 倍,这比其他虚拟机的减速要短得多。
尽管我们已经取得了很大进展,但将其投入生产所需的工作量很难估计,所以最好的选择是在下一次硬分叉进行投入生产。
轻客户端
2022 年,我们完成了 CKB 轻客户端的开发,这是 CKB 蓝图中的一个关键部分。它使用了基于采样的协议(基于 FlyClient)来避免下载和验证所有区块。这将使用户能够在资源受限的环境中(例如移动设备或网络浏览器)与 CKB 进行交互。
CKB 还在开发其第一个软分叉,该分叉将支持轻客户端。为了支持未来的某些功能,CKB 轻客户端软分叉会使用可扩展区块头,可扩展区块头作为区块头中的任意数据字段已经被添加到 Mirana 的硬分叉中。
测试网启动后,我们将能够在真实环境中测试轻客户端协议。启动主网的理想条件是在 1~2 个试点轻客户端应用程序之后,例如 Neuron、Nexus 等钱包,CKBull 已经在测试网上进行测试了。
Open Transaction
Open Transaction 是构建交易的链外协调机制。交易发起人可以通过链外协作完成有趣且复杂的任务,例如多签工作流、CoinJoin 或者代币兑换,只需签署部分交易,剩下的留给其他人完成。通过 Open Transaction,我们可以将交易的结构分成多个小步骤,每个步骤都有不同的模块化解决方案。模块化的 Open Transactionn 生态系统可以扩展 CKB dApp 的可能性,同时降低开发门槛。
与 CKB 核心一起协作的链外层将对 Open Transaction 提供支持。如果发现它的某些功能在实践中有用,它们可能会被纳入 CKB 核心。功能设计过程始于 10 月,预计 2023 年会推出一个可用的 MVP。
工具:为了更好的开发者体验
Basic Types of space formatics for ‘Marine City’, Kiyonori Kikutake, 1960.
Kikutake 将 “海洋城市” 项目分为两类:在城市规模上的同心浮动结构和在国家规模上的线性海洋城市。他为海洋城市设计了多个结构性的解决方案,这些建筑方案为城市开发者提供了基本的思路和模式。
Nervos 和 Web2 的差异,甚至和以太坊之间的差异,就像陆地和海洋之间的差异一样巨大。底层的巨大差异,给刚接触 Nervos 的开发者造成了很大的障碍,因此我们必须不断地改进工具,降低门槛,帮助开发者更轻松地完成工作。
xUDT
xUDT 是 sUDT 的扩展,包含了许多改进,这些改进是社区使用 sUDT 时提出的。开发者可以使用 xUDT 创建一个扩展脚本,来检查 token 发行是否低于某个阈值,对 token 的转移附加时间锁,甚至还可以将用户的余额存储在 Sparse Merkle Tree 中。xUDT 简化了可编程 token 的生成。
最新的 xUDT 脚本已在测试网进行部署。代码审核和测试通过之后,将会部署到主网上。
Omnilock
Omnilock 是专门为互操作性而设计的新 lock script。它是一种可以扩展的 lock,可以支持比特币、以太坊、EOS 和 Dogecoin 等主流区块链所使用的各种交易验证模式。Omnilock 有一个合规的模块,可以与 xUDT 的 Regular Compliance Extension(RCE)配合使用,使 UDT 与传统金融互操作。如果启用,指定的管理员可以在他认为合适的情况下撤销用户持有的 token。Omnilock 和 RCE 配合起来使用,相当于 ERC-1404 提案。
Omnilock 已部署到 Mirana 主网。
CKB 上的 Taproot
Taproot 是比特币自 Segwit 以来最重要的升级。它提高了比特币的隐私性、可扩展性,改变了比特币脚本的运作方式。我们通过 lock script 将 Taproot 搬到了 CKB 上,来和比特币社区一同庆祝这一成就,同时用来测试 CKB 的抽象能力。CKB Taproot 提供了两种解锁方式:密钥路径(Schnorr 签名)和脚本路径。后一种路径非常强大,因为它把 CKB-VM 的功能和任意复杂的逻辑相结合。
CKB 上的 Taproot 展示了将比特币思想与 Cell 模型相结合所产生的新能力,以及实现这种混搭有多容易。凭借强大的智能合约支持和简单的 UTXO 设计,我相信 CKB 有成为 UTXO 生态系统创新热点的潜力,在这里,可以很容易地测试新想法,也可以为比特币和其他基于 UTXO 的区块链诞生好的想法 .
Lua 脚本
得益于 RISC-V 的兼容性,CKB-VM 可以支持用任何编程语言编写的智能合约。然而,为了使用任何语言编写的智能合约,需要一个易用的工具。Rust 和 C 是两大流行的编程语言,但我们总是想要更多。下一步是支持 Lua 脚本,这也是我们第一次认真尝试动态语言。Lua 是一种轻量级的动态语言,广泛应用于游戏开发和其他需要可编程扩展的领域。Lua 脚本可以与用 Rust/C 编写的 lock scripts/type scripts 结合起来使用,以实现 CKB dApp 可编程的自定义和扩展。
我们已经为此努力了很长一段时间,现在它已经功能齐全了。JoyID 和 .bit 团队给了我们积极的反馈。它目前正在进行额外的测试和优化。比较合理的预测是 2023 年会有第一个使用 Lua 脚本的 dApp 出现。
Kuai
MagickBase 的一群开发者主动创建了 Kuai,一个基于 javascript 的 CKB DApp 框架,旨在大幅降低 DApp 的开发门槛,让创建一个 DApp(例如 did.id)的时间从数月降至数周。Kuai 和 Capsule 的区别在于,Kuai 是一个完整的框架,除了合约开发之外,还包括一个构建系统,模板生成器,实用的抽象,链外组件和测试。该项目仍处于早期阶段,但正在稳步推进。
Nexus
MagickBase 的另一群开发者开始着手解决一个长期困扰 CKB DApp 开发者的问题—— CKB 的 “Metamask”。虽然得益于 CKB 的抽象能力,以太坊钱包 Metamask 可用来访问 CKB DApp,但它毕竟是为账户模型设计的,因而放弃了 UTXO 模型的大部分好处,例如跨地址的资产管理和隐私保护。它还缺乏对 CKB 轻客户端的支持。Nexus 就是这个问题的解决方案,它是一个 UTXO 钱包,旨在为 Nervos DAO、xUDT、omnilock、轻客户端和其他协议提供无缝支持。
其他
CKB 有 4 个 SKD (Rust,Go,Java 以及 Javascript) ,为所有开发者提供基本的、多功能的支持。Mercury 是一个高级中间件,适用于钱包和交易所等简单的集成案例。Lumos 是一个面向 Web 开发者的 javascript/typescript 工具箱,适用于 DApp 开发,而 Capsule 则提供了方便的 Rust 智能合同支持。CKB-CLI 是 CKB 开发者的瑞士军刀。这些工具已被证明是有用的,并且正在根据社区反馈不断改进。
CKB 极客们喜欢 ckb-indexer,这是一个闪电般快速的链上数据索引器。它非常受欢迎,以至于 CKB 团队应社区要求将其合并到了 CKB 节点中。集成后,加快了 CKB 节点和 Neuron 的同步,并来简化 DApp 开发者的开发工作(通过只需一个后台程序而非两个)。
Layer 2:巨型结构和可扩展性解决方案
The City in the Air, Arata Isozaki, 1960
除了 “cell” 以外,新陈代谢主义还提出了另一个具有启发性的概念——巨型结构(Megastructure)。他们希望为城市设计一个“巨大的结构框架”,而不是建造具有特定目的的单元。这一框架必须牢固而持久,让人们根据需要增减具有特定功能的建筑单元,以满足城市人口日益增长的需求。与大多数区块链项目不同,Nervos 有远见地设计了模块化的 Layer 2 作为可扩展性和可伸缩性的解决方案。此外,Nervos Layer 2 上的两个框架 Godwoken 和 Axon 正在从不同角度来试验 Layer 2 的设计。
Godwoken
Godwoken 是世界上第一个在以太坊以外的 Layer 1 区块链上运行的 Rollup。Godwoken 在 2022 年取得了两项重大成就:一是成功完成了从 v0 到 v1 的升级,二是追求了 Game+区块链的理念,并为其提供了一系列开发者支持。Godwoken v1 是 Godwoken EVM 兼容性的一次重大升级,从 99% 升级到了 100% 兼容。开发团队经过不断地努力,解决了剩下 1% 的不兼容问题,然后实现了从 EVM 操作码到 EVM 工具链的完全兼容,让开发者可以在 Godwoken 上部署 DApp,而无需修改任何代码。这次升级降低了 EVM DApp 迁移和 DApp 开发的成本,为 Godwoken 的 生态系统 带来了新的发展。
Godwoken Game+区块链把 Godwoken 对开发者的支持提升到了一个新的水平,将其从一个需要开发者自己解决很多问题的 Rollup 框架,转变为一个为游戏开发者提供的优化了的完整解决方案。通常情况下,游戏开发者在试图进入 Web3 世界时,他们并不完全了解区块链技术。他们真正需要的是一个简单且游戏兼容的区块链解决方案,让他们能够专注于游戏开发而不是区块链的细节。他们希望他们的潜在玩家能够玩他们的游戏,而不需要学习记忆术或交易费用。他们希望创造的游戏能够让玩家拥有自己的战利品,参与任务创建,分享收益,并从中获得乐趣,而不是简单地使用象征性激励来推动纸面上看起来不错的数据增长。Godwoken Game+区块链可以为游戏开发者提供所有以上的这些。
想要了解更多信息,请关注 Godwoken 团队的 Twitter 和 GitHub。
Axon
Axon 是另一个基于 CKB 的高性能 Layer 2 框架。它做出了与 Godwoken 不同的设计权衡:它没有完全依赖 CKB 的安全性,而是将 CKB 作为支撑层来实现高性能和优于 L1 PoS 的安全性,因为 L1 PoS 固有的问题,如远程攻击和主观性已经不存在。
除了 100% 兼容 EVM 之外,Axon 是第一个实现通用帐户抽象的架构,这要归功于存储在 CKB 区块链上的强大的 CKB-VM 和密码学库。Axon 智能合约可以从 CKB 上加载 cell,并使用调用 CKB-VM 的特殊预编译 EVM 来验证其数据和脚本。
Axon 也是一个具有内置互操作性和 Cosmos IBC 支持的原生多链框架,可以让 Axon DApp 与 CKB、其他 Axon 链和其他区块链生态系统,特别是那些具有兼容 IBC 的生态系统进行通信。
Axon 的核心框架在 2022 年稳定了下来,它已经准备好让那些想运行高性能 EVM 区块链的开发者在此基础上进行构建。未来的工作将集中在 Axon 的 staking 和治理机制上。Axon 将成为 Nervos 的高性能、高互操作性和简单易用的可扩展层,并内置 staking 和治理解决方案。
想要了解更多信息,请关注 Axon 团队的 Twitter 和 GitHub。
互操作性:从陆地到海洋
海洋城市,1963/1980s。该模型暴露在一个半透明的蓝色立方体顶部。照片:作者在东京森美术馆举办的《Metabolism: the City of the Future》展览中记录(2011 年 9 月)。
新陈代谢主义的设计不仅试图通过构建框架在陆地上进行扩张,而且还不断延伸到水域,让人们可以在陆地和海洋两个区域活动。陆地和海洋可以被视为是具有不同自然规律的两个不同系统,就像 Web2 和 Web3,或者一个区块链和另一个区块链,它们可以被视为是具有不同共识和协议的独立生态系统。巧妙的建筑设计可以与陆地和海洋通信,出色的互操作性基础设施也必须进行通信,让用户的资产和信息在系统之间更自由地流动。
Force Bridge 是 Ethereum/BSC 和 CKB 之间的跨链桥,它用一个具体的例子证明了 Nervos 的互操作性——Ethereum 用户可以在 Nervos 和 Ethereum 之间转移资产,而不需要更换钱包。Nervos 现在已经连接了两个最大的生态系统,即以太坊和 BSC,因此连接更多生态系统的边际效益减少了。与此同时,2022 年的一系列跨链桥黑客事件再次提醒我们去中心化的重要性。
Force Bridge 在整个 2022 年平稳安全地运行着,现在去中心化要比以后更好。Synapse 团队正在努力实现这一目标。第一步是为 CKB 创建兼容 IBC 的中继,这可以让信息在 CKB 和所有其他区块链之间传递,如 Ethereum、Cosmos,甚至 Axon 和 Godwoken。然后我们可以扩大一些中继的规模来创建一个更加去中心化的中继网络,在此网络基础上,我们可以建立一个更加去中心化的 Force Bridge 2.0。
研究
Nervos 研究团队一直强调质量高于数量,2022 年,他们在业界的国际顶会上发表了三篇论文:
-
NC-Max:打破中本聪共识的安全-性能权衡
- 在本文中,我们确定并实验证明了,问题的关键在于尚未传播的交易所延长的区块传播延迟。因此,我们提出了一个两步机制,只确认完全传播的交易,从而消除了 NC 的安全需求对其性能的限制,实现 NC 未开发的潜力。为了实施这种两步机制,我们提出了 NC-Max,其(1)安全性得到了分析,证明了它能提供比 NC 更强的抵御交易扣块攻击能力;(2)性能得到了评估,表明它耗尽了网络支持的全部吞吐量,并在不影响安全性的情况下将交易确认延迟缩短了 3.0 到 6.6 倍。
- 该论文发表于 2022 网络和分布式安全研讨会(The Network and Distributed System Security Symposium, NDSS),2022 年 2 月
- Polynomial IOPs for Linear Algebra Relations
- 本文提出了一种新的多项式 IOPs 算法电路。它们依赖于单项系数基来表示由算术约束满足系统产生的矩阵和向量,并建立在建立正确计算线性代数关系的新协议上,如矩阵-向量乘积和哈达玛积。
- 当使用加密编译器编译时,我们的协议产生了具有简洁验证的具体证明系统,而加密编译器的作用在本文中被抽象掉了。只取决于编译器,生成的 SNARKs 要么是透明的,要么依赖于一个可信的设置。
- 该论文发表于 2022 国际公钥密码学实践与理论会议(The International Conference on Practice and Theory of Public-Key Cryptography, PKC),2022 年 3 月
- Analysing and Improving Shard Allocation Protocols for Sharded Blockchains
- 作为首个关于共享无需许可区块链中被忽视的核心组件——分片分配(Shard Allocation)的研究,本文提供了第一个关于分片分配协议形式化的研究,评估了包括 Ethereum 在内的 7 个无需许可分片区块链的分片分配协议。证明了同时实现最佳自平衡和可操作性的不可能性,识别并定义了分片分配协议所需的内存依赖性属性,可以参数化自平衡和可操作性之间的权衡,并提出了一个正确而高效的分片分配协议 Wormhole。
- 该论文发表于 4th ACM Conference on Advances in Financial Technologies (AFT '22),2022 年 9 月
来自去中心化社区的驱动
The “mother city” of Marine City Project, 1963
在写这篇文章之前,我并没有意识到以上这些事情都是在一年内完成的。感觉我们从 2021 年开始已经为此努力了三年(如果你有同样的感觉,这不是巧合,2022 年无论如何都是特别的)。我试图回忆我们做过的每一件事,但发现不可能列出完整的清单。如果我遗漏了什么,我深表歉意。
在我看来,我们在 2022 年取得的最重要的进步是一个更加去中心化和充满活力的开发者社区。在基础设施层面,我们有和 Cryptape、MagickBase、Nervina、Godwoken、Axon 和 Synapse 团队的密切协作,扩展区块链架构的前沿。在应用层,包括. bit、Unipass、Yokai、Hadouken、Nervape、JoyID、Tempest 等团队正在向我们提交无数条反馈。在 Nervos 上进行构建是具有挑战性的,因为它需要在应用和基础设施两个层面进行工作。我想感谢你们所有人接受挑战,用激情创造,用爱构建。