Celer 深度测评

白话区块链2018-07-01 03:27:54

白话区块链

从入门到精通,看我就够了!

评级机构:NPC & BlockVC

评级模型:NPC 项目评级成长模型 V1.2

Celer Network

(Bring Internet Scale to Every Blockchain)

项目概述: 

该项目定位于链下可扩展性解决方案,旨在将互联网规模带入区块链。其在传统链下解决方案的基础上提出了新的技术解决方案和经济模型,且该方案经过实验模拟结果显示有数量级的性能提升。项目开发团队实力不俗,且有著名的名校研究员和著名开发工程师为顾问指导,有望在链下扩展性方面取得突破性进展。但是,状态通道也存在天然的局限性,比如其更适用于固定交互双方的高频互动,而不适用于频繁变动的交互双方的低频交互。即便如此,链下状态通道作为公有链的可扩展性增强套件,一旦成功突破将有利于推动区块链的实用化。


项目亮点: 

1、技术逻辑可行,且已进行模拟验证。 

2、相对合理的经济模型。 

3、得到包括 Pantera,DHVC,FBG 在内的投资机构青睐,社区认可度高。 

4、团队技术强劲。投资人优秀。


缺点:

1、项目尚未开源,更多的技术细节有待披露。

2、开发难度较大,存在一定落地难度。


NPC 总评: 

炒作指数:中高

风险指数:中

NPC兴趣指数:高


*本期测评配有 NPC 社区组织的 Celer AMA 活动,产生了很多有价值的内容,请在后台回复“AMA”查看。


*NPC 测评模型简介 

NPC 项目评级模型分为风险模型与成长模型,其中风险模型为拒绝模型,旨在通过可量化指标全面评估项目风险性,进行项目的初步筛选;成长模型则专注于对项目进行全方位地深度评测,旨在考察项目的成长潜力,筛选出最具价值的投资标的。由于短期资本市场的不可预测性,NPC 更专注于发掘具有长期价值的优质区块链项目。

本期评级机构:NPC & BlockVC

战略支持:徒子财经


本期分析师:知行者,谢骏毅

背景调查:Goliath

编辑:周徒子


项目概述 


该项目定位于链下可扩展性解决方案,旨在将互联网规模带入区块链。其在传统链下解决方案的基础上提出了新的技术解决方案和经济模型,且该方案经过实验模拟结果显示有数量级的性能提升。项目开发团队实力不俗,且有著名的名校研究员和著名开发工程师为顾问指导,有望在链下扩展性方面取得突破性进展。但是,状态通道也存在天然的局限性,比如其更适用于固定交互双方的高频互动,而不适用于频繁变动的交互双方的低频交互。即便如此,链下状态通道作为公有链的可扩展性增强套件,一旦成功突破将有利于推动区块链的实用化。


一、项目定位

众所周知,可扩展性不足是目前区块链技术发展所难以回避的一大难题,而链下状态通道是解决区块链扩展性不足的非常有前景的发展方向之一,特别是可以帮助到已有的性能不足的公链。该项目期望通过一套完整的分层架构在以下四个方面去解决区块链这的可扩展性瓶颈: 

1) 支持任意 DApp 和链下智能合约状态快速更新的通用性状态通道与侧链; 

2) 具有最优证明的分布式支付网络路由算法; 

3) 高性能 DApp 开发架构与运行环境; 

4) 能够创造网络效应,给运营节点提供充足资金,以及保障线下状态安全性的新经济模型。 

Celer 旨在通过以上技术革新实现将互联网规模带入区块链,帮助区块链商业化落地的宏大愿景。


评价:十分必要


通过链下状态通道提升区块链扩展性的技术方案早已是老生常谈,然而大多数项目提出的技术方案基本上注定只能停留在小规模范围的实验阶段,难以得到大规模的商业应用。原因在于,对于大规模商用来说,交易成本(时间和金钱等)至关重要。


对于去中心化的区块链系统而言,其经济模型的重要性足够与项目的技术路径相提并论,它决定了一个项目能否最终长期稳定的运行。经济模型设计的关键在于根据区块链系统的功能和目标来巧妙平衡网络效应、流动性、可用性和安全性等彼此冲突的因素。该项目的最大亮点在于其清楚地认识到一个真正可持续运转的大规模商用区块链系统所必须面对的难题并进行了正面的合理思考,甚至进一步给出了清晰的技术路径。此外,该项目的链下解决方案-广义状态通道不只是局限于链下支付这一领域,而是将应用领域拓展到可适用于所有的需要状态更新的领域(如五子棋游戏中双方的棋盘状态更新等)。


虽然该项目最终落地之路尚且漫长,但其无疑朝着正确的方向在前进,故评级该项目十分必要。


二、商业模式和估值

经济模型

(链下处理方案应该兼顾资金流动性、可扩展性、可用性和安全性,而其中的经济模型是至关重要的部分) 

Celer 旨在通过链下技术解决公有链的可扩展性瓶颈,达到每秒数十亿次交易,一旦成功将打破目前区块链技术不能实现大规模商业化落地的尴尬现状。此外,该项目还将链上智能合约中普遍使用的逻辑通过广义状态通道技术引入链下,以期望使 DApp 实现与传统互联网App同等的使用体验。 


