知县的衙门

  • 首页

  • 标签

  • 分类

  • 归档

从 Layer 2 角度看 Nervos

发表于 2019-06-26 | 评论数:

揭开 Nervos 的神秘面纱

第一次从电话里听到有个项目叫 nervous 的时候,我心想这是什么起名的套路,「Let’s make the world more nervous」吗?直到搜了半天也找不到项目介绍的时候我才意识到,人家可能只是同音不同形,这种高端技法在传统文化中很常见,叫做「通假字」。果然,原来是 Nervos。


nervos.gif

其实说通假字并不准确,毕竟不太可能也同义;但是又很难从字面上解读出这个单词的确切含义,于是我只好浏览目前可以公开的项目资料,希望能够找到一些蛛丝马迹。功夫不负有心人,我发现项目中很多关键实体的命名很有规律:项目名里有 nerv(神经),存储单元叫 cell(细胞),而钱包应用叫 neuron(神经元)…

nervs.png

emmm…这莫不是个「区块链 + 21 世纪显学 + AI」的项目?

drldrl.jpg

安利员不干了,一个电话追过来:

- 不可能,这可是国内技术数一数二的团队做的,你可以查查「mi yuan 科技」,看看团队就知道了。

- 好我查查,前俩字咋写?

- 秘密的 mi,猿猴的猿

- …大哥你逗我?

