底层公链 Ergo 和 Nervos CKB 的异同点

以下内容翻译自 Nervos 首席架构师 Jan Xie 的 Twitter 推文

(0/N) 最近有几个人问我如何看待 Ergo,它和 CKB 的设计很相似。我的看法如下:

(这个比较是基于我对 Ergo 白皮书的理解:https://t.co/h4aDROBWjM)

(1/N) Ergo 和 CKB 都更青睐 PoW 而不是 PoS,因为前者经过了充分的实战检验且被认为更安全。Ergo 和 CKB 都采用了 UTXO 模型而非账户模型,因为 UTXO 模型简单直观,并行运行的潜力大,具有确定性(且没有副作用)。

(2/N) Ergo 和 CKB 都重视去中心化、长期的可持续性和同行评议的研究。总的来说,Ergo 和 CKB 在愿景上是高度一致的!我们并不孤单!我们都试图扩展比特币模型,但在许多有趣的和深层次的地方,Ergo 和 CKB 存在一些差异:

(3/N) 根据白皮书的介绍,Ergo 的侧重点是金融合约,而 CKB 旨在成为一个适用于不同场景的通用平台。设计目标的不同,导致设计选择的不同。

(4/N) 对于金融合约,Ergo 提供了专门设计的 DSL ErgoScript 用于合约(支出条件)编程。 Ergo UTXO(被命名为 Box)提供了内置的自定义 token 支持。

(5/N) CKB 的合约和状态模型更加通用,也更加抽象:CKB-VM 使用 RISC-V VM,因此你可以使用 Rust 语言、C 语言或者其他语言编写智能合约。它们可以用于金融合约,但是不如 DSL 方便,不过更适合我稍后会提到的其他情况。

(6/N) CKB UTXO(即 Cell)没有内置的自定义 token 支持,因此开发者需要自己创建类似于 ERC20 的 token 合约。这又是对便利性和灵活性的一种权衡。

(7/N) Ergo 采用了对 GPU 友好且抗 ASIC 的 PoW 算法,而 CKB 的 PoW 算法对 ASIC 友好。因为我们认为 ASIC 是不可避免的,GPU 也是 ASIC 的一种表现形式。我们设计了一个非常简洁的新哈希算法 Eagleson,希望可以降低 ASIC 矿机的制造门槛。

(8/N) 对于轻客户端,Ergo 使用了 NiPoPoW 和 AVL+ tree 进行状态快照。CKB 的轻客户端将使用 Flyclient,state tree 的设计尚未确定。在这点上,Ergo 的进度显然领先于我们。

(9/N) Ergo 和 CKB 都考虑到了状态爆炸的问题。Ergo UTXO 前 4 年免存储租金,之后将收取费用。CKB 更加激进,使其原生代币成为链上存储本身,1 CKByte = 1 个字节的链上空间。从第一天开始,你就需要支付存储费用。

(10/N) Ergo 的代币有硬顶,线性释放曲线将在 8 年内结束。CKB 没有硬顶,基础发行大约每 4 年减半,二级发行会一直持续下去,这意味着越往后 CKB 的通胀率越无限接近于零。

(11/N) Ergo 的治理是可调参数和基于矿工投票的软分叉的组合。 一些网络功能可以即时调整,而更根本的变化需要进行软分叉。

(12/N) CKB 对软分叉和硬分叉都持开放态度,希望能更好地适应未来。我们依赖“社会契约”,比如在 Nervos 定位白皮书中约定的 3 个不变的核心:

(13/N) 以及像虚拟机版本管理这样的技术来为某些事情提供保证:

(14/N) 更加正式的治理模式正在设计中。一个软分叉提案正在进行中:

(15/N) 在找到一个实用的解决方案之前,找到一个在使用者、持有者、矿工和开发者之间找到平衡且和激励措施相符合的方案之前,我们应该在 Godwoken 上进行更多的治理实验。

(16/N) 总的来说,Ergo 更适用于金融类应用,CKB 则更加抽象。金融类的应用场景对 CKB 也很重要,但 CKB 还考虑了其他方面,例如 Layer 2、互操作性和 DID。

(17/N) CKB 非常适合上述的其他场景,同时也为金融类 dApp 的构建者提供了一些便利。软件工程就是如此,不断地在权衡和妥协。

(N/N) 我们都把去中心化和安全放在首位,并试图发展一个可以存活几个世纪的系统。我很高兴我们并不孤单!

4 Likes