传统的链下扩容解决方案往往要求交易双方负担高昂的保证金才能开启和维持状态通道,这极大地限制了其商业化应用场景。以 Celer 网络为例,即使其侧链通道能显著降低所需要抵押的保证金,但依然必须与通道的数量和单个通道的状态(如支付)中继能力成正比。这就要求 Celer 网络中必须具备大量的流动性资金以保证状态通道正常运转。此外,一般的状态通道必须要求用户双方保持随时在线,否则就无法保证公平和安全,这种可用性的不足极大限制了状态通道的应用。 


为保证 Celer 网络能够满足链下扩容商业化落地的愿景,该系统必须在保证资金的流动性的基础上,尽量保证系统的可扩展性和可用性。因此,项目方综合考虑了网络中Token的流动性、链下扩容的可扩展性和可用性三大因素,提出了能使三者相互平衡和协调的Token经济体系,即 cEconormy (如下图所示)。

cEconormy中三个相互关联的关键部分 


该 Token 经济体系的功能主要由流动性资金担保挖矿机制( PoLC Minng, Proof of Liquidity Commitment Mining )、流动性资金支持拍卖机制 ( LiBA, Liquidity Backing Auction )和链下状态守护者网络( SGN, State Guardian Network )三部分构成(如上图所示)。 


cEconormy 中一共有 4 种类型的参与者:终端用户( EU,End User,仅使用支付服务)、网络流动性资金供应商( NLB,Network Liquidity Backer,提供网络所必须的流动性资金)和支付服务提供商( OSP,Off-chain Service Providers,提供状态通道)和状态守卫者( SG,State Guardian,托管用户状态)。简而言之,此处的用户 EU 不一定指代人类,也包括物联网 IOT 设备、流媒体供应者、 CDN 供应者甚至是链上/链下智能合约等。 OSP 通过为链下交易提供状态支付通道来赚取交易手续费(类似于银行收取转账手续费),其职责在于维持状态支付通道的正常功能(类似于银行保障转账渠道畅通)。 NLB 则通过将闲散资金锁定在 Celer 网络中一定时间来赚取CELR奖励和利息,其主要职责是为 Celer 系统提供足够的流动性资金(类似于客户在银行进行定期存款为银行提供流动性资金,存款方可获得奖励和存款利息)。而 SG 则负责在用户不便时进行状态托管(类似于应酬等饮酒后不便于驾驶而找代驾一样)。 


该经济模型的具体描述如下:

(1) PoLC 挖矿机制 

(通过引入挖矿经济激励为支付系统带来流动性资金) 

该挖矿机制是整个 Celer 网络流动性资金的关键源头。与抵押协议类似,网络流动性资金提供商( NLB )将个人闲散资金(如 ETH、 BTC 等)抵押锁定在抵押担保合约( CCC, Collateral commitment contract )中后,系统根据相应的“挖矿算力”(取决于锁定资金量和锁定时间)给 NLB 奖励 Celer 网络Token CELR 。当网络系统中存在多个 CCC 合约时,每个 CCC 所挖矿获得的 CELR Token正比于其“挖矿算力”。此外, CCC 合约除了能参与 LiBA 拍卖机制之外,不具备除资金抵押担保之外的其他功能。 


(2) LiBA 机制 

(通过 LiBA 机制来为状态通道服务供应商 OSP 提供足够的流动性资金) 

对于状态通道提供者( OSP ,提供状态通道服务)而言,他们可利用 LiBA 机制获得 100% 保证金的 IOU Token( cCurrency,类似于借条,如果借贷的是 ETH 则 IOU Token为 cETH )用做链下扩容中继时所需的价值转移媒介。

该拍卖机制的基本过程是: 

OSP 在 Celer 网络提交所需借款资金量和借款时间等信息以创建标准的 LiBA 智能合约,并发起流动性资金支持拍卖( LiBA )过程。该拍卖过程为匿名拍卖,其竞价信息包括出借方期望的贷款利率、可抵押的流动资金数量(抵押时长为竞拍发起者 OSP 所要求的时间)、CELR Token 数量等。为了便于 PoLC 矿工( NLB )参与竞拍,该竞拍机制允许矿工通过 CCC 合约提供流动性资金参与竞拍。 


