这篇文章是 NervosNetwork 公众号的开篇文,Daniel 一个字一个字写的。记得他说为了写这篇文章,他反反复复改了很多稿,甚至一度删掉重写,最后终于在 2018 年 6 月 20 日发布。如今,整整一年已经过去,在这精彩纷呈但并不完全一帆风顺的一年里,相信每个人都有自己的思考和成长。Nervos 项目也在所有支持者和守护者的关注中,一步步沿着 Roadmap 在稳步前进。初心从未改变。
你们的白皮书我看过了,你们只提出了问题,但是你们根本没有解决方案!别告诉我你们想要解决以太坊的问题,以太坊的方案在我眼里根本不 work!
3 个月前,在一家机构的会议室,Terry 和我,我们正在向对方 Pitch 我们的 Nervos 项目。不确定对方有没有真的看过我们的白皮书,也许怀疑一个本土的团队是否真的有能力写出这样的白皮书,也许怀疑我们提出了一个没有验证过的技术方案,也许团队没有能力真的能把这样的项目做出来…
记得当时我跟 Terry 是这样回答的:
也许您现在只能理解您现在能够理解的东西,我们来您在这里,就是要给你介绍我们的团队的背景,能力,以及我们要解决的问题,而你看到的白皮书只包含了我们底链的设计。
Nervos 还处于非常早期,也许您现在看不懂,或许还有所怀疑,不过这都没有关系,您可以再等一等,看一看,等我们有更多的信息释放出来,甚至东西做出来后再买都是不晚的。
2017 年年底,我们发起了 Nervos Network 项目,目标是做下一代区块链基础设施(严格来讲 Nervos 是一个网络,这一点后续文章会详细阐述),并以开源基金会的方式运作。然后我们马上组建了开发团队,基于之前两年多的联盟链和公链开发经验,结合我们对下一代区块链基础设施架构的设计思想,我们的团队用了三个月时间做了若干个概念验证和迭代,基于这些工作,我们正式发布了 Nervos CKB 白皮书,即 Nervos Network 的底层基础公链设计。然后我们紧锣密鼓的开始了 token 的 private sale 工作,为了找到全世界最优质的资源,我们几乎拜访了能联系到的所有国内外机构。 总的来讲整个 private sale 还算顺利,我们取得非常多国内和世界范围内绝对的一线机构的信任和追捧,这既是情理之中,又是意料之外。我们没有想到这么快就能被如此多的一线机构所认同,这不得不归功于我们团队在世界一线的区块链项目(BTC, Ethereum)中长期积累,以及 Nervos 本身的卓越设计。
我们对以太坊的理解是全中国最深刻的
最初接触以太坊是在 2015 年底,当时以太坊横空出世,给了整个区块链社区一个方向,并吸引到了大量的像我们一样的开发者加入其中。我们创立了 Ethfans — 以太坊爱好者社区,之后 Ethfans 成了在国内事实上的第一以太坊技术社区。我们还帮助 Ethfans 孵化了 星火矿池 ,现在星火矿池算力规模排到了世界前三。我们还组织了无数国内的技术 Meetup,参与并组织以太坊开发者大会,不胜枚举。
我们的首席架构师谢晗剑 (Jan Xie)之前在以太坊核心团队(Research Team)工作有两年之久,跟 Vitalik 一起做了 Casper – 以太坊下一代核心协议早期研究和开发,并且一直是 pyethereum 和 ruby-ethereum 的主要维护者。而我则曾经以联合创始人兼 CTO 的身份,参与过 imToken 的第一版实现,而 imToken 是国内最流行的以太坊钱包。
可是以太坊的区块链应用真的爆发了么?其实并没有。大家都还在等,在等扩展方案落地,等处理速度和吞吐量可以支持真实的商业应用落地,等开发语言,环境,工具变得更安全,成熟。其实以太坊基础设施有太多问题需要解决:
-
性能扩展问题,以太坊通过两种方案解决扩展问题,但是他们都有各自的问题。
- 第一种是通过分片的方式,将基础设施的性能和吞吐量提升 10 倍,100 倍,甚至更高。这种试图在全球第二市值的系统上实现底层协议的大幅更替,从技术和社区方面都面临巨大的挑战,这不是在飞机的飞行当中更换引擎,而是在飞行的火箭上更换喷射器,必须小心翼翼,否则火箭会爆。
- 第二种是将交易从主链剥离,放到链外,即第二层扩展方案。第二层方案必须充分得到主链的支持,但是主链本身作为通用基础设施的一部分,从优先级上很难对二层方案给予最好最直接的支持,这是为什么雷电网络,状态通道,从论文提出到现在都已经五年过去了,已然难以实施普及。
-
安全相关的问题,我亲自经历了两次大规模的安全事件,一次是 TheDAO 攻击事件,另一次是 Parity 多签钱包导致大量的以太币和资产被冻结。两次安全事件先后给整个社区上了重要的一课,安全性问题被摆在了极高的位置,但是即使如此,整个开发社区仍然在需要等待更好更安全的编程范式和检测工具。
-
经济模型问题,以太坊用 Gas 限制你的合约单次执行的复杂度,本质上 Gas 是在计算时间维度上的度量,也就是计算量的度量,而 GasLimit 是一个区块上对可容纳的计算量总和,如果我们需要增加合约执行的复杂度,我们需要在出块时间尽量短,每个块可容纳的计算量尽可能高。假设我们已经进入了后性能扩展时代,扩展问题被解决之后,节点维护者将面对另外一个难题:状态数据量爆炸。这是一个无法逃避的问题,但是目前的扩展方案在针对这个问题是没有考虑的,即以太坊的经济模型缺乏对空间维度的考量。
-
治理问题,以太坊并没有采用线上治理或者协调机制,未来的治理机制会随着共识协议的更替而改变。但是目前我们所能观察到的以太坊主要依靠创始人和核心团队的影响力,以及有限的激励方式来激励核心开发者,换句话说,以太坊的每一次协议的演进正在变得越来越慢,在治理工具,协调和激励方面,我们应该鼓励更多的尝试。
对区块链的本质思考从未停止
为什么应用需要先把业务逻辑改造成去中心化模式,并通过智能合约实现,并且开发者需要掌握一门叫做 Solidity 的编程语言,才能实现应用上链?但是世界上大量在区块链这个词还没有被发明之前,就已经存在的中心化,半中心化的场景和应用,就已经被用户信任并且达成了局部的共识,为什么这些应用要花费很高的成本,并且牺牲性能为代价,将局部的共识变为全球的共识?
为什么需要全球所有的节点全部执行相同的计算并交叉验证,通过得到相同的结果,这样才能消除智能合约执行的不确定性,区块链的本质是以最低成本,高效建立全局的信任。但是随着共识规模的扩大,建立信任的交易成本,也就是说矿工费越来越贵,难道没有更好的建立信任的机制?或者对用户更友好的信任成本支付模型?
为什么所有希望实现下一代区块链基础设施的团队,大多选择了单点突破这个方向,比如更高效的共识算法,或者更好的分片机制作为切入点,在不牺牲安全性和去中心化的前提下,尽量将性能做到最优,而不去考虑从整体架构上实现整体突破?
为什么现有的第二层扩展方案,包括 state channel,Plasma,Truebit,Teechan 等,不论从理论研究到工程实现,都慢慢趋向成熟,无论从工程,还是可靠性方面,都要比扩展主链这个方向耗费的成本更低,耗时更少,但是依然很难得到在任何一条主链上的更好支持?
用技术改变世界,是我们的信仰
下一代的区块链应该是什么样子,这个问题我们想了整整两年,Nervos Network 的整体设计,就是我们的答案。我们已经正式对外发布了 Nervos CKB 白皮书,未来对经济模型的设计,共识算法的设计,以及其他核心组件的设计白皮书会陆续放出。既然我们已经想清楚了下一代区块链基础设施的,与其继续等待,不如我们自己来,我们过去交付过的成果可能比这个世界上任何的区块链团队都要多。我们要做的 Nervos Network 是:
- 是一组协议,而不是一个协议定义的网络
- 以 Common Knowledge Base 作为核心的信任基础设施,承载各种网络上的可信组件
- 为所有可信任组件之间的协同和互操作提供支持
- 围绕 Common Knowledge Base 设计的经济激励模型,兼顾了计算时间,空间的考量
- 分层设计的架构思想,在不同的层次为了不同的目标做取舍,兼顾性能,安全,以及去中心化特性
- 为所有第二层扩展方案充分优化,最大限度为第二层扩展方案提供安全性保障,状态验证,以及必要的时候提供仲裁
绝不让环境成为你追求卓越的障碍
在刚刚结束的北美之行,我们见了许多北美一线的机构,团队,讨论的话题自然包括我们双方怎么看中国的许多其他项目,在讨论过程中,有个词组是我们绕不开的,就是 “pump and down",意思就是项目没有实质,只是为了发币,然后炒作,这种类型的项目在中国数量不少。
其实要证明我们的项目和团队能力给一个不熟悉我们,不熟悉中国环境,甚至带有一点点偏见的投资机构是很不简单的事情。但是我们要证明的不仅仅是这些,在任何情况下,我们都有勇气选择自己的态度,选择自己的道路,我们要代表中国,做出可以代表中国的世界级区块链基础设施项目。
肯尼迪在 1961 年的总统就职典礼上的演讲,他向全人类展现的是未来的美好前景,探索太空,治愈绝症,消除贫困等等,大家在激动之余,会问这些真的都能实现么?最后肯尼迪说:问心无愧是我们唯一稳得的报酬。