金色荐读 | 公链在Layer1的坚守和选择
本文由金色财经记者王航于8月3日在金色财经首发,讲述了公链在layer1做的各种尝试,以及作者对layer1的理解。特此推荐。
上周,尝试在一个拥有矿机的链上搭建节点,参与过程中把一个电脑主板当成服务器,通过 WinSCP 和 PUTTY 控制了这个具备存储和计算的设备,连接了一个网络主体,便开始在网络中寻找需要打包的碎片打包。搭建结束后,笔者对链的主体、参与者都有了更深的理解。
正逢与 Nervos 基金会联合创始人吕国宁和 Blockstack 中国区技术负责人高天尧前几日共同讨论了项目设计,Blockstack 是一个纯正的 Layer1 项目,而 Nervos 同样在 Layer1 和挖矿生态上是坚守的,不过在 Layer2 做了必要的融合,为了阐述 Layer1 和公链整体的结构设计,特此成文,欢迎指正。
区块链发展的这几年间,我们对链的结构已经越发了解了,已知公链包含 Layer0、Layer1、Layer2,这是大部分链做 “解决方案” 时会想到的部分。
把每层拆分来看,Layer0 层代表的是基础资源和通讯,Layer1 层的共识决定了 Layer0 层的资源利用规则,所以把 Layer0+Layer1 可以当成一体讨论,也就是链上。Layer2 是对链上的扩展,也是处理任务的重要部分。
在目前的技术条件下,一个公链,需要让这三层网络互相配合以提供出公链的能力。但从技术部分角度看,用去中心化的方式做好 3 层网络,的确算是个具备挑战性的事情。
Layer1 的理解
前文提到 Layer0+Layer1 被称为链上,Layer0 是通讯,Layer1 的共识提供的是安全,最典型的代表就是 PoW,业内对 PoW 的论证已有公论,PoW 更公平更安全,可以利用 PoW 建立网路和矿机生态。
在讨论前,我们仍旧需要问一个定义,公链是什么?
如果用比特币定义,公链是一个提供金融基础设施的网络,基于这个网络的基础设施,我们可以实现一些能力的拓展。我们看到的公链都是加密货币项目,也代表着浓浓的金融属性,而金融的基础是信任,比特币网络通过区块链和 PoW 共识设计实现了信任,也就是我们理解的公平、透明、安全,在无需许可的设计下,变得足够开放自由。
如果在比特币上做延伸开发,依靠比特币的算力和资源,就是把比特币网络的能力作为依托实现到业务里。
如果用以太坊定义。以太坊是要做世界计算机,他把比特币一样的网络放进了以太坊网络结构里,加入智能合约后,变成可编程的加密货币,让本身作用单一的网络增加了多样性。这样,公链开始具备适应各行各业各种场景的能力,链的公平公正、透明、安全、自由开发等特质不减。
那我们怎样继续定义公链。
链,是计算能力的集合,想要开发和应用,那必须要有计算能力,计算能力从哪里来?矿机或服务器。网络安全从哪里来?规则,也就是协议。
我们所见的链里,PoW 已经被验证为足够的安全合理,也就是可以实现可信。但安全、去中心化、可拓展性依旧是不可能三角。为了效率,一个纯 PoW 的链不足以应对一切开发需求,就像比特币不适合开发成各种网络一样。
所以要想各种办法实现,本质上是既把 PoW 的好处留下,用 PoW 指代出的信任与安全、公正来作为链的标配能力,又向开发应用做一些妥协。
但开发这件事与坚持 PoW 略有矛盾。坚持 PoW 共识的实现并不如 PoS 链那样简单高效。
对一个 PoW 链的坚持,最直观的体现是在挖矿这件事上。PoW 的出块原理,代表着 PoW 链要做矿工生态。而选择矿工生态,因为挖矿盘根错节的关系,作为项目方,挖矿的原则,会让自己束手束脚,并且如履薄冰。
Nervos 挖矿生态的快速成长
在 Layer1 层的坚守,挖矿是必要的,因为这是建立一个去中心化网络的必经之路。而想做挖矿,是件难事。近日笔者搭建的节点,虽是用简单的硬件主板连接网络的,但搭建过程繁复,引导用户搭建节点这个过程让创始团队费尽心力,实属不易。
而如果像比特币挖矿一样,做一个足够有标准化的挖矿生态,其中的挑战,用更准确的描述应该是“惊险”,就例如 Nervos 的矿业生态。
2019 年 5 月,Nervos 测试网上线 ,这是一个项目团队夜不能寐的开始。
Nervos 基金会联合创始人吕国宁告诉金色财经记者,选择挖矿这条路开始,网络上线,就意味着要随时面临网络遭受攻击。“如果黑客突然攻击你了,你能在一分钟之内响应还是半小时内响应会起到关键作用,在一分钟内响应,你能把钱追回来,如果半小时内响应可能钱已经转走了。”
从结果上看,Nervos是成功的,据官方工具统计,测试网上线6个月,进行了约5期挖矿大赛,Nervos全网算力上涨160倍。
主网上线后,矿机经历了CPU-GPU-FPGA-AISC的演变。吕国宁的判断是:Nervos用6个月的时间,走完了别的网络5年才能走完的历程。
当然,当Nervos网络接入的算力还没有到达网络稳定的阀值时,创始团队就要不眠不休,要保证随时可以维护网络,吕国宁透露,为了达到随时可以维护网络,Nervos做了很多调整,例如技术团队三班倒,保证每个时间段出现问题就有人可以解决问题。
更重要的是面对攻击处理的整体把控,包含对攻击要有完全清晰的预案。要在攻击后了解网络情况,要以最快的动作找到媒体发布消息,要找到算力合作方提快速修正网络,找回正确的最长链。就是这样Nervos从一个脆弱的网络发展到一个强壮的网络。
Nervos是一个信仰PoW和坚守PoW的团队,项目以PoW共识搭建CKB网络,然后再搭建Layer2层实现扩容。在CKB这一层是通过矿工生态建立的。主网上线 6 个月,网络已经越过了显卡矿机可以攻击的临界点。
得益于网络算力的快速增加,吕国宁认为,以目前算力计算,即使调动目前在役的所有以太坊显卡矿机,也无法对CKB发起51%攻击。Nervos CKB网络目前出块时间稳定在8-10秒左右,地址数量从主网上线时的4K增长到目前的40K,增长10倍,Nervos DAO内,CKB锁定总额突破 85 亿。这是很多依靠挖矿生态建立网络的项目在主网上线前的理想预测。
网络稳定后,Nervos生态也在稳步发展,2019年12月,Nervos推出Nervos Grants计划,设立3000万美金基金池,为在CKB上开发的开发者提供资助。2020年5月,Nervos推出CKLabs计划,帮助区块链初创公司孵化构建 dApp。截至目前,已有8个团队获Nervos Grants计划资助。
如何在挖矿生态坚守?
我们看到Nervos成功了,项目发展良好,也看到了项目在维护网络这些事上的努力。但考验创业者的最多的,还是在原则上。如何守住一个加密货币项目的原则,守住了就守住了 Layer1 以及区块链的共识。
这还要从矿业的理解谈起。
PoW 需要真金白银的,需要用矿工矿池去投入资源、能源和算力来去支撑一条网络,整个过程是资本和收益的不断博弈。
Nervos坚持的原则是:不当裁判、不当运动员,不能触及矿工的利益。
作为一个加密货币项目方,随着市场牛熊转换,大多时候不得不考虑自身的利益,在挖矿这件事上,项目方更是掌握第一手信息,例如挖矿算法,网络上线时间,参与规则等,可以占据挖矿的绝对优势。
不仅如此,矿业中的供应商也会闻风而动,例如一些矿机生产商和芯片制造商,会利用供应链的需求来向项目方获取一些优先的信息或者优先的合作(例如用算法等内部消息制造矿机来换取股权),以在这个挖矿规则中占据优势。项目方要抵抗投资矿机或者自建矿场挖矿带来的利益诱惑。
吕国宁说到,“这和PoW的原则一样,你必须要去努力维护链在竞争门槛上的一致性和安全性,所谓的一致性就是如果项目方参与到这个生意当中来,你承担的风险、获得的收益和其他人是一样的,项目方参与也不能具备优势。”
因此,Nervos把所有的做芯片的东西全部公开,项目方不做信息的不对称,也绝对不参与进来。“我们虽然制定了规则,但是我们不想做裁判。而在规则定死的情况下,我们也不想做运动员,因为在我们制定的规则里面,我们可能会给自己制造出一些便利和优势,只要我们参与进来做了运动员,我们会跟其他运动员竞争,那么我们也许有朋友,但是我们一定有敌人,一定有竞争对手。”吕国宁补充到。
当项目方彻底放弃这些,整个生态里的矿机厂商、芯片厂商、矿机销售商服务商等全都会成为项目方的朋友。
在 Nervos 的 “一碗水端平” 的状态下,反而赢得了更多的认同,主网上线后很短的时间内,有超过3家芯片制造商在制造Nervos的芯片,CKB 矿机也快速上市。
这是一个目标与结果的正向对比。Nervos 花了很大的精力,让这个行业里面最头部的那些人理解“Nervos 在做什么”,而当头部带动市场给予了认可,成果显著。不仅仅是矿业,矿池和主流钱包全部支持CKB。
吕国宁告诉笔者,到今天Nervos官方团队和基金会没有自己拿算力设备去挖过一枚CKB。
这些对矿工来说,既是信任的因素,也是市场萎靡的时候继续挖矿的信心,矿工可以继续挖矿,就代表着网络的稳定基础。
既要坚守还要开放
如果说给所有的链分类,种类最多的是PoS链,其次是PoW链,其他链还会使用变种的共识机制,其主要目的是让链实现安全性,防止双花。PoW链对抗双花的能力在算力足够多且分散的网络中是有目共睹的。
此外,我们还要对链和应用的需求有一定了解,公链是资源的集合,而资源就是为了处理任务,一个公链面对的是将数据打包成块,然后广播给所有人的任务。处理任务,考验的是资源或处理方式。一个巨量的任务需求,只有两种解决方案:用更多资源处理,或提高固有资源的处理效率和处理时间。也就是让更多资源参与处理,或者给固定的资源更长的时间处理。
这涉及两种处理方式,一种就是我们熟知的分片,在这个角度上,以太坊的分片、跨链、侧链、子链等都是分片的方式及变种。而另一种就是延时,对于处理资源有限的企业,传统IT领域就有给予不同任务不同延时,让任务分别在不同时间被依次处理的方案。例如因服务器的I/O值限制,通过对任务的延时分配,到了服务器端,足以降低至500tps以下,这是联盟链常用的方式,对某些公链也是适用的。
据此,可以确定的是,为了安全性,守住对 Layer1 的去中心化坚持,必要的建立一个基于PoW网络,或者找到可以保证安全性的网络,然后再寻求其他的解决方案。
根据Nervos的设计,Nervos的链上,是CKB,是一个基础知识库,这个描述将链上被公开的数据了解为“公知”,而这样的定义,很便于对上链的数据进行分层,而对于网络处理任务的部分,使用多样的Layer2处理方案是有必要的。目前Nervos在推进多种Layer2方案,包含有Layer2 Muta方案,其类似substrate,是一个具备编程框架的开发工具,还包含LaepDap在推进的侧链方案、首席架构师Jan推进的状态通道研究以及安比实验室在推进的零知识证明密码学原语库。
这就是我们前文所提及的,在保证PoW的坚持后,对应用角度要有一定的开放妥协。
对Layer2的设计,来实现扩容和扩展,是一个很好的方式,此外,利用高算力区块链是可以保护一条链的安全性的。也就是可以直接依靠PoW链的安全能力,这很像 Blockstack的1.0版本。
在Blockstack1.0的设计里,分为4层,第一层是身份层,是用户的去中心化化身份;第二层是存储层,采用和ipfs完全不同的策略,把用户数据交给用户自己来保管,数据标识上链,需要互相分享时通过工具链下通讯;第三层是路由层,是一条与比特币网络交互的网络。第四层为应用层。
从设计上看,Blockstack1.0完全依靠比特币网络的算力的,可以理解为Blockstack是将比特币网络作为了Layer0,将Blockstack整体作为Layer1,并且Blockstack不准备应用Layer2的技术,而是将Layer1的部分设计尽可能高效。
这代表着几个步骤:
减少上链部分、给予一些限定、提升效率
可以在几个部分下手执行:
有效数据上链、大部分通讯不走链、自建语言改进执行效率
这就是Blockstack实现的方式:非明文上链、链下存储、开发非图灵解释型语言Clarity。
Blockstack1.0的功能综合起来,主要借助比特币的算力,完成了一个基于身份层(DID)、存储层的区块链,在这个基础上生态内已经开发了400余个应用。
其PoX共识略显特殊性,是通过PoX让矿工燃烧 BTC 获得STX,然后质押STX,再收益BTC,这充分利用了比特币网络资源,Blockstack团队则形容为利用比特币这一类稳定的金融能源形成稳定的共识。
但随着网络需求的变化,需要更丰富的实现链上的数据共享,Blockstack正在从1.0升级到2.0,会拥有一个和比特币网络一样的区块链层,此外还会加入虚拟机,实现更多链上合约的数据调用。
可见,在 Blockstack1.0 的体系里,核心并非自建一条网络,是选择相信比特币网络,依靠比特币的去中心化延伸出Blockstack1.0的DID、Gaia存储等,在不选择 Layer2的技术角度看,这样是另一种对Layer1的坚守。
理解Layer1的其他角度
理解Layer1更多的是理解共识,也就是理解项目发展的核心竞争力,面对市场,是理想与现实博弈,是困境与心智的博弈。
例如Nervos,以其项目来看,可以推出很多项目来获取收益,但原则依旧,守住去中心化以及不触及生态内更多的利益。
例如在Nervos的talk.note.org论坛,除了状态通道外还有很多可以被商业化的技术和创意,例如可以做去中心化交易所基础技术的open trastraction。但官方团队不能做这些,而是可以利用资助激励社区内的第三方来做,资助且不占股份,只为了生态成长。
这是公平性的维护的概念,就像PoW链,虽然不能保证结果正义,但可以保证所有人的参与过程公平。
在Blockstack上则是依靠不参与治理且分散化权限,例如矿工和用户的关系,矿工质押BTC获取STX具备权益,然后抵押STX,再获得BTC奖励。这样做的目标是激励矿工完善网络,而与用户无关,用户的数据调用并不参与到治理过程,也就不会因共识带来的权益不均而在网络中的能力不同。
这是制定规则与分离规则的两种角度。更是加密货币团队为了实现理想,在苦思冥想后的实现方式,时间戳一直向前,区块高度不断增长,理想最终是否实现,还要看链上的哈希被解密后是否有项目的 “坚守” 。