Chen Yu,前 Neuron 钱包技术开发, 现于 Magickbase 团队负责 Neuron, CKB 浏览器, Godwoken 浏览器, Axon 浏览器产品设计及开发。
Magickbase 团队目前精力投入较多的项目是 Neuron 和 Godwoken 浏览器。Neuron 项目今年安排中的重点有两个, 分别是在 CKB 上对现有 RFC 进行可组合性的摸索, 以及提高同步效率; Godwoken 浏览器的安排也是分两步, 第一步是跟上以太坊浏览器的功能, 第二步是支持 Polyjuice 之外, Godwoken 独有的数据展示。Flouse,现Godwoken 开发者之一,承担项目的协调工作。Godwoken 是 Nervos 的 Layer 2 解决方案之一,其技术上采用的 Optimistic rollup 是主流 Layer 2 方案,Godwoken v1 具备较好的以太坊工具链兼容性 (EVM-compatible)。接下的路线,期望能稳健地支撑越来越多部署在 Godwoken 上的 DApps,并做到:Jianhui,现 Force bridge 开发者之一。Force Bridge 目前投入精力比较多的是 CKB 到 BSC 和 ETH 的方向跨链。
Q1: Neuron桌面版每次同步慢都造成很大困扰不想用,这个问题大概在今年什么时候解决?我看到国外用户也经常在推特因为没办法同步吐槽。
Chen Yu:我先来解释一下 Neuron 钱包同步缓慢的原因, 根据我们的总结, 主要原因有两点:1. Neuron 是全节点钱包, 每次使用都需要完整同步节点数据后展示最新状态, 目前主网节点数据已经接近 20G, 下载这些数据本身需要一定时间;2. 同步节点的过程需要进行区块验证,这一过程比较吃 CPU, 以及 Neuron 开发的技术栈 Electron 也比较吃内存, 所以全速同步比较依赖机器的性能及网络状态, 针对这一方面我们利用 CKB 节点的一些特性做了优化, 在主网同步可以省略指定高度之前的区块校验, 根据我们的测试数据, 在一台 4CPU(2.5GHz) 16GB 的电脑上, 仅运行 Neuron 将区块同步到 400w 高度, 压测钱包所用的时间从 26.68 小时降低为 6.3 小时, 因为是在理想环境测试(只运行 Neuron), 且当前区块高度已经达到 700w+, 实际同步实际肯定是要蛮久的。对于大部分用户来说, 最理想的解决方案肯定是有一个中心化的查询支持, 达到数据秒更新的效果. 这个方案之前找基金会要过建议, 结论是在 Neuron 上并不适合支持中心化查询. 理由有两点:a. Neuron 的定位本身就是全节点钱包, 而且全节点钱包是有利于生态的且必须存在的;b. Neuron 的团队相比普通应用团队, 优势在于对 CKB 的理解更深入, 应该将精力投入到探索 CKB 可能性, 可组合性上. 针对用户或面向市场的产品, 可以由市场产品经验更丰富的团队来完成, Neuron 团队作为技术咨询支持. 实际上在得到回复的第二天, 我就在 Twitter 上看到了 CKBull 的消息, 基金会一直在推进一个适合普通用户的钱包的开发。轻节点协议, 轻节点协议是今年 Nervos 的重要内容之一, 收到这个问题后我和相关团队确认了一下, 现在已经在研究和开发, 并且有可以参考的项目:https://github.com/nervosnetwork/ckb-light-client不过研究的结果暂时不方便发给我。等到轻节点开发进入验收阶段, Neuron 就会开始对接, 到时候同步的数据量就会大幅下降, 速度也随之上升。正如方案 1 中提到的, Neuron 团队会对 CKB 的可组合性进行积极的尝试, 所以也会开发一些周边相关的项目, 其中有一项是对 DApp 签名的支持。Neuron 团队计划在下两周开始做 Neuron 对 DApp 的签名支持:https://github.com/Magickbase/neuron-public-issues/issues/23#issuecomment-1140889013其中会有一个附带的网页版的观察钱包, 结合我们的浏览器团队的数据支持, 可以达到类似中心化查询的钱包的效果. 因为是观察钱包, 会考虑通过外部资源集成一些常见的查询数据支持。Q2:CKB生态内项目目前是一个项目一个钱包,什么时候能统一到 Godwoken 钱包(CKBVM链环境),目前进展如何?Chen Yu:这个问题有些模糊了。问题中有一些概念似乎是对 CKB 及 Godwoken 存在一些理解的偏差, 我先整理一下问题中提到的一些概念:1. CKB 生态内项目目前是一个项目一个钱包: 根据我平时玩的项目, 接触的钱包大概包含了:b. 以太坊钱包: Force Bridge, Nervos DAO, Mibao, Unipass, .bit, Yokai, Kami, Daruma除开低频使用的 Nervos DAO, 基本只要 Ethereum Wallet 就可以了。Godwoken 明确说来不是大家以为的 EVM 兼容链, Godwoken 上部署的 Polyjuice 才是 EVM 兼容的部分, 问题里提到的 Godwoken 钱包, 我姑且推断为以太坊的钱包, 例如 MetaMaskGodwoken 及 Polyjuice 是 Layer 2 部分, 目前支持的是 EVM, 而 CKB VM 是 Layer 1 的部分。这里我把 “一个项目一个钱包” 理解为, 虽然我都用 Ethereum 钱包签名交易, 但是我的资产却分散地展示在各个项目中, 而且可能对应了不同的地址(在 Layer 1 上显示为 CKB 的地址, 在 Godwoken 上显示为 ETH 的地址), 没有一个统一的入口去查看我所持有的 DAO, SUDT, NFT, BIT 域名。一般来说, 由于 Layer1, Layer2 的签名算法不一致, 必定要求钱包支持多种算法. 得益于 CKB 上自定义密码学原语的优势, 以及 PW lock 和 omnilock 的使用, 即使资产分布在 Layer1 和 Layer 2, 也可以统一到 Ethereum 钱包管理. 实际上目前接触的大部分项目都可以只用 Ethereum 钱包管理(签名)了。至于将所有资产统一到一个入口展示, 从技术上说是一个比较好解决的问题. 假如产品上有这个设计, 技术上是可以实现将同一个公钥对应的 CKB 和 ETH 地址, 及相关资产展示在同一页面上的, 不过选择展示哪些数据, 至少需要两方面的支持:a. 一方面是浏览器团队的开发人力是否充足, 是否有余力去了解生态中各个项目的逻辑, 以及数据解析方式, 和其他计划比起来优先级如何;b. 另一方面是项目方是否希望将数据展示到浏览器上, 并提供一定的技术支持。这里涉及到生态中诸多团队的协作问题, 进度肯定会比预期慢一些, 但是一直在推进。例如 CKB 浏览器想要推进 Layer 1 上 NFT 的展示, 目前 Layer 1 上的 NFT 主要分三类: M-NFT, NRC 721, CoTA, 其中浏览器团队对 M-NFT, NRC 721 比较熟悉, 已经进入测试阶段, 对 CoTA 不太熟悉, 联系了 Mibao 团队做技术支持, 预计几周后也可以支持, 那么指定地址持有的 NFT 资产查看的需求可以解决了。进一步是 NFT 资产的管理(转账)需求, 在 Godwoken 浏览器中我们已经支持了通过 MetaMask 调用合约转账功能, 如果把这个功能在 CKB 浏览器 上也实现一遍, 是不是在浏览器上就能完整体验 NFT 的全流程了。当然, 对于一款浏览器来说, 这个特性是超出了需求的。不过我们在 CKB 浏览器 和 Godwoken 浏览器 上得到的数据同步, 解析的技术积累, 是可以应用在 Q1 中提到的观察钱包中的。那么有一个网页, 可以展示 CKB, Godwoken 上指定地址的数据, 又可以调用 Neuron, MetaMask 进行签名, 是不是有了一点可以发挥的地方。 以上是我对将资产统一到某一个钱包中统一管理的看法。Q3:能否将 Nervos资产通过以太网络将对应的 CKB 资产信息展示出来?Chen Yu:通过以太坊网络将对应的 CKB 资产信息展示可能不太可行, 但是 Q2 提到方案可以解决通过以太坊地址查询资产的问题。Q4:Godwoken 目前确定对接上的项目有哪些?项目迁移完成的进度?与其他做兼容EVM的链的优势差别在哪边?Flouse:首先,如果大家对对接 Godwoken 的项目比较关心,我推荐关注 Build Club:Discord: https://discord.gg/vpcdn4HtTwitter: https://twitter.com/buildclubxyz简单分享一下我最近从 Nervos DevRel team (开发者关系团队)了解到的信息:当前,Build Club 目前支持约 27 个团队在 Godwoken 上构建应用。大概有 10 个新项目在 Godwoken testnet_v1 处于 ready 状态。我们不知道他们的确切时间线,因为这是由各个项目团队自己决定的,不过我们可以期待他们很快会往前走一步到 mainnet_v1.http://linktr.ee/oblivionnft2. Nervos Godwoken 即将上线的智能借贷市场: https://twitter.com/BrainiacFinance这是一个从 Build Club 孵化出来的 DeFi 项目,应该是 Curve Finance 的克隆。https://twitter.com/BrainiacFinance/status/15471611474254438401. Celer cBridge 初步完成了在 Godwoken mainnet_v1 的部署,这可以理解为是对 ForceBridge 的增援:https://twitter.com/CelerNetworkcn/status/15466757129832693772.另外一个 NFT bridge: XP.Network. 进度可能还在部署调试阶段,可能可以帮助 Godwoken 上的 NFTs 方便地跨去更大的市场交易,如 Opensea。近期的 GameJam hackathon 上,有 12 个团队在 Godwoken 上部署了 Web3 game:https://itch.io/jam/blockjam-2022/entries非常值得一提的是,一些在 Bluid Clud 之外的项目正在崭露头角,我们只是有时在 Nervos Network Discord 或是某个微信、Telegram 开发者群听到他们的声音。这其实挺有意思,或许能说明生态有一定的吸引力在吸引开发者自发地加入。我在此提倡有兴趣参与开源贡献的伙伴,可以考虑参与 Nervosnetwork 上的开发或是文档支持。https://github.com/nervosnetworkQ5: Godwoken 现在是POA,不过有听闻说之后会变成 POS。预计什么时候开始会转成POS呢? 之后用户能自己开Validator吗?Flouse:PoS 可能没那么快,不过那确实是大方向。Optimismtic Rollup 需要比较完善的挑战机制才能保证安全性,Godwoken 大致路线是:第一步,所有人都可以验证 Rollup 状态。这个目前已实现,跑一个 Godwoken readonly 节点就可以验证(validate):如何运行 Godwoken 测试网_v1 readonly 节点?https://github.com/nervosnetwork/godwoken-info/tree/main/testnet_v1_1#how-to-run-a-godwoken-testnet_v1-readonly-node 第二步,是完善挑战机制,并且开放 permissionless 挑战功能。这意味着所有人都可以启动一个节点来挑战链上非法状态。这是获取更多信任的基础,也将是 Godwoken Team 接下来要重点攻克的难点。 第三步才是尝试 PoS 并把出块的步骤也去中心化,即所有人都可以质押并启动出块节点。Q6: 底层采用的抵押模式来降低网络的冗余,是一个不错的方法。但是,对于很多用户来说,这一模式的体验很差,未来是否会采取某种方式解决这一问题?Flouse:1. 在 layer1 质押是保证 layer2 安全的基础,如果跳过这一步,用户的资产就无法被运行在 layer1 上的合约保护。这里是用户体验与安全性的权衡,Godwoken 必须依赖 layer1 链上合约保证用户资金安全,是不应该绕过质押这一步的。不排除以后有些开发者可能会为 Godwoken 提供中间的免质押的服务方案,收点服务费之类;期望能有社区方案出来,让用户有得选择。2. 目前延长到 7 天,实际可能因为 Layer 1 出块时间抖动拉长,可能还会拉长两三天,不过这是短期现象。Godwoken 正在实施的新 Feature 有望让出块时间更稳定,因此后续 withdrawal 等待解锁会稳定在 7 天,为链上挑战留足时间。Godwoken 对 withdraw 流程已做了优化,取回资产经过挑战期后会直接转换到 layer1,不需要用户第二次 unlock 操作。也就是说现在使用 Godwoken Token Bridge 进行 withdraw 的话,锁定期结束后会自动解锁至用户的 Layer 1 地址,不需要用户再做一次手动解锁。Godwoken v0 和 v1皆已支持这一新特性。主网: https://bridge.godwoken.io/https://testnet.bridge.godwoken.io/ Q7:为什么 gas 费设置为 90000 gwei?考虑到 DOS 攻击, 你能简要描述 gas 费背后的算法吗?另外,如果未来 CKB 价格上涨怎么办?当 gas 价格也上涨时,你认为Godwoken v1 在其他公链中还有竞争优势吗?Flouse:我认为这期最新的讨论能回答以上问题:《Godwoken V1 的 gas 费结构》https://talk.nervos.org/t/godwoken-v1-fee-structure/6675为了保护网络免受攻击,我们需要一个合理的 gas 费来保护 Godwoken 网络,并计划逐步降低 Godwoken v1 的 gas 费。我们将引入一个价格预言机系统,自动平衡 USD/CKB 的 gas 费用。实际上,社区 mod 对 Godwoken 动态定价(自动平衡)的 gas 价格感到非常兴奋。随着 ETH 价格的上涨或下跌,其他二层费用发生了很大的变化,但在 Godwoken 附带价格预言机的情况下,用户可以放心。因为我们的 gas 费将基本保持标准。Q8: Godwoken 通过收取 gas 费赚的这些 CKB 准备卖去二级市场还是用于其他用途?Flouse:是的,可以感受到社区对这个问题非常关切。关于收到的 gas 用去做什么,暂时还没有明确的计划。现在收取的 gas 并不多,还远不能覆盖 Godwoken 在 CKB layer1 部署的链上合约所占用的 CKB,以及支撑 Godwoken fullnode 的相关服务器的费用。待 Godwoken 强化抗 DoS 能力后,gas 费可能还会进一步降低,所以我们没有预期能收到很多的 gas。当然,如果生态繁荣,gas 费虽低却也仍能有可观的 gas 费用收入,到时再考虑这个问题也不迟。Q9: YokaiSwap 不久之后就会有 ID0, 到时候大家同时投,Gas 费会不会高得吓人?请问是否有调降机制?POA 为什么要收那么高的 Gas 费用?Flouse:上面的问答已提到,Godwoken 的 gas 费的机制,当前设置最低 gas 费是为了保障链的安全。我简单解释一下背后的原因,这其实是所有 EVM 兼容链所要共同面对问题:如果 gas 费很低,可能短时间内几百个交易低成本地向permissionless 的 L2 链上写入大量数据,那 L2 的状态就会以每个 block 几百 MB 级别的速度急速膨胀,然后整条链将是难以维护且脆弱的,用户体验也会大打折扣。相信大多数人也不愿意看到这种情况发生。可能有些人是以 Godwoken v0 不收手续费为参考,但情况完全不一样。因为在 Godwoken v0 部署合约有白名单限制,所以几乎是可信的开发者部署的合约。而 Godwoken v1 是面向所有开发者(permissionless),谁都可以部署合约(Solidity) ,其承受的攻击面和可能性要大得多。关于担心 Yokai ID0 时 gas 费会在交易拥堵时被拉高的问题,我认为这是正常的市场竞争行为,哪怕最低 gas 费一开始很低,吸引人的活动来临时,还是一样可能会被拉高。 Q10 :Godwoken gas 费是否可以用阶梯式计费,随着币价作动态调整,用预言机去抓平均价格,自动带入合约执行?Flouse:上面的问答已提到,Godwoken 计划引入自动调节最低 gas 费的机制,这里就不再赘述。Q11:Forcebridge 要如何跟即将要支援Godwoken 的第三方桥 cBridge 竞争?优势是什么?Jianhui:我理解是 Force Bridge 是在 CKB 生态里比较早开始跨链的一个项目,也在早期支援了 Godwoken 项目。现在 cBridge 在 Godwoken 上部署,我理解是一个好事,会为 Godwoken 带来更好的体验。所以我理解的是 Force Bridge 并不完全是去和 cBridge 竞争,也可以是互补的关系,就例如我们也在支援 cBridge 在 Godwoken 上的部署。我想这里我们实际更注重能否给用户带来更好的开发和使用体验。官网:https://www.nervos.org/CKB浏览器:https://explorer.nervos.org/Nervos 公众号:搜索 字节元CKB / CKBFansDiscord:https://discord.gg/X2VGqQX6zT电报群:https://t.me/NervosNetworkcn字节元宇宙推特:https://twitter.com/CKBMetagithub:https://github.com/nervosnetwork/技术论坛:https://talk.nervos.org中文技术文档:https://docs.ckb.dev