拍卖过程采用 VCG 拍卖机制((该竞拍机制可保证竞拍者按照真实估值出价,但机制较复杂,此处略过),拍卖过程中根据竞拍者的竞价信息计算得到一个“幸福指数”,并根据一定规则筛选出最终的竞拍获胜者。尤其需要指出的是,如果竞拍者分数相近,那么持有 CELR Token 数量较多者胜出。 


拍卖结束后, OSP(借方)需要向 LiBA 拍卖合约预先支付利息,而拍卖合约收到预付利息后会按照 1:1 的比例生成 IOU Token 发送给 OSP 所在的状态通道合约( cCurrency,以抵押金为 ETH 为例,则生成cETH )。该 IOU Token 将被用于链下状态通道中的价值转移媒介。一般而言,在拍卖合约到期之前,OSP 会将所有借到的 cETH 发送回拍卖合约来进行负债清算,至此该拍卖合约失效。由于 cETH 与 ETH 之间为 1:1 关系,用户可随时无风险的终止链下交易并提取资金。


(3) SGN 网络 

(通过 SGN 网络让用户在离线时能进行链下状态托管,防止交易失败或中断,提升 Celer 网络的可用性) 

SGN 网络即为链下状态守护网络,是一条为离线客户守护链下状态的侧链。CELR Token 持有者可通过抵押 Token 成为链下状态守护者,所提交的链下状态任务的守护者会基于状态哈希和”责任分数”来随机挑选。但抵押 Token 越多则有更大概率被委派守护链下状态的任务,并获得更多手续费收益。通过支付一定的费用,Celer 网络的用户可在离线前将链下状态提交到 SGN 网络托管一段时间(如防止对方擅自撤销不利交易等)。 


综合而言, LiBA 和 PoLC 集中于如何以更容易的方式将状态交互过程的中间环节引入链下,而 SGN 则专注于保护链下状态转换过程,旨在能将链下状态在必要时带回链上(如对方尝试欺诈时)。 


在整个经济系统中,CELR Token 可用于流动性资金借贷防欺诈债券的抵押金、支付通道注册费的支付媒介、交易手续费以及其他可能的服务费。此外,在系统运行的前 5 年,新的 CELR Token 将通过 PoLC 挖矿产生,而 LiBA 只需要将 Token 进行抵押,抵押期后 CELR 仍归属于贷款方。当 5年 PoLC 挖矿期结束后,LiBA 将开始消耗 CELR ,被消耗的 CELR 将不再返回给贷款方,而是作为连续的 PoLC 挖矿奖励注入系统。 


在安全性方面,Celer 具有如下设计: 

1、NLB 倾向于选择向没有任何违约记录的 OSP 进行贷款。 

2、新铸造的 cETH 只被允许转账到位于白名单中的状态通道合约中。 

3、cETH 只能以一个上限的速度以下被逐渐花费。 

4、OSP 可以做很多事情来维护一个安全的基础设施,如分区多节点部署,网络基础设施安全访问规则的形式化验证等。 


评价:经济模型合理,解决了链下扩容通道的流动性资金难题

该经济模型十分全面,对网络的参与者进行了有益的区分并为每种类型的参与者设计了对应的经济激励机制。该经济模型的最大优势在于通过激励机制将外部流动性资金引入 Celer 网络,从而避免了必须由用户提供大量抵押金的尴尬。 关于可能出现的主链 DDOS 攻击(通过发行一个低成本主链并接入 Celer 网络中,因为该主链Token一文不值,故可以发送大量垃圾交易来耗尽 Celer 网络的支付 relay 能力),该经济模型也能进行不错的防御。原因如下: 如果一个公链的 Token 需要在 Celer 网络中调用大部分状态通道就必须就必须被大部分 OSP 节点认可其价值(如 ETH ),否则将无法获得在 Celer 网络中的大规模支付能力。因此,对于一个一文不值的公链 Token,必然没有大规模共识,无法得到 Celer 网络中大部分 OSP 的支持,也就无法瘫痪整个 Celer 网络的支付功能。如果该主链 Token 获得大规模共识,得到绝大多数 OSP 的支持,就说明该Token不再一文不值,这又导致攻击成本极为高昂。


技术可行性

关于 Celer 的技术分析部分主要采用 NPC 成员谢骏毅的分析(详见链下交易梳理之三 Celer Network)。 


Celer 的技术路径主要采用了一个链下分层架构,在这个架构中,包含了广义状态通道模型和侧链型通道(cChannel),带通道平衡的高效支付路由(cRoute),链下应用操作系统(cOS)几个部分组成。 


下面对 Celer 网络的主要特性进行逐一分析:


1. 广义状态通道模型 


闪电网络和雷电网络均是着眼于链下的简单支付(也就是 A 愿意支付钱给 B ,至少在系统看来是无条件的支付),从而试图减少主链的负担。然而随着以太坊平台的成功普及,链上的带条件支付已经能通过智能合约来简单实现和部署。智能合约的存在使得很多人为的条件判断和仲裁可以进行自动执行,为区块链的商业落地场景平添了许多想象力。但是链上智能合约的执行均需要经过全网共识,不仅昂贵且交易速度慢,极大的限制了其进一步的商业应用。 


Celer 通过提出新的广义状态通道模型,实现链下智能合约与相应的条件状态转换,实现区块链应用运行的快速、低成本、灵活和可扩展性等特性。Celer Network 的广义状态通道实现了一套标准,能够使得各类区块链应用都方便地接入和符合这样的标准来进行开发。 Celer 中最基本的状态通道是多人双向广义状态通道连接( Generalized Payment Channel GPC ),和传统的闪电网络一样,需要将存款存入主链来创建通道,但不同的是,Celer Network 定义了一套广义状态通道模型标准。该模型在数学上定义了通道状态,状态证明,条件状态转换,条件状态转换群的抽象模型,通过这些抽象模型,提供来链下智能合约与任意状态转换的基础。在这样的抽象模型上,Celer Network 提供了一系列的自带特性,具体的内容可以参见项目白皮书。我们现在举一个简单的列子来说明这些抽象的概念。一个存在于 Alice 和 Bob 之间的支付通道的状态由以下元素来构成: 

1、Alice 的当前余额

 2、Bob 的当前余额 

3、Alice 的签名 

4、Bob 的签名 

5、通道内当前状态的序列号( Sequence number, 单调递增,最高的序列号代表当前最新的有效状态) 

6、两人之间已创建但还未结算完的支付。每笔支付指定了支付人,收款人,支付金额和触发支付的条件。 


举例说明:

一开始,Alice 链上存了100 ETH,Bob存入50 ETH。在创建了通道后,当前的状态就是: 状态1: 100 | 50 | Alice 签名 | Bob 签名 | seq1 | 无任何未结算支付 


然后,Alice 打算和 Bob 玩个小“游戏”,谁下棋赢了就付给对方3美元(便于理解,此处假定3美元等值于5个 ETH)。这里输赢结果需要是可验证的自于链上的状态。于是 Alice 会创建以下状态并进行签名。 


状态2: 100 | 50 | Alice 签名 | 空 | seq2 | 一对未结算的支付。支付1: 如果 Bob 赢了,Alice 付给Bob n ETH;支付2: 如果 Alice 赢了,Bob 付给Alice n ETH。需要 Bob 在时间点 T 之前对支付进行签名。 


Bob 接受后进行签名,于是变成 状态2':100 | 50 | Alice 签名 | Bob 签名 | seq2 | 一对未结算支付 


在这之后,Alice 和 Bob 之间开始玩儿游戏,整个游戏的过程可完全在链下进行,这样使得整个游戏能够非常高效和顺畅的运转,为用户提供良好的游戏体验。 


假设Bob 赢了,Bob 会发起状态更新,即链下扩容行为 状态3: 100 - 5 | 50 + 5 | 空 | Bob 签名 | seq3 | 无未结算支付 


Alice 愿赌服输后,进行签字,于是: 

状态3: 100 - 5 | 50 + 5 | Alice 签名 | Bob 签名 | seq3 | 无未结算支付 如果 Alice 不愿签名,则 Bob 可以发起链上纠纷仲裁,并且提供所有以上的支付历史(通道的状态历史)和条件支付所依赖的条件。 


以上的流程虽然比我之前想象中的要更加“手动”一些,而且看起来只是比闪电网络等增加"状态2"和"状态3'",不过将通道如此通用化看起来还是很舒服的,总体还是又进了一步。通过广义状态通道,celer 希望将链下扩容方案拓展到支付之外的领域。此外如前文所说,Celer 这里并没有像闪电网络那样具体说明了怎么通过不同的密钥签名来作废之前的支付或状态,防止有一方耍赖将对自己有利的旧的余额分配进行上链兑现。


2. 链下分层架构

从上一点推演而来就是可以站在更高处看待链下交易,即:链下交易并不是链上的一个简单附庸,而是一个独立的世界,其实可以有自己的具体架构和层级,并且可以选择将链下体系应用在不同的主链上。Celer 给出的分层架构极大程度上借鉴了互联网分层协议模型,看起来还是蛮贴合的。 


从最底层开始,第一层是 Celer 通道层,对应的是 TCP/IP 模型中的网络接口层,基本的作用提供链上和链下的过渡和连接,负责两两之间的通道创建和管理,并且将实实在在发生链上交易的主区块链进行抽象和隐藏,从而可以应对各种不同的实际区块链作为自己的底层宿主。就像互联网的网络接口层那样提供与实际物理硬件之间的接口,以保证上层协议不用关心纷杂的底层细节。当然具体怎么实现各种主链的支持 Celer 并没有交代太多。 


往上是 Celer 路由层,正好对应的就是网络层,即众所周知的 IP 协议。职责也几乎一样,就是维护一个实际的网络拓扑结构,主要解决最佳路由选择,拥塞控制和网络互联的问题。而且将 Celer 路由层单独区分出来的好处就是可以仿照互联网网络层那样支持将某一个支付进行拆分后分开进行路由和传达,甚至每个拆分下来的碎片可以走不同的路径, 类似于一个端到端的信息可以实际拆分出多个 IP 数据报( datagram )一样。这大概就是建模站在巨人肩膀上的威力了,很自然就推导出了这么个不得了的 feature 。 


最上层是 Celer 应用层,对应的是应用层,只不过互联网中的应用层里除了实际的应用程序还有各种五花八门的应用功能协议,比如 HTTP ,FTP 等,而 Celer 这里则只是包括了调用传输层接口的应用程序。本层的好处需要结合封装良好的输出层,可以允许第三方应用程序的开发更加方便、直观且不易出错,从而避免开发者处理复杂的链下通信协议和链下状态管理,提升开发者的开发体验和终端用户的使用体验。


3. 基于拥堵梯度和通道平衡的路由策略 


价值传输是区块链应用的核心需求。在链下网络中,借助状态通道(比如支付状态通道)可以很容易地在两个不信任个体之间实现高速价值传递。但是,由于建立状态通道通常需要链上操作,所以在任意两人之间建立状态通道来直接传递价值的做法是不实际的。因此,我们需要一个路由策略来让价值在链下网络中被高效可信地传递。目前基于两人通道间的路由策略大部分都是基于最短路径的路由算法或者其改良版本。最短路径路由是传统计算机网络中被广泛使用的算法,但是并不适合链下网络。其主要原因是传统计算机网络的带宽是“无状态”的,比如你一条100 Mbps 的链路带宽就是100 Mbps 不会改变,但是链下网络则不同,随着价值交换的进行,每条通道的可用带宽(余额)是一直在发生变化的(比如一个存了10ETH的通道,转了10 ETH 之后通道就变成0带宽无法再使用),这就造成了网络的拓扑和状态频繁改变。由于任何实际的最短路径路由算法都是分布式的,在网络拓扑变化时都要花一定时间重新收敛到新的最短路径。因此,在链下网络这种网络状态频繁变化的场景下,最短路径路由算法可能一直处于不稳定的状态而无法收敛,找到的价值传递路径大多数情况下也是不好的。同时,最短路径算法没有考虑到通道平衡这一点,会使得大多数的通道都变成单向传输,进而使得网络中大量通道都变得不平衡(比如一端带宽是100,另一端是0)而无法继续传递价值。 


比如一个 A、B 和 C 的三角关系中(存在双向通道 AB,BC,AC ),每个通道内每一方都有100 ETH(左上图,其对应的网络拓扑如左下图所示)。如果这个时候我们发起一波连锁支付:A 给 B 100, B 给 C 100, C 给 A 100,那么无脑的最短路径支付就会导致中上图的情况,即每个通道内都是 0 : 200 的状态,其对应的网络拓扑是一个逆时针环(中下图)。如果同样的连锁支付继续(A 给 B 100, B 给 C 100, C 给 A 100),那么无脑最短路由则会进一步造成右上图的情况,每个通道的带宽反了过来,其对应的网络拓扑是一个顺时针环(右下图)。如果一直采用最短路径路由,网络拓扑会被频繁的逆转:逆时针环 → 顺时针环 → 逆时针环 → …

而如果一开始让 C 绕个远路,走 C → B → A 的路线,那么所有的通道则会一直保持 100:100 的平衡状态(如下图所示),网络拓扑也保持相对稳定。

由此观察,我们可以发现最短路径会频繁地导致通道不平衡以及网络拓扑的变化,导致一个高度动态的环境。任何分布式的最短路径算法都很难适应这种高动态的网络拓扑。因此我们需要一个更加聪明的路由机制来维持通道平衡,可以像上面 C 到 B 到 A 那样另辟蹊径,在完成支付的同时保障了通道两头金额的平衡。这里的难点在于网络的价值传递请求(比如谁给谁在什么时候转了多少ETH)是事先不知道的,同时因为整个网络环境是分布式的,所以不存在一个全局优化的办法,只能通过局部优化来影响全局。 Celer 受到了无线网络中的堵塞梯度( congestion gradients )的启示,具体来说是“背压路由算法”(具体后面会涉及),将梯度网络的一套概念用到了链下状态通道网络中,实现了通道平衡和高 TPS 。 


这里先来看下几个概念。梯度( Gradients )的概念大家应该在高数微积分里有学过,它在机器学习 ML 和数字图像处理中有着广泛的应用,比较常见的可能就是梯度下降法( Gradient descent )了。具体来说,假设一个三维的山坡的函数 H(x, y) ,那么点 (x0, y0) 所在的高度 z0 = H(x0, y0)。这时,在点 (x0, y0) 上的梯度的几何含义就是整个山体在该点坡度最陡的方向(投射到 xy 平面);在数学上表达为 H(x,y) 分别在 x 和 y 方向上的一阶偏导数所组成的一个二维向量(在 xy 数轴组成的二纬平面上),该向量所指的方向就是函数值 z 变化最快的方向。下图中的黑线就是从山顶处某起点下坡到山脚最快的路径,也就是一路上梯度给出的方向指引,换句话说,如果有一条河流从该起点出发,那么他在重力势能的引导下必然会选择这条最快路径。当然用三维山体的栗子只是因为方便理解,实际上更多情况下梯度都是扩展到多元函数和多维空间来做具体应用的。

知道梯度后再来看下梯度网络( Gradient network )和拥堵( Congestion ),这些都是十几年前年提出的概念了。梯度网络是在无向(双向也行吧)的基底网络之上的一个或多个有向子网络,在这个子网络中,其中每个节点都具有标量数值( scalar )作为势能,且仅仅一条指向其相邻节点中具有最小(或最大)势能的那个节点的外向链接。下图中带箭头的边连起来的子网就是梯度网络,再加上没有箭头的边就是原来的基底网络。 


在该网络模型中,每个节点的势能会随着时间或其他因素而改变,所以梯度网络的拓扑结果也会随之动态改变。这个梯度网络可以对复杂的网络中的物质流动( flow ),甚至最速流动进行建模和研究。比如大型电网里的电流,复杂水道网中的水流,这种都有自然的电势和重力势能作为标量数值在一直影响网络中的物质流动。学过物理的都知道电势差可以产生和影响电流(即电子的流动),而且他们都很会“偷懒”,一定会走最轻松的、势能差最大、阻力最小的路径,换言之,局部梯度( gradient )产生流动 (flow ),又称梯度流( gradient flow )。而大型复杂网络内的车流,物流,数据信息流,以及支付的路由和规划也是如此,只是这里的势能可以通过人为定义,进而指定了每个节点基于相邻节点的势能后选择如何转移发送“物质”的局部行为规则。 


而拥堵讲的是如果网络是星状的,那么中间节点可能会需要处理来自周边节点的流,从而流会有在中心点处发生堵塞,于是就有了一个拥堵因子( jamming factor )的定义,假设有一条流经过 n 个节点,接受这条流的节点被称作接受节点,将这条流发送到他处的节点是发送节点,前者节点的个数成为接受节点数,后者是发送节点数,那么堵塞因子 J 差不多是: 1 - (接受节点数 / 发送节点数),J 为 0 时表示畅通无阻, J 为 1 表示完全堵塞。所以可以看出堵塞与否和接受流的节点数量关系密切。另外由于绝大多数情况下,节点对于流的处理是要花费时间的,所以拥堵也会造成工作队列长度的增加。 


上述是一些基础知识,Celer 将拥堵程度作为节点的“势能”,来影响每个局部节点对于某个具体支付的发送路径选择。同时,Celer还考虑了链下网络的通道模型的特殊性(即通道带宽会随着传输进行而改变),在单纯“拥堵梯度”的基础上加入了调整通道平衡的权重于是路由完成的同时也完成了余额再调整。具体来说,Celer 是这么定义了他的模型的: 


1 首先,定义价值转移流( transfer flow,可能叫支付流更为方便)k 是某条由具体起点(源节点)和终点(目的节点)决定的唯一支付路径(端到端)。在某一时刻 t 的开头,某节点i为流经它的某支付流 k 维护了一个债队列( debt queue ),标记为 Q(i, t, k),这个债队列也就是该节点需要在下一跳中转出去的 token 总数(但是在 t 时刻刚开的时候还没有来得及能转出去),算是衡量拥堵的标量。那么对于同一条支付流 k,在 t 的下一时刻也就是 t+1 时刻的开头, 节点i的债队列 Q(i, t + 1, k) = Q(i, t, k) + t 时刻需要节点i完成的新的支付所涉及到的 token + 节点i的邻居节点们转给 i 的 token - 节点i转出去给邻居们的 token 。 


“ t 时刻需要节点i完成的新的支付所涉及到的 token ”按字面意思看意思很显然。而“节点i的邻居们转给 i 的 token ”就是节点i收到的“击鼓传花”中的“烫手山芋”,“节点i转出去给他的邻居们的 token ”是节点i已经送出去的“山芋”。此外,终点节点上的债队列永远为零(只进不出,永不欠谁)。 


2 然后定义在时刻 t 下,两个节点i和j之间通道的金额平衡失调度, 痛到失调度 ∆(i, j, t) = 节点 j 转给 i 的 token - 节点 i 转给 j 的 token(算上t时刻前的所有时刻中,每条经过这个通道的流所引发的所有 token 转移)。 如果 ∆(i, j, t) < 0,代表节点 i 转给 j 的 token 超过 j 给 i 的。等于零的话,表示出入相当,通道平衡。


3 根据背压( BackPressure )路由算法定义了背压权重( BackPressure weight)。其实这里“背压”应该翻译成逆压或反压更贴切,该词来源于工程中气流或液流由于管道突然变细、急弯等原因导致由某处出现了下游向上游的逆向压力,不过翻译中把 back 翻成了“背部”,也就这么流传了下来。 


“背压路由算法”则是专门用来研究了在基于工作队列的多跳网络中使用拥堵梯度来动态规划路由,并且对时间进行了时隙( time slot )分割,力求在时隙推进过程中减少网络中的队列积压( queue backlog ),主要应用在无线网络中,移动 ad hoc 网络中等,是 Celer 路由层中主要借鉴的算法模型。以下是定义: 


背压权重 W(i, j, t, k)= [ Q(i, t, k) - Q(j, t, k) ] + β * ∆(i, j, t) , 其中 β 是通道失调度的影响力因子。 上方方括号内则是节点i和j之间的差异积压( differential backlog ),其目的是为了减小网络拥堵;括号外的项是通道失衡度,其目的是为了平衡通道。Celer的路由算法就是在每个时间段都沿着能使得上述权重最大的方向进行路由转移,从而减少网络拥堵同时实现通道平衡。


对 Celer 来说,具体的局部路由算法就是: 

1. 节点i不停获取相邻节点的债队列的信息。 

2. 节点i和相邻节点建立的两两之间的通道会经过多条不同的支付流。 

3. 然后在每个时间段中,节点 i 会计算在每个通道上产生最大背压权重的那条支付流,并且在该通道上进行该特定支付流的 token 转移发送。而这个路由算法要解决的就是一个叫做 MaxWeight 的优化问题(包括一个很显然的约束即:支付量不能超过通道的能力范围)。

Celer 通过对 77个节点和 254 个状态通道组成的支付网络进行模拟实验,实验结果证明这套路由算法比闪电网络之类(采用最短路径路由算法)的路由性能提高了 15 倍,各个通道的利用率提高了 20 倍。 


4. 链下区块链应用操作系统 

Celer 在最上层提供了一套被称为 cOS 的链下区块链应用操作系统,提供了一套开发环境和运行环境。开发者可以在 cOS 之上开发自己的区块链应用,并且能够非常简易地使用Celer 提供的各种链下拓容技术。基于 cOS 开发的区块链应用被称为 cAPP。那么为什么 Celer 要做这么一套操作系统呢?这这就涉及到 cAPP(即使用了链下拓容技术的区块链应用)和传统 DApp 的区别。DApp 的构建相对来说比较简单,其实就是有一个前端(比如用js写的),然后把区块链作为一个后端数据库,架构上跟写一个 web app 很类似(也就是常说的黑话 web3.0),只是把传统的网页后端有中心化的服务器 host 的数据库换成了区块链。但这个东西很显然的问题就是速度慢成狗。cApp 跟 DApp 的区别主要在于,cApp 不是一个简单的“网页+智能合约”,而是需要带有交互逻辑,条件状态改变逻辑,链上链下虚拟机结合, 状态监控,争议仲裁等等各类复杂的功能。这样一堆功能是现在在市场上不存在的,如果想要做 off-chain app 行不行?可以,但是超级复杂,特别容易出事儿。于是 cOS 为 cAPP 的提供了一套易用的开发框架和运行环境,让开发者可以很容易地使用链下拓容技术,而不需要自己去实现相关技术细节。用户也不需要知道这些细节,给大家一个简单的开发环境和透明的运行环境,这是我们将用户和 app 带到 Celer Network 上的入口,也是 cOS 的必要性。 


Celer 在白皮书里描述了 cOS 提供的三种功能:

(1)一套用于描述 cAPP 抽象模型;

(2)一套 cAPP 开发套件;
(3)一套支持 cAPP 的即时运行环境。 


(1)cAPP 抽象描述模型。由于 Celer 要支持任意的链下应用逻辑(而非简单的支付应用),而不同的链下应用状态之间又可能有互相依存关系(比如 A 和 B 互相付钱的逻辑可能依赖于某个 A 和 B 之间的五子棋游戏状态:如果 A 赢了,B 给 A 支付10个 ETH;如果 B 赢了,A 给 B 支付10个 ETH)。Celer 通过一个有向无环图(DAG)来描述一个链下应用之间的相互依存关系,比如下图。其中条件支付对象 (conditional payment object) 可以通过 cRoute 进行多跳传输。

(2)cAPP 开发者套件。如之前所述,链下应用之间可能存在非常复杂的依存关系,同时每个链下应用还涉及到状态的保存,通信协议等等实现细节。这对于链下应用开发者来说简直是噩梦。正如目前的高级编程语言和操作系统会把 CPU 管理、内存管理、I/O 管理这些底层细节给剥离出来一样,cOS 提供了一套开发者环境(SDK),来让开发者专注于自己的应用逻辑而不用去关系底层所涉及的各种通信、状态保存等等细节。下图展示了一个 cAPP 开发所涉及的基本架构。


(3)cAPP 即时运行环境 (runtime)。cOS 为 cAPP 提供了运行时所需的通信支持和链下状态管理。其基本架构如下图。这里细节比较多,有兴趣的读者可以去查阅白皮书第4.3章。


路线图

根据官方披露的路线图显示,该项目的关键模块如cChannel、cRoute、cOS、cEconomy和社区均在2018年第三季度上线测试版本或完成准备工作,并计划于第四季度公布相关的正式版本。由此可见,团队对项目开发雄心勃勃且充满自信。然而与紧凑的开发里程碑相对应的是大量的开发任务,且开发难度不小。

此外,根据官方博客,Celer 已开发出 MVP 版五子棋小游戏,但该游戏目前只给出视频演示,并未公布可试用版本。

实际行动是证明自己的实力最好方式,期待项目方的更多开发进展披露。

评价:技术逻辑严密,但难度不小




三、团队与合作方

核心团队

Celer 的核心团队毕业自 UC Berkeley、MIT、UIUC、Princeton、上海交大、清华等名校,且均为计算机专业相关的博士,技术实力毋庸置疑。各成员相关履历如下:



其他成员


5. 周末

周末(Michael)毕业于麻省理工学院(MIT),获得计算机硕士学位。他的研究方向专注于并行数据流架构编程模型。Michael在谷歌工作时研发了一系列Java和JavaScript的编译器,静态分析器,虚拟机与开发框架,支持网页端和移动端应用为数十亿用户提供服务。

 

6. 王子轩

王子轩于南京大学获得硕士学位,拥有6年安卓应用的资深研发经验。他曾是南京银行和江苏银行手机APP的核心开发和移动端技术负责人,后任职于中国前五的电商独角兽企业蘑菇街,在移动端架构组主要负责安卓端相关优化和安卓崩溃保障体系的创建与运行。他大幅改善并保持日活200万以上的蘑菇街APP的日平均崩溃率在万分之四左右,因此申请并获得了两个安卓崩溃保障体系的相关专利。他具备极其丰富的手机端开发、安全防护和优化经验,同时也是早期区块链技术探索者和布道师,对区块链共识技术、加密算法和智能合约都有较深程度的研究。

 

7. 张岩

张岩于巴黎高等电力学院 Supélec获得工学硕士及法国工程师学位,该校在能源和信息领域排名位于法国第一。他本科毕业于北京邮电大学,通信工程专业。逾十年来,他在欧洲和美国多个著名创业公司和跨国企业担任主力开发和技术总监,专注于移动应用的开发和移动技术的创新。他从零开发并上线过数十个移动应用及智能硬件产品,其中一些应用和产品在欧美家喻户晓。

 

8. 戴运嘉

戴运嘉毕业于哥伦比亚大学,于2014年加入谷歌展示广告团队,负责开发和演进广告基础设施平台。平台广泛服务于AdSense及多个DoubleClick核心产品。他曾担任技术带头人负责展示广告伺服-报告接口及基础设施,用于处理百万级QPS(每秒请求数)。

 

9. 王鹏颖

王鹏颖(Windy)毕业于波士顿大学,获得国际关系和国际管理双学位。作为麻省理工学院中国创新与创业论坛(MIT-CHIEF)的副主席,Windy已带领约50个美国优秀初创企业回中国参加路演,并与高新科技园区进行交流。她在MassChallenge加速器和中美波士顿创新中心(CUBIC)的战略规划和市场营销经历激发了她对初创公司的热情和加深了对市场的理解。

 

10. 李思蓉

李思蓉于罗切斯特大学获得商业分析硕士学位。她在市场调研、广告行业和快消行业拥有丰富的工作经验,并致力于开发新颖的市场战略以及制定数据驱动的业务决策。她曾在世界500强公司TJX协调策划数千名员工的组织转型。于世界领先的营销公司奥美,她为关键客户设计的营销策略巨幅提升了销售额与产品知名度。作为一位经验丰富的项目经理,她曾带领一个团队利用大数据和机器学习技术帮助客户公司快速提高知名度及销售额。

 

11. Alex Wu
Alex于2016年毕业于纽约视觉艺术学院,获得社会创新硕士。他曾于康乃尔大学协助医疗相关的产品开发,毕业后在SAP担任用户体验设计师,参与项目包括开发企业内部工具、人资、与企业智能语音平台等,并在多家新创公司担任设计顾问。 Alex Wu 在2011 年加入TEDxTaipei,协助创办人许毓仁(现任台湾立委、台湾区块链议会联盟、台湾区块链自治联盟发起人) 建立设计与制作团队,成为当时新兴的新媒体之一。


项目顾问如下:


综合而言,Celer 项目具备了足够的开发能力,但考虑到该项目开发难度较大,项目尚未开源,尚未提供可运行的产品原型,只有一个视频演示,项目落地尚存在一定风险。 


此外,技术开发是区块链项目落地的基础,而一个项目是否成功还取决于运营推广、法务、团队管理等诸多因素。在这些方面,官网上公开的团队成员缺少相关经验,更多信息有待进一步补充。



行业资源

该项目得到了机构层面的追捧,目前官方公布的早期投资人如下: 

第四个基金是稳定货币 Maker DAO 和 Ethereum 研究和投资机构 L4(Ethereum 创始人Vitalik 本人就在 L4 团队中,L4 团队中都是以太坊生态的元老级人物) 为寻找可靠技术项目,推动稳定货币生态而创立的投资基金。


评价:投资机构热捧

该项目还需要更多的生态布局,如与其他项目方(尤其是公链项目方)的合作。


四、社区热度与其他机构评级

Github:代码待公开 

Twitter:2k+,运营更新频繁 

Telegram:13k+,管理员响应及时 

其他机构测评: 

https://cryptobriefing.com/celer-ico-review-celr-token-analysis/ 

https://www.coinmarketplus.com/token/celer-network/ 

https://icoanalytics.net/ico/celer-network 

https://www.monoico.com/celer-network/


评价:社区热度较高,代码待公开

 该项目在海外资本层面已得到足够认可,其国内的社区热度也预先炒热,已有大量志愿者自发组成 Celer 社区群宣传该项目。


五、Token 分配

Token 符号:CELR ,ERC20 

Token 募资进度: 已完成基石轮 

Token 总量:待批露 Token 分配比例:待批露 

软顶和硬顶:待批露 

投资额度获取方式:社区贡献


六、综合评级

该项目定位于链下可扩展性解决方案,旨在将互联网规模带入区块链。其在传统链下解决方案的基础上提出了新的技术解决方案和经济模型,且该方案经过实验模拟结果显示有数量级的性能提升。项目开发团队实力不俗,且有著名的名校研究员和著名开发工程师为顾问指导,有望在链下扩展性方面取得突破性进展。但是,状态通道也存在天然的局限性,比如其更适用于固定交互多方的高频互动,而不适用于频繁变动的交互多方的低频交互。即便如此,链下状态通道作为公有链的可扩展性增强套件,一旦成功突破将有利于推动区块链的实用化。


优点: 

1、技术逻辑可行,且已进行模拟验证。 

2、相对合理的经济模型。 

3、得到包括 Pantera,DHVC,FBG 在内的投资机构青睐,社区认可度高。 

4、团队技术强劲。投资人优秀。 


缺点: 

1、项目尚未开源,更多的技术细节有待披露。

2、开发难度较大,存在一定落地难度。

NPC 总评 

炒作指数: 中高

风险指数:中 

NPC兴趣指数:高

  

、基本信息

官网:https://www.celer.network/ 

白皮书地址:

https://www.celer.network/doc/CelerNetwork-Whitepaper.pdf 

Twitter: https://twitter.com/CelerNetwork 

Telegram: https://t.me/Celernetwork

Reddit: https://www.reddit.com/r/ethereum/comments/8jiab4/celer_network_bring_internet_scale_to_blockchain/

Medium: https://medium.com/@CelerNetwork


媒体文章 

https://nulltx.com/what-is-celer-network/ https://bitcoinexchangeguide.com/celer-network/ 

Crunchbase 

https://www.crunchbase.com/organization/celer-network#section-overview 


、NPC 声明

NPC 和丹华、Celer 的关系: 


NPC 与 Celer 属于测评方与被测评项目的关系,NPC 作为第三方独立测评机构,Celer 及 Celer 投资方丹华充分尊重 NPC 测评内容独立性,并接受 NPC AMA 社群的邀请进行线上 AMA 活动。


NPC 保持独立公公正,让社区成员充分对项目提出疑问和质疑,帮助所有人更好的筛选区块链项目。


欢迎其他投资机构或 技术过硬 的项目方联系我们。


*风险提示

本文仅提供一般性信息,不构成本组织及成员的任何投资建议。报告原始资料均源于网络,NPC 不对资料中所述信息的准确性或完整性做出任何承诺。任何情况下,NPC 不对任何组织及个人基于本资料的行为负责,请自行承担依据本信息所做决策的所有风险。如有任何建议,欢迎批判指正。


『声明:文章为Celer项测评,文章转载自公众号「NPC源计划」;不代表白话区块链立场,亦不构成任何投资意见或建议。』

喜欢请给我们点赞哦,谢谢 

(●—●)

阅读原文

TAGS:支付网络状态区块链