经历了一番波折,我终于看到了一些的采访稿,了解到了这个「人均 CTO」 的区块链团队,也成功混入项目论坛跟大佬们谈笑风生,这时候我发现了一个问题:这个团队核心成员的头像基本都是二次元风格的,技术灵魂人物 Jan 的头像更是蹭的累始祖级女神 asuka,这时我又想到了每个微信群名的后缀,想到了项目名,Nervos…「Nerv OS」 ??!!(脑海中响起了定音鼓的声音..

nerv.png

作为一个 B 站 5 级年费大会员,看到这样一个团队,怎么能不兴奋,怎么能不加深了解?于是我开始混迹线下活动,参加社群建设,领到了一些团队给的纪念品。现在的我,终于可以笃定地说,我已经充分认知了 Nervos 项目和团队,他们绝对是我见过区块链业内的最专业的 —— 周边生产商!(大雾

ape.png

A Layer 1 Designed for Layer 2

言归正传,毕竟是参加 Rebase 的活动,我去现场也是想分享一下作为 Layer 2 团队对一个分层友好公链的欣喜和期待。

frontpage.PNG

其实很多人对 Nervos 和 CKB 的关系有些困惑:无论是 Bitcoin 还是 Ethereum 乃至 EOS,它们的项目名也是公链名(或者说就没有专门给链起过名),但是 Nervos 的公链为什么叫 CKB 呢? Nervos 又代表了什么?

了解一个项目最直接的方式就是去看它的官网首页,打开 nervos.org 我们就能看到页面顶端的 slogan:

Building the Foundation of the Decentralized Economy - 打造去中心化经济的基础设施

嘛..高举高打,看不出实际内容,没关系我们继续往下:

The layer 1 protocol of the Nervos Network is the Common Knowledge Base (CKB)…
…
Nervos Network layer 2 protocols leverage the security…

这里就比较清楚了: CKB 是 Nervos 的 Layer 1 部分,除此之外还有 Layer 2 protocols 用来支持 Layer 2 。

首页再下面的两大块内容就是分别介绍 CKB 和 Layer 2 了,所以总结一下 Nervos 的宏观结构应该是这样的:

nervos-macro.PNG

Nervos Network 是去中心化经济的基础设施,采用分层设计的理念,在底层(Layer 1)依靠价值贮存公链 CKB 保障资产数据安全,同时提供足够的扩展性,让上层(Layer 2)应用能够专注于支付、DeFi 等业务逻辑,共同造就商业级的应用生态。

愿景我们知道了,但是这么宏大的规划,Nervos 团队想清楚没有、能不能完成?在深入探究了 Nervos 现阶段的一些设计和实现后,我相信这些人真的懂 Layer 2 的需求,也有足够的技术储备将这些想法变成现实。

先看 Layer 1,以下是我总结的「CKB 为什么特别」列表:

nervos-micro.PNG

  • 第一条好理解,专注安全的底层链用 POW 再合适不过了。

  • 第二条比较硬核:CKB 的虚拟机直接能够支持处理器层级的指令集 RISC-V(顺带一提,这里’V’指罗马数字「五」,所以读音同英文’risk five’)。这个事情越解释越容易烧脑,所以我打个易于理解的比方:我们把以太坊的 EVM 比作 iOS,虽然你可以装三方应用,但是很多系统级 App 是不能动的,比如到现在 iOS 的拨号界面都不支持九宫格拼音快速筛选联系人,但是你没办法换,甚至自己开发一个都不行,因为底层不支持;那么 CKB 的虚拟机就是 Android,给你足够的自由度:拨号不好用,换一个就完了,第三方的也不好用,自己写一个也行啊!就是这么自由奔放~你问比特币怎么比?我觉得 … 大哥大?

  • 第三条,专注价值贮存,不需要为 TPS 妥协安全性。

  • 第四条,「价值捕获」又是个时髦的词儿,可以理解为把生态提供的价值反映到通证上的方法。与当前大多数区块链不同,CKB 认为自己价值主要在更安全的数据存储而非转账交易上。

  • 第五条,CKB 经济模型中独特的「二级增发」机制可以让矿工和持币者的长期价值保持一致,基本避免了现在一些公链到后期可能发展为两方对立的风险。

CKB 的特点明白了,那么 Nervos 对 Layer 2 又有哪些支持?我总结了几个自己感受比较深的点:

nervos-micro.PNG

  • 第一条,结合上面关于 RISC-V 的介绍,这里的「密码学基础设施」就可以理解为「拨号 App」,可以根据需要由 Layer 2 开发者自行替换。但是…为啥要换这个?别急,最后一部分我们用一个实际案例来加深理解。

  • 第二条,状态的生成请随意,只要符合链上对状态规则的验证即可 —— 黑猫白猫,抓住老鼠就是好猫,Layer 2 程序猿终于可以放飞自我啦!(说不定产品经理也可以上手了呢?不然我用 PPT 做个 Dapp 试试?)

  • 第三条厉害了:应用方可以让用户用自己发行的资产(UDT,User Defined Token,如 以太坊上的 ERC-20 类资产)支付底层链 CKB 的交易手续费!这就像你在以太坊上转 LXT 不需要用 ETH 付 gas 费了,而是给够 LXT,愿意接受的矿工就可以替你打包交易了。这种交易叫做 Open Transaction,对降低用户门槛有着非常重要的作用。

认识一个人只需要记住高矮胖瘦、五官特点,了解一个区块链项目也是一样。希望小伙伴们把上面的特征理解到位,这样就能很容易看到 Nervos 与其他项目的不(you)同(yue)点(xing)啦 :P

用一个「活生生的」Layer 2 案例加深理解

每次看到 Nervos 大佬(主要是 Daniel)一脸兴奋地向听众炫耀「我们 CKB 的密码学算法是可替换的」然而听众一脸茫然的时候,我都得极力压制住站起来给大家解释「这到底意味着什么」的冲动。这次,我以 LITEX 基于以太坊的 Layer 2 产品研发中遇到的一个真实案例来跟大家好好解释解释什么叫「密码学算法可替换」。

puppet-1.PNG

「状态通道(State Channel)」是一种 Layer 2 技术,它让用户的一些高频但是不那么重要的操作无需上链,而是在链下互相交换签过名的新状态即可,最后如果产生纠纷再把这些签名状态当作证据进行链上仲裁。

不难发现,虽然避免了频繁上链,达成了提速降费的目标,但是频繁签名还是需要的啊!这就导致了用户在应用中每一步操作都会弹出一个请求签名的弹窗…这在体验上是无法接受的,也就产生了自动签名的需求。但是跟钱包聊了一圈下来,大家对开放这种权限都比较抵触 —— 毕竟轻钱包的产品定位就是让用户对自己的资产有控制权,如果打破了不会静默操作用户私钥的约定,一来二去用户会慢慢失去对钱包的信任。于是我们设计了 Puppet Channel:用一个自动生成的帐户来对主账户的日常操作进行「代理执行」,而资产相关的关键操作仍然只能由主账户签名授权,相当于进行了「权限隔离」:

puppet-2.PNG

但是问题又来了:虽然 Puppet 帐户安全性要求没那么高,但如果私钥容易泄露,还是会造成一些麻烦。能不能利用浏览器的系统级密码学 API 对 Puppet 的私钥进行保护呢?比如 Chrome 的 Web Crypto API?说干就干,经过一番调研,我们发现主流的系统级密码学 API 对于 ECDSA(椭圆曲线加密算法)的支持只有一种叫做 secp256r1 的算法,而比特币、以太坊采用的都是偏小众的 secp256k1 算法。一个字母之差,产生的后果就是 Puppet 签名的数据合约验证不了,无法承认。

puppet-3.PNG

其实早在 2013 年就有人向 Chromium 项目提出过增加对 k1 算法支持的提案,但是被泼了一盆冷水;也有牛人试图利用「软解」的方式,写合约实现 r1 算法的验签,我们按照说明在私链上部署测试的结论是 —— 用不起:软解一次需要的 gas 高达 89 万 8 千多,时间需要 2369 毫秒;而调用以太坊内置的 ec_recover 合约进行 k1「硬解」的 gas 损耗只有 5 万 3 千多,时间只需要 39 毫秒。我们不仅感叹:亲生的就是不一样啊!

后来我们就只能放弃了对 Puppet 私钥的保护,因为发现了在其他条件下这一风险也并没有对系统安全性造成太大的折损,然而寻求解决方案的曲折经历让我们深感底层支持的重要。那么如果换 CKB 做底层,上面的需求怎么做呢?

  • 找一个支持 LLVM 编译的 secp256r1 算法库,编译出二进制;
  • 把二进制部署到的某个 cell 里,在自己合约需要的时候加载调用;
  • Done

A layer 1 Designed for Layer 2

现在,你理解 Nervos 了吗?

Nervos CKB 经济模型提案译文(背景部分)

发表于 2019-03-19 | 更新于 2019-06-26 | 分类于 Tech | 评论数:

Nervos 团队前些天提交了他们的底层共识链 CKB(Common Knowledge Base)的经济模型提案,知县认为其中提出的「通证经济模型设计目标」以及对主流公链经济模型的分析都很有价值,为了加深理解就翻译了一下,顺便贴出来供大家参考。

Nervos CKB 的经济模型设计也是相当出彩,已经有各种文章解读了就不翻啦,感兴趣的小伙伴可以搜一下,或者直接阅读下面的原文:
英文原文链接(GitHub Hosted):Crypto-Economics of the Nervos CKB

P.S. 本译文对应原文前 3 个 Section


1. 通证经济设计的几个目标

面向公众的无需许可区块链(即常说的公链)是一种公开的、分布式的系统,各种各样的角色按照协议的规定参与其中。一个优秀的加密经济模型应该能够提供足够的激励,对不同参与者追求私利的行为进行协调,最终达到与整个协议网络需求的一致性,整个区块链系统才能成功运转。

进一步来说,设计加密经济模型必须回答这么几个问题:

  • 经济模型如何保障协议的安全性?

  • 经济模型如何保障协议能够长期、可持续地发展?

  • 经济模型如何协调不同参与者的目标,从而让它们共同为协议网络贡献价值?

2. 比特币的加密经济设计

比特币协议用原生货币 BTC 来激励矿工产出和验证区块,它的共识机制 —— 中本聪共识(Nakamoto Consensus)将最长链作为唯一的合法链。在这一规定下,矿工总是希望用最快的速度产出区块和验证别人发来的区块,这就保证了整个比特币网络能够对全局状态保持共识。

作为原生货币,BTC 承担了「功能通证」和「资产」的双重角色。作为功能通证时,BTC 代表了一种「交易媒介」(Medium of Exchange, MoE),可以用来支付手续费;作为资产时,BTC 代表了一种「价值贮藏」(Store of Value, SoV),可以用来进行资产的长期保值。这两种角色不是相互独立的,它们都对比特币网络的正常运转具有重要意义。然而,我们仍然要分析两种情况下用户的经济动机,这样我们才能更好地探讨比特币网络的可持续性。

比特币协议用固定的区块大小来约束全网的交易吞吐量。吞吐量有限,为了让自己的转账能够尽快处理,用户需要对手续费进行竞价。在这种类似拍卖的机制下,转账的需求量就决定了手续费的金额 —— 转账需求越多,用户需要支付的手续费就越高,因为只有这样才能击败其他竞争对手,让自己的交易成功地被矿工打包进区块中。

2.1 作为交易媒介网络的比特币

在交易媒介(MoE)的使用场景下,比特币网络主要被看做一个点对点的价值交换网络。MoE 用户得到的效用不在于持有 BTC 带来的资产增值,而在于比特币网络可以进行「转账交易」的能力本身。实际上,一些专门从事比特币支付业务的服务商正是利用了这项能力:他们提供足够的流动性,让收付双方无需长时间持有比特币,而是在付款前将法币兑换为比特币,经比特币网络发送交易,在收款后又能及时地兑换回法币,既完成了价值转移,又避免了币值波动带来的风险。MoE 用户对比特币的币值及其波动无感,他们只关心交易手续费对应的法币价格。

想要成为占主导地位的 MoE 网络,比特币还面临着很大的挑战。如果比特币协议继续维持对出块时间和区块大小的限制不变,也就是给交易的吞吐量规定了上限,那么随着比特币越来越成功(币价越来越高),交易手续费也会水涨船高,比特币相比其他同样提供转账能力的竞争币(包括自己的分叉币)就会落了下风;如果致力于维持一个较低的手续费水平,那么比特币协议势必要缩短出块时间或者产出更大的区块来增加交易吞吐量,但是这又会提高分叉率和共识成本(节点需要更多的带宽和存储资源),逼迫比特币在安全性和去中心化程度上做出一定的妥协。

2.2 作为价值贮藏网络的比特币

价值贮藏(SoV)取向的用户将比特币网络看做一个能够对其原生货币 BTC 提供足够安全保障的网络 —— 这让 BTC 能够在较长时间维度下保值。SoV 用户还将 MoE 看作一种必要的出入金能力,同样服务于自己的需求。作为 SoV 用户,尤其是那些打算长期持有 BTC 的用户,他们不太关心转账交易的成本,因为随着时间的推移这些成本可以被摊薄。但是他们非常关心 BTC 的币值,以及币值所依赖的比特币网络的安全性和去中心化程度:如果比特币网络的安全性下降,能够被轻易地攻击,那么它就无法再承担 SoV 的作用,BTC 也会相应地失去价值;如果比特币网络变得中心化,那么作为一种资产的 BTC 将丧失价值的独立性,持有者将会承担交易对手风险(counterparty risk)。

为了成为一个成功的 SoV 网络,比特币必须继续保持当前货币政策的稳定,这样才能维持一个足够安全和去中心化的网络。然而,比特币的货币政策是有「硬顶」存在的:当全部的 BTC 被挖出后,比特币网络只能依靠交易手续费对矿工进行激励。至于这一模型是否可持续,尤其是考虑到 SoV 网络本身的预设中就不会有太多交易,目前还没有任何定论。

2.3 谁来长期补偿矿工?

安全和去中心化是区块链网络的必要属性,而维持这两种属性需要高昂的成本,因此区块链网络的运营者(如矿工)需要获得足够的补偿。在比特币现有的模型下,一旦挖光了全部的 BTC,网络安全只能全部依靠交易手续费来维持。但是在这种情况下,前述两种用户的利益和网络的诉求产生了矛盾:MoE 用户转账快速,暴露在网络安全风险中的时间非常短,所以他们不愿意为提高网络安全性买单;SoV 用户长期持有,他们会持续地受到网络安全风险的影响,所以他们愿意花钱提高网络安全性,可他们能够贡献的交易量又极其的少。

在比特币共识机制的激励下,矿工会将最长链认作唯一合法的网络状态。矿工持续供给的哈希算力不仅仅保障当前区块的安全性,也保障了最长链上所有历史区块内容的不可篡改性。SoV 用户的资产安全持续依赖于这种保障,但是矿工却只能从他们那里得到偶发性的交易手续费作为酬劳,这种模式是不可持续的。

在 SoV 网络中,利用通货膨胀(即增发货币)对网络安全进行资金支持的方案在激励层面上更加友好。在基于通货膨胀的区块奖励机制下,从持续性的网络安全中获益的人(SoV 用户)向提供这种安全的人(矿工)进行一种间接偿付,而偿付来源是增发的货币,数额则与获益人享受服务的时间成比例。

3. 保存价值和处理交易的智能合约平台

与比特币等支付网络类似,以太坊(Ethereum)及类似的智能合约平台也具备保存价值和处理交易的双重能力,但它们具有的图灵完备的可编程性能够承载更加广泛的用户场景。智能合约平台的原生货币一般用于支付去中心化计算所需的成本,但是平台能够保存的价值不仅仅是原生货币,还有去中心化应用的内部状态,比如 ERC-20 类型的智能合约中记录的加密资产所有权信息。

另一个显著的不同是智能合约平台上的交易能够更容易地进行「迁移」:通过一些互操作协议,主链上的交易可以被转移到一条手续费更低的区块链上,交易完成后的资产结果也可以安全地结算回充当「记录系统」的主链。由于智能合约平台能够运行更加高级、复杂的脚本,在上面实现这样的协议易如反掌。

智能合约平台的经济模型也面临着与支付网络类似的极化趋势。凭借其卓越的处理能力,智能合约平台在处理交易和保存价值这两种用户场景上都会变得更加「特质化」—— 也就意味着往往会顾此失彼。从经济学上的角度说,这种分歧的根源是两种用户场景对系统资源的整合方式不认同:交易处理消耗的是计算能力、网络带宽这些可以实时恢复的资源,而价值保存消耗的是对系统状态空间的长期占用(也就是对全节点存储空间的长期占用)。不难发现,为其中一种模式优化的经济模型很难兼顾到另外一种。

有竞争力的 MoE 平台会优先选择维持较低的手续费水平,因为 MoE 用户可以接受不那么理想的安全性水平 —— 转账操作相对长期持有来说只是发生在一瞬间,他们暴露在安全性风险中的时间有限。他们也不介意交易有被审查的可能,只要让他们有能力把交易迁移到其他平台上去就好。如果一个 MoE 平台花大力气加强安全性或是提高抵抗审查的能力,那么它的交易成本就会比较高,这些成本要么体现为更高的手续费,要么体现为更高的资金成本(比如在实行「资产数量决定使用权」的平台上),这些都会让平台变得不那么有竞争力。一旦出现了设计精巧的跨链协议,使得状态能够「去信任地」转移,也让交易欺诈能够被识别和拒绝,那么前面的结论就会更加明显。我们已经看到了很多这样的例子:在中心化的加密货币交易所以及某些中心化程度较高的区块链平台上,MoE 用户常常将对成本的考量优先于对安全性的考量 —— 即便某些方面有缺陷,这些平台也可以依靠其低廉的交易成本而备受欢迎。

而有竞争力的 SoV 平台则需要持续性地维持一个安全和抵抗审查的环境,这要求它具备与 MoE 平台不同的经济模型:不再针对于即时发生的交易,而是围绕着用户对全局状态的持续占有来讨论:如何度量他们对这些关键资源的消耗,从而让用户为此付费。

知县

知县

无折腾不生活
2 日志
1 分类
2 标签
Links
  • LITEX
© 2019 知县的衙门
由 Hexo 强力驱动
|
主题 – NexT.Pisces
0%