风险提示:防范以虚拟货币/区块链名义进行的非法集资风险。 ——银保监会等五部门

专访|Nervos公链项目团队:重新定义区块链协议的底层架构

白话区块链 2019-03-22 16:09:24
微信分享

扫码分享

理想中的密码经济网路基础设施会是怎么样的?Nervos公链项目团队如是说:未来的区块链,应该与现有的互联网协议共同运作。很难想像,Nervos是个前所未有的尝试。

作者:Danny Lin / 来源:动区

Nervos公链项目团队在介绍Layer2

为什么还要做一条新的公有区块链?这个问题是许多人看见琳琅满目的区块链项目率先浮现的问题,但对于 Nervos 来说,在回答这个问题之前,必须先重新理解区块链的意义何在;而让「区块链本身」超高效率的运作,从来都不是他们认为的重点。

区块链是互联网协议的延伸,它弥补了互联网协议的不足,但它并不是要颠覆现在的互联网。

Jan 是 Nervos 的架构师与研究员,曾在以太坊(Ethereum)早年参与过两年的核心开发,他认为区块链的出现应该是提升既有网路的价值,对于区块链应有的定位,他这 么告诉动区:

未来的区块链,应该与现有的互联网协议共同运作。

目前,大部分的区块链底层协议都希望让所有的应用在区块链上发生,这也要求了区块链网路必须乘载所有的需求,成为一种世界计算机。

换句话说,它们都试着推翻传统的网路。

但 Jan 认为,高效率的网路运作,是现有互联网协议已经做到的工作,但它还有一些做不到 的事情——「去信任(Trustless)」。电子现金像是比特币(Bitcoin)是一种最直观,且现有网路无法做到的场景,而透过智能合约在以太坊(Ethereum)上搭建的稳定币  MakerDAO 同样如此。

而在什么时候才能正确让区块链发挥其价值之处,却又不会为了达成共识而拖累网路?这个团队想从根本去改变。

Nervos 提出了与现有诸多区块链协议不同的出发点,它们专为区块链网路的「分层分工」而 设计,让区块链网路有更多的包容性。

「理想中的密码经济网路基础设施,同样应该是分层和解耦的架构,通过『一组协议』而不仅仅是一个协议来定义,对自我保障协议提供原生支持,并且有一个无需依赖任何第三方的信任链的根」,Jan 在自己的部落格这样解释。

在 Nervos 的网路中,底层是用于积极的专注解决区块链目前面临到的安全性问题,并嫁接好与大量应用建置的第二层之间的互动关系。

打造信任的底层经济模型「CKB」

如果是一个有想法的公有区块链,其实不太会找到相似之处,

Jan 告诉动区,这也是他们为什么喜欢多与其他团队交流,让不同的想法创激荡出更多火花。

而 Nervos 协议专为分层设计后,会开始出现不同的分工,而最底层的架构应该是支持区块链最根本的安全性,而非在同一个协议中建构所有的需求。

Nervos 近日发表了他们的底层经济模型Nervos CKB(Nervos Common Knowledge Base) ,CKB 作 Nervos 的基础单位,可能是最独特之处。其将区块链的「全局状态」纳入了他们 的底层模型之中。

用户只为转帐付费,但储存帐本具有成本

区块链可以想像成一个帐本,记录著所有人与数字资产之间的关系,区块链依靠着全节点来支 撑整体网路的安全性,它们记录著所有的区块链帐本资料,目前比特币与以太放区块链帐本遇到其中一个的问题即是:用户所支付的成本(或称手续费)皆是为了「改变帐本的状态」,但在改变状态之外,其实用户也占用了一定程度的帐本资源。

举例来说,所有区块链会有一个当前的状态,在区块被处理之前,假设10分钟之前A有100个 Token,B有200个Token,在10分钟之后处理完成,B转帐50个Token给A,A有150个Token,B有 150个Token,10分钟之后的结果,便是区块链的当前状态。

Jan 简单的描述一个区块链转帐,他认为目前的区块链上收取的是「改变状态」的费用,不是状态本身占用的费用。

我们要转帐,是将 A 的纪录与 B 的纪录分别从 100 与 200 个Token改变成 150 与 150 个Token,区块链向我们收取的,是为「改变」而付费,而不是为帐本纪录的存储付费。

Jan 表示,并强调了这之中的帐本纪录的总体成本必须被处理:

在 CKB 模型中,我们从另一个角度看待,用户不仅要为改变付费,同时也要为存放帐本的 金流付出一定的成本。不一定需要支付手续费,但是必要透过某种方式,无论如何,这都必须要有成本。

他认为,只有这样,区块链帐本才不会无限扩大,Nervos 称这样的问题为状态爆炸,经济学上称作「tragedy of storage commons(暂译:存储公有财悲歌)」,若不有所限制,这样的资源势必会被滥用。

