2019 年,我们达成了多个 Milestone,其中意义最大的,是通过社区,以去中心化的方式成功启动。这意味着我们向自己的目标——去中心化的加密经济世界, 跨出了坚实的一步。自项目成立以来,我们从头开始构建并如期交付了功能完备的 Layer 1 区块链,而且期间没有对任何功能做出妥协。
CKB 是一个全新的基于 PoW 共识机制的底层区块链。它进行了一系列的自主创新,包含独家定制的共识机制、哈希算法、编程模型、虚拟机以及经济模型等。而且工程实践证明,这些创新都是可用的。在实现过程中,我们始终坚持最初的目标,并且毫不妥协,这在当前区块链世界并不多见。对此,我们感到非常自豪。
但同时,我们也知道,这一切仅仅只是开始。2020 年,我们将着眼于更大的目标,并且正兴奋地朝着这个目标前进。
在此,我们将概述 2020 年 Nervos Network 关注的重点领域,虽然可能并不全面,但它所涵盖的三个方向对实现我们的长期目标至关重要,它们是:开发、研究以及社区。
开 发
2020 年,我们除了会持续地进行 CKB 协议层和链上开发的改进外,还将重点关注以下两个链下领域:开发者体验和 Layer 2。核心开发团队会不断提升开发者体验,提供更多可选的智能合约编程语言,更强大的 RPC,更成熟的 SDK 以及更完备的文档。
Muta 框架
“ 让世界上任何一个人都可以启动属于他们自己的区块链平台,同时享受 CKB 所带来的安全性和最终性。”
Muta () 是一个高性能的区块链框架,同时适用于公有链和联盟链。开发者可以基于 Muta 定制开发 PoA、PoS 或者 DPoS 链,并且可以使用不同的经济模型和治理模型进行部署。
Muta 和 CKB 之间的互操作性,可以让任何采用 Muta 框架的区块链都能和 CKB 进行跨链交互,同时享受到基于 PoW 的 CKB 底层所提供的高安全性和最终性。
在其架构中,Muta 分为两层:RISC-V Runtime(应用层)和核心引擎(基础层)。我们希望通过分层的方式找到可用性、稳定性、高性能和安全性之间的平衡。
RISC-V Runtime(应用层):在这一层,开发者可以使用 Minits 来扩展 Muta 框架,包括:业务逻辑、治理和准入许可。
Bindings:这是 RISC-V Runtime 和核心引擎之间的桥梁。通过封装底层细节来公开一些高级 API,允许 RISC-V Runtime 在运行时访问和调用核心引擎。
核心引擎:该层是核心框架,用 Rust 编写。除了包括某些核心功能,比如 Overlord(共识机制)、交易池、P2P 等,它还允许自定义插件,RISC-V Runtime(比如 IO)可以通过 Bindings 调用这些插件,并且可以使用内置服务开发特定业务逻辑的区块链,获得更高的性能。
Muta 是 Nervos 网络的一个重要分支,它利用 CKB 作为价值和安全之锚来扩展使用场景和可扩展性。例如,Nervos 基金会与火币集团合作开发的火币公链 (),就是基于 Muta 框架实现的监管友好的去中心化金融服务。Muta 将会在 Nervos 网络的大规模应用中发挥先锋作用。
Muta 已经开源,并于 2019 年发布了供社区和企业使用的版本。下一步,我们将提高 Muta 的可用性和功能性,让 Muta 真正成为那些希望部署 PoA/PoS/DPoS 区块链的用户和企业的首选。
用户自定义 Token(UDT)标准
“ 为在 CKB 上实现 UDT 创建基础——打造一个全新的资产创建平台,其中的每一个 Token 都是一等公民(First-class asset)。”
UDT(用户自定义 Token)是高性能加密经济的元件。在 CKB 上实现 UDT 的原理和在以太坊或其它多数区块链平台上都完全不同。
其他 UDT 设计,比如 ERC20,在同一代码块中混合了逻辑代码和用户余额,并且需要为不同的 Token 部署不同的合约。这不仅增加了不兼容的风险,也丧失了自我管理的灵活性。
而在 CKB 上,业务逻辑和用户数据是相互独立的。所有 UDT 共享相同的基础代码,用户在链上独立地拥有自己的余额(而无须集中在某个智能合约中)。这种结构让 CKB 上所有的 UDT 都能够成为「一等公民」,同时这些 Token 的可拓展性也因此得到了极大的提升。
此外,CKB 的 cell 模型支持开放式交易,就像比特币上的各种 SIGHASH 类型 () ,只要用户的意图没有被更改,就可以允许他人通过加入一个新的输入或者输出来修改他的原始交易。
UDT 标准由基础逻辑、交易格式、客户端用户交互过程和扩展规则等组成。它的开发会比基于账户模型的 Token 开发更加复杂,但是对于它所提供的灵活性和潜在用例,似乎也在情理之中。根据社区共识的情况,UDT 标准将会在第一季度末确定并投入使用。
Neuron 钱包
“ 任何人都可以通过 Neuron 钱包访问 Nervos Network 的完整功能 —— 包括一整套多资产功能和自定义组件。”
Neuron () 是 Nervos CKB 默认的桌面钱包,它的主要功能将是 Token 转账和 Nervos DAO 的操作,而其它功能和应用将由社区和开发团队共同实现。但是,Neuron 还会涵盖另外两个前沿功能。第一,也是对 Neuron 来说最重要的新特性是支持 UDT 标准。用户通过 Neuron 钱包就可以进行发行、转账、接收或者销毁 UDT。
另一个 Neuron 将探索的重要功能是,如何充分利用用户自定义的类型脚本和锁脚本。CKB 默认的签名算法是 SECP256k1 的锁定脚本,而 UDT 标准将会作为类型脚本进行部署。在 CKB 上使用脚本是高度灵活的——任何开发者都可以部署新的锁定脚本或者类型脚本来扩展 CKB 的签名算法或者交易功能。Neuron 钱包将会显示这些新锁定脚本和类型脚本的用户界面,帮助用户更轻松地访问 CKB 和 CKB 上的 dApp。
现在,我们已经成功地将 CKB 全节点内置到 Neuron 钱包的应用程序中,用户无需自行运行节点或者通过命令行运行节点。除了上述的功能外,我们还将持续发布更新的版本,来解决任何已经确定的 Bug,并进行 UI 和 UX 的改进。
多语言智能合约
“ 可以使用多种语言编程和编写智能合约。”
我们计划构建多个使用高级语言或 DSL 的框架来促进 CKB 上智能合约的开发。
目前 C 是 CKB 上最主要的智能合约编写语言,因为 C 在 RISC-V 上的工具更加成熟。尽管如此,我们目前也支持使用 Ruby 和 JavaScript 来编写智能合约脚本,同时,我们还正在积极地寻找更适合编写智能合约的高级语言或者 DSL。我们将会通过两个不同的方向来解决这个问题:
从底层来讲,我们将更好地支持用 Rust 编写的智能合约。相比于 C 语言,在实现类似性能水平时,Rust 将会提供更高的安全保证。此外,区块链开发者都在非常积极地拥抱 Rust,很多区块链密码学领域最新的发展都是基于 Rust 进行开发,比如新的零知识证明和新的椭圆曲线算法。通过在 CKB 上更好地支持 Rust,我们可以确保 CKB 能够拥抱区块链领域加密技术的发展,并为之做出贡献。
从高层出发,我们也会研究高级语言,或者领域特定语言(DSL),为构建包含更多业务逻辑的智能合约提供便利。虽然用 Rust 或 C 编写的智能合约确实在类上提供了最佳的性能,但它们并不总是最容易的编程语言。虽然 Rust 确实比 C 前进了一大步,但有时候还是会非常麻烦,高级语言以及 DSL 可以完美地填补这一空白,并在牺牲一定性能的情况下,极大地加快了智能合约的发展速度。CKB 的设计方式,让我们完全可以先从高级语言开始,来获得更快的迭代速度,然后当性能问题凸显时,再切换到 Rust 或者 C 编写的智能合约,来获得更好的性能。
CKB-VM 优化
“ 使虚拟机具有更高的性能和灵活性,以获得更好的用户体验并解锁新的潜在用例。”
我们将重点实现 RISC-V 的扩展性(以及其他高价值的附加功能),并准备按照我们的发布计划进行内联部署(需要硬分叉),以及根据实际情况,当扩展规范达到稳定状态时进行部署。
目前 CKB VM(虚拟机)已经是 RISC-V 标准规范的一个成熟实现。当然,在未来仍有提升的空间。一个方向是继续在 CKB VM 中榨干最后一点性能。目前,已部署的 CKB VM 版本在很大程度上受到 CPU 的分支预测器的限制。通过研究现代 CPU 架构和编译器技术,可以继续改进 CKB VM 的性能。
另一个正在探索的方向是:CKB VM 通过对核心 RV64IMC 模型的实现,可以提供与普通计算机同样的灵活性,同时,RISC-V 还提供了一定的扩展性,通过提供更多的功能来更好地运行应用程序,并使其运行地更快。其中一些有趣的扩展是:
V ():
V 扩展提供向量扩展,可以用于支持一次多个大数的算术运算。有人可能会意识到,在区块链世界中,最近的趋势是将预编译的合约添加到区块链中,这样他们可以直接在本地代码中进行大量的添加,而不是在智能合约代码中进行加速。这种解决方案存在的一个问题是,添加的预编译合约将被限制在一个密码算法家族内。如果将来需要使用不同的原语来运行一个新的算法,那么将需要通过分叉来添加不同的预编译合约。然而,V 扩展在这里只定义了基础的灵活性操作。这意味着 CKB VM 将具有足够的灵活性,可以实现几乎任何带有 V 扩展的加密算法,同时还能确保具有最佳性能。
B ():
另一方面 B 扩展提供了新的 bit-wise 操作,这也有益于加密算法。虽然原有的 RV64IMC 模型在引入 B 扩展之前,可以实现所有的新操作,但是从 B 扩展中提取这些常见的操作指令,可以提供更好的性能。例如,CLZ(count leading zero)在软浮点实现和位屏蔽操作中是非常常用的操作。在引入 B 扩展后,我们可以很容易地将这个新的指令映射到一个 x86_64 指令上,而在 RV64IMC 模型中实现相同的功能最少需要 10 条以上的指令 ()。
注意,这里讨论的两个扩展都是 RISC-V 委员会支持的官方扩展。随着这些新扩展的引入,我们相信 CKB VM 将会成为一个能够支持新的加密算法和区块链智能合约新范式的完美平台。
CKB 浏览器
“ 深入 Nervos 网络的方方面面,充分利用数据和分析的力量。”
CKB 浏览器 (explorer.nervos.org) 是一个同时适用于主链和测试链的区块数据浏览器。在 2020 年,我们将持续优化 CKB 浏览器的用户体验,并提供额外的功能,深层次地挖掘数据并进行分析。浏览器还将支持 UDT 标准,并提供一个专门的页面来查询 UDT 的 Token 总量,余额和转账交易记录。其他的高级功能也在考虑中,包括脚本源代码浏览器,公共测试网 RPC 服务以及统计数据导出等。
轻客户端协议
“ 支持移动端钱包、网站等的自我验证,且无需信任第三方”目前运行一个 CKB 全节点 () 只需要一台普通的家用电脑即可,但是对于手机、浏览器端的应用程序和嵌入式设备来说,这仍然略显繁重。轻客户端协议可以让 CKB 上的共同知识被更广泛的用户使用,并为 CKB 提供无限可能。因为它会将大部分的验证都委托给全节点,从而节省计算和存储资源,所以运行一个轻客户端只需要较少的资源。CKB 选择的设计方式,比如 PoW 和交易结构,都为轻客户端协议的构建提供了良好的基础。
CKB 轻客户端可以被嵌入第三方软件中,实现任意软件与 Nervos CKB 的去信任交互。例如,一款支持 CKB 轻客户端协议的移动端钱包,可以让用户在其手机上确认 CKByte 或 UDT 交易,而无需信任第三方;支持 CKB 轻客户端扩展的浏览器,可以让用户验证网站的身份,反之亦然,网站也可以验证用户的身份;支持 CKB 轻客户端协议的电子邮件客户端,可以根据 CKB 链上的公钥验证 PGP 签名。
研 究
Layer 2 在研究和开发领域发展地非常迅速。2020 年,我们将在 3 个方向上进行探索:通道、基于链的协议和基于 zkp 的协议。我们正在积极地参与零知识证明协议的研究,并且在搭建基于 zkp 协议的原型及通道的原型。
零知识证明
“ 为 Nervos 网络启用隐私保护协议。”
密码学系统是一种技术,它使轻型计算机能够通过密码学方法验证在其它地方进行的计算的完整性,即使该计算涉及了验证者无法访问的资源。
当证明者(执行此计算的一方)比验证者花了更多的运行时间时,证明系统就具有可扩展性,并会使区块链也具有同样的属性,即,使得区块链具有可扩展性;同时,当证明者拥有对验证者保密的秘密输入时,证明系统将具有零知识(zero-knowledge),这反过来又是很多隐私保护协议的关键属性。
近几个月来,可扩展的零知识证明领域出现了真正的爆炸式增长,我们的研究团队也将持续关注这个高度专业化的密码学领域并努力为之做出贡献。
后量子签名
“ 为抗量子世界而做准备,确保 Nervos 能够始终走在前列。”通过全面的分析和研究,我们将会介绍如何设计和实现后量子签名方案(抗量子),以及何时应该迁移。
数字签名让数字资产拥有所有权成为可能,更确切地说,数字签名让人们无法花掉别人的钱。从长远来看,良好的价值存储可以防止签名伪造的行为,尤其是防止将来在量子计算机上尝试进行的伪造行为。因此,一个重要的研究问题为:后量子签名方案的设计,以及迁移到这些方案的计划,同时最小化这种迁移对带宽和执行时间的影响。
目前,NIST 标准化项目和其他各种修订后量子密码系统,并减少其所谓的安全级别上的错误的提案仍在进行中。因此,现在起非常有必要紧跟最新的发展动态并积极为之做出贡献。同时,也需要为将来的迁移制定一个计划,并在方案确定之后实行。否则,将会存在极大风险被锁定在并非最优的迁移计划中。
高级数字签名
“ 提供多方托管、实用性、隐私保护等。”
在区块链中,高级的数字签名有着很多重要的应用:
我们还可以根据需求定制高级签名协议。
共识算法
“ 展示我们创新和迭代的共识算法 NC-Max 的好处和优势。”
CKB 主网 Lina 上线之后,我们能够收集更多的数据并且进行统计,来分析我们的共识算法 NC-Max 在真实网络环境中的性能。同时,未来的一些改进也会用到这些数据。研究小组将发表一篇 NC-Max 的论文,总结从 Lina 中所学到的一切,并给出其安全性的形式化证明,同时会分享对于未来改进方面的想法。
开发者社区
2020 年,我们将投入大量的资源来发展开发者社区。Nervos Network 的成功在很大程度上取决于在平台上进行实验和构建的开发者们。
我们将通过两大计划来部署这些资源:Grants 计划和区域领袖计划,以此鼓励开发者们优化体验和进行 Layer 2 项目开发。除了这些计划外,我们还会大力发展:工程基础设施,关键协议和标准,生态系统集成,以及针对开发者的教育活动和黑客马拉松等。
Grants 计划
“ 让世界各地的开发者都能够为 Nervos 网络的发展做出贡献。”发展 Nervos 生态系统和开发者社区是实现我们对 Nervos 项目长期愿景和目标的最高优先级计划之一。为了促进和引导 Nervos 生态系统和开发者社区的增长,我们会将大部分的生态系统基金用于资助和支持那些希望为 Nervos 生态系统的发展做出贡献的人员和团队。
我们将会通过清晰且透明的 Grants 计划来实现这一目标。在 Grants 计划中,人们可以为他们对自己所做的,帮助 Nervos 发展生态系统相关的工作申请支持和资金。Grants 的申请将遵循 RFC 流程,让社区和公众都能提供意见和反馈。Grants 计划将会于 2020 年第一季度开始接受基础设施类的 Grants,随后将会扩大接受范围并贯穿全年及以后:
区域社区领袖计划
“ 联结全球重要的区块链枢纽和生态系统。”Nervos Network 是一个无国界的全球性项目。在全球范围内,我们都应该有社区成员代表,并且可以联结全球主要的区块链发展中心。通过一些了解当地文化,并且具有深刻洞察力的社区成员,Nervos 可以实现全球范围内的影响力,同时也可以更好地利用不同区域特定的机会和优势。
在整个 2020 年,我们将在全球特定地区招募区域社区领袖,以代表并支持 Nervos 项目,包括开发者招聘,BD 和合作伙伴,社区建设,影响力,Grants 申请以及开发者和用户应用。
文 档
“ 尽可能轻松地加入 Nervos 生态系统。”
对于任何开源项目来说,高质量的文档都是非常必要的。在 2020 年期间,我们将紧跟工具、新兴设计模式和标准的飞速发展,以确保开发者可以快速了解如何利用 Nervos CKB 开发他们的应用程序,并快速地从构思阶段进入到概念验证阶段。
由 Nervos 基金会维护的 docs 网站将会以通俗易懂、简洁明了的方式,对不断发展的生态系统相关文档进行编写。您可以期望的示例:
在加密经济的世界里,我们迈出了第一步,这仅仅是旅途的开始。在未来,我们还将不断地遇到挑战。对于未知,我们心怀敬畏但兴奋不已,为此,我们已经做好了充足的准备。我们希望在生态中涌现出更多的灵感和创造,通过和社区的共同努力,一起到达心中的彼岸!
欢迎关注我们,并加入社区:
推荐阅读:
Nervos RFC 文档库:
本文来自,仅作分享,存在异议请联系平台删除。本文观点不代表刺猬财经 - 刺猬区块链资讯站立场。