资源是有限的,所有的全节点都需要透过自己的硬碟进行存档,同步帐本。

目前在不限制的情况下,使用者只要提交一次手续费即可将资产永远存在区块链上,所人都会滥用它。

Jan 指出,针对这个状态,它付出的成本必须与时间与状态大小成正比,他举出亚马逊公司的云计算服务为例,租用亚马逊的服务除了需要为运算付费,也需要为租的硬体付出在时间与大小上成正比的费用。

CKB,用最简单的方式替状态占用付费

以太坊目前也面临着的状态问题,过度膨胀的帐本状态(状态大小,State Size)可能会威胁以太坊网路的可用性,在未来以太坊2.0的更新中,开发者考虑实现一种状态租赁(State Rent)的功能,即向服户收取存储数据的费用,不过该提案目前也历经许多激烈的辩论,包括目前大多智能合约可能必须重新编写或部署,暂非优先处理。

「我们认为用一种最简单的方法,来实践对于全球空间状态占用成本的收费。」

Jan 表示。

CK Byte(Common Knowledge Byte)是 Nervos 的基础Token,而其最基本的用途,即是占有区块链全球状态空间的权力,CK Byte 让拥有者能够占用区块链的全球状态,假设 Alice 拥 有1000 个CK Byte,那么她可以使用1000 个 Byte 来存储资产、应用程式状态或是其他类型 的数据资料,而一个基本的存储单位其称为「Cell」。

我们透过一种方式,让这个空间本身变成一种资产,你可以想像是一块土地。

Jan 继续向动区表示:

因此我们要向这个空间存放数据时,必须先「拥有」这个空间。

他解释,在CKB中,拥有这个空间的成本即是「占用资金」,也就是拥有CKB,这形成了一 个机会成本的概念,用户为了存数据,将1000元换成了 CKB 获得存储数据的空间,若在一年之后不需要这样的数据空间,随时卖掉 CKB 换成其他资产。

这1000元的使用在「特定时间段」就因此被占用,等于是变相的支付了区块链全球状态的成本。

Jan 认为,以太坊在状态租赁(State Rent)的解决方案上,可能会面对比较大的抗审查争议, 状态租赁类似于预付卡储值,但一旦空间占用的费用花完没有重新加值,虽不会删除资料,但智能合约的功能会被以太坊区块链关闭,会衍生出很多后续问题。

但如果用户已经透过Token持有一定的状态空间,就一定不会出现类似的问题。

只要不取出, 便不会受到影响,因为状态的成本已经间接透过了机会成本支付了。

针对CKB,其如此表示。

Daniel 是 Nervos 的共同创办人,也是知名密码货币钱包 imToken 的第一任 CTO。 他向动区表示,区块链网路必须找到一个稀缺资源进行手续费定价,才能得以支撑矿工的费率 市场,也才得以保持网路安全。

他指出,目前区块链上的稀缺资源有三种:运算、频宽以及空间,比特币与以太坊选择透过频宽来支付资源的费用,然而算力以及频宽都是「瞬间性」的成本(每秒计算多少……),在每 一秒使用过后下一秒又会重新释出,然而空间的存储是可持续性的(这一秒存入的资料,下一 秒不可能删除)。

因使针对资源的稀缺性的本质,他认为「空间」相较于上述两者较可作为设计定价模型的基础。

二级发行,作为矿工持续性奖励

Nervos CKB 的底层协议采用了工作量证明(PoW)挖矿演算法,在Token经济对于矿工激励上 ,他们透过了类似通膨的二级发行,来确保矿工之于网路安全的可持续性。

Daniel 表示,其采用了类似于比特币 UTXO(Unspent Transaction Outputs)模型的方式来计算矿工费,对每一笔交易来说,总输入不能小于等于总输出,之中的差值即是矿工手续费。

我们在底层帐本模型的基础单元Cell模型中,衍伸出了一套基于Cell模型的编程范例。

矿工在 计算验证Cell的输入与输出时,以获取中间的差值,这部分的计算方式是类似于比特币的。

Daniel 这样解释。

这其实(用户)是付出了两部分的钱,手续费是为计算所付出的成本,Cell 的存放则是针对 全局状态占用所支付的成本。

Jan 补充道。

Daniel 表示,在比特币区块链中,透过平台的定期减半的奖励「补贴」是矿工的主要收入,随着时间成长、区块奖励减少,渐渐让手续费在矿工收入中的比例增加,形成了「前期依赖补贴、后期依赖手续费」的现象。

然而,在 Nervos 中,除了有着与比特币类似随时间递减的基础区块奖励,其还有一个二级发行的机制,每年以一定的比例增发基础货币。

矿工可以持续的获得发增的矿工手续费,我们让矿工持续维护网路安全本身也算是一种服务
收费。而使用这种服务的人,需要为矿工支出这样的成本。

Daniel 解释道,并补充:

但它的支出方式并不是直接付钱给矿工,而是透过在网路上透过不断增发的过程,去稀释全网中所有的Token用户的价值。虽然实际上使用的Token数量不变,但价值是在被稀释,并给了矿工。

值得注意的是,Daniel 提到了那些持有Token,却没有使用矿工服务(交易、执行智能合约)的持有 者,Nervos提供了一种名为「NervosDAO」的系统合约,用户则可以选择将Token抵押进系统 合约中,系统便会再增发时自动进行补贴,用来确保这些Token不会因为用户本身持有,但又因 为没有使用矿工服务,无故被稀释价值。

「假设在「二级发行」时,所有CK Byte的60%用于存储状态,所有CK Byte的35%被存放并锁定在NervosDAO的合约中,剩下的CK Byte中的5%保持流动性。那NervosDAO按比例分配 给锁定的Token(用户),最后剩下的5%会被销毁。」

Nervos 在其经济模型提案中如此写道。

从矿工到使用者,考虑到了所有的参与方参与网路的方式该如何进行付费,包括了Token持有者 放弃了流动性,也可以透过DAO合约的质押对币值进行一定的贡献,让所有使用者对于Token 的目标一致,该团队认为,这长期来看会是更加安全的模型。

将「价值」凝聚在 Layer 1

Daniel 表示,透过以太坊所发行的Token,诸如ERC-20等,并不与以太坊的原生货币以太币( ETH)直接相关,但所有的应用或交易,都需要以太币作为支付矿工的计算费用,也就是Gas 费用。

他将这样的概念比拟成电力系统,今日每一个服务无论价值高低,皆是使用一定的以太币作为 服务费用,但今日若该电力系统支持了一个超越其价值的服务,这个系统可能会需要更高的安 全保护。

当一旦ERC等标准的资产价值超越以太坊本身的话,是否会有动机去攻击以太坊本身的网路?

回到区块链,Daniel 这样说道,而反过来说,他认为以太坊无法体现更大的价值:

若今天以太市值100亿美金,一个价值1000亿的资产需要在区块链上发行,他可能不会选择 以太坊,因为它乘载不了。

他认为,如果协议的设计不能体现链上资产的价值,并随着规模扩大其安全等级,是 Nervos 认为目前区块链协议没有适当解决的问题,因此他们反而更专注于在第一层(Layer 1)执行 安全、去中心化,透过在第一层抵押CKB发行资产,并把资产「映射」到第二层(Layer 2) 中,去进行高频率的交易。

Nervos CKB 协议的 Layer 1 上面的计算能力,就像法庭一样。

只要再 Layer 2 上有争议的交易才需要由 Layer 1 解决。这样一来,Layer 1 就能提发挥区块链当中最重要的机制 — 信任机制。而 Layer 1 上面的计算能力,也能得到解放。从整个经济模型的上来看,分工合作,发挥自身最大效益。

Layer1 拥有最终清算效力,凝聚所有的Token(原生Token也代表着资源占用的价值)的价值,也与所有矿工的利益方向一致。

layer 1 的重点在于安全,而不是高效能,…… 很多项目关注区块链的效能,帮助用户降低成本,但一旦谈到成本,再怎么降,无论怎么比都 无法比传统互联网低。

在访谈最后,Jan 向动区这么说道:

这也是为什么我们为什么需要区块链,但不一定需要效能。

尚未完成的道路

到目前为止,Nervos 持续往他们认为的方向努力,以一个成立近1年的团队来说,他们建构了 十分活跃的开发者社群,并持续讨论著对于 Nervos 区块链的想法。

Nervos 已经将他们的底层 Cell 代码开源,并希望在今年能上线测试网路。 除了本身的开发,他们一直以来都是区块链社群的爱好者,坚信着社群与开源文化的精神,Daniel 与 Jan 一直是中国开发者社群的重要组织者,同时也是多年的老同事。

在谈到区块链硬分叉的成本问题时,Daniel 表示,他们自己也开设了播客节目在谈论著类似的议题 ,并时不时的深入探讨像是历史上的硬分叉、以太坊TheDAO事件等议题。

上周,是 Nervos 团队首次来到台北,在上周四晚间一场开发者聚会中,Nervos 的演讲的确 吸引了一些开发者的关注。一位资深区块链开发者向动区表示,这是他第一次听到该项目,但 他可能会开始了解该项目的具体执行细节。

在会议结束后,被问及对于 Nervos 自己怎么看待这样独树一帜的区块链架构将在未来上线:

「很难想像,这是个前所未有的尝试。」

Jan 如此说道。

白话区块链

区块链世界入口第一站,人人都能看懂的区块链;24 小时热点实时追踪。