LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 行走笔记:波卡北京站,关于平行链这些技术要点你要了解

行走笔记:波卡北京站,关于平行链这些技术要点你要了解

2020-10-22 行走 来源:区块链网络

本篇笔记来自10月波卡北京行活动。由波卡Web3 基金会亚洲区技术总监介绍平行链和平行插槽的技术原理。虽然演讲者已经尽可能做了通俗化的解释,但行走确实整理完笔记依然不能说自己100%完全理解了波卡的技术原理。但阅读这份笔记,核心还是要理解,波卡是一个完全不同于以太坊的项目,是使用了全新的一套逻辑重新定义了公链和公链生态。

以下,Enjoy:

很高兴和大家共同了解Web3 基金会,parity在波卡上所做的努力。我是Yaoqi,是负责波卡亚洲区,特别是中国波卡生态以及Parity在生态、社区以及技术方面的建设。

大家如果对波卡感兴趣,我们本月(10月)会上线相关的Parity课程,大家可以参加、学习下课程。

这个月月底我们会举办Web 3 大会,也是第一次将Web 3大会带到国内。会议会邀请区块链领域以及行业顶级的投资和项目方来介绍他们对Web 3 的理解。

今天我会和大家介绍波卡平行链在技术上的细节。

想先问一下大家,大家知道平行链是做什么的请举手?看到好像很多人都是第一次听说。我会尽量将这些技术细节用通俗易懂的语言来讲,把重要的点口语化的总结给大家。

一、波卡的中继链和平行链

大家对波卡最初的理解可能就是个复杂的区块链系统。但仔细去看,其中包括了几种有意思的类型。一是中继链,作为波卡中最重要的部分,连接各个平行链。之前有人举例,中继链就像政务中心,不同平行链就是不同的业务。不同业务做完之后,中继链会进行验证以及总结。

在互联网中,我更喜欢把中继链称为中台系统,不同的平行链可能都会用到相关的处理逻辑去处理不同的业务。例如手机的的应用A是用来打车的,应用B是处理支付的,但中间的节点就类似中台系统,提供各种数据分析,帮助你验证和处理数据提交是有没有用处的。

这张图更具象化的把我刚刚提到的几个概念(中继链和平行链)进行了分类。最中间的就是中继链。里面有很多验证节点。验证节点到时会随机的分配给不同的平行链。图中这些分支都是不同的平行链。这些平行链实际上是不需要做任何验证的。这就是波卡比较有意思的地方:共享安全。

共享安全的好处是,现在我们想搭一个区块链,不需要搭很复杂的节点。你竞拍到一个插槽,中继链会给你分配验证节点,验证你的区块。更方便大家搭建有自己商业逻辑的区块链。

现在有以太坊、比特币以及各种各样,功能比较强大的公有链和联盟链。它们如何接入系统呢?就需要在平行链之外搭一个桥,通过平行链“桥接”到中继链里。之后可以通过平行链连接到不同的平行链。例如跨链的消息传递,将不同平行链中的资产进行资产的转移和使用。

二、如何搭建平行链

介绍了平行链和中继链,大家可能会感兴趣我如何能搭建自己的平行链呢?波卡作为一个系统,大家一提到就想起跨链。但其实作为Web3基金会和Parity,是在波卡之上做了一套区块链开发系统,为了方便大家更好的开发平行链。包括波卡本身的中继链也使用了同样一套开发框架。这就是Substrate。

Substrate是2018年在GitHub上公布的,大家可以查到里面有个趋势,Substrate基本是每周前三或者第一的区块链开发框架。之所以称其为开发框架,是因为它已经提供了开发区块链所需要的种种核心模块和组件。无论是数据库层、网络层还是各种可插拔的共识协议以及链下工作机。

有了区块链开发框架,大家可以很快选择自己想要的各种组件快速的搭建区块链。18年在Web 3大会上 Gavin Wood就用一台崭新的笔记本电脑,用了15分钟搭建出一个区块链。那是18年加密领域相当不成熟的时候。现在大家可以尝试用5-10分钟,更快的搭建一个功能更强大的区块链。

当然在搭建过程中,会有一些与我们平时使用智能合约开发的不同点。一是波卡使用的是Rack(音)语言,如果想要开发,需要首先学习语言。像以太坊是使用了solidity语言开发。我们在使用以太坊智能合约时,如果发送一个交易,如果交易不成功是会回滚的,但在Substrate中所有状态都会进行保存。所以大家在波卡上发交易之前,要先验证自己的正确性,确保没问题再发出交易。与此同时,在编写区块链时,也要先想好对应的逻辑是怎样的,保证用户发进来的交易请求不会发生大的问题。

这里列了一些比较有意思的对比。如果你使用了Substrate搭建平行链,和在以太坊或其他智能合约上搭建智能合约比较大的区别。包括刚提到的回滚的问题。

另外一个有意思的地方是链下工作机。很多人会问,基金会赞助了超过一百个项目,为什么没有预言机相关的?就是因为Substrate本身就包含了链下工作机。它的模式是,使用Substrate搭建的节点以及系统,节点可以通过链下工作机API和模块无缝的访问链下的数据。例如你可以去查交易所的数据,可以查天气预报的数据。这就使得你去使用Substrate搭建区块链,可以很方便的访问链下数据,与链上的节点形成共识,处理对应的商业逻辑。

之所以推荐大家现在使用Substrate,是因为,现在用智能合约编写程序,限制是很大的。只能做和token、Defi相关的。有了Substrate之后,就有了开发的空间和自由度,可以搭建更多、更有意思的应用和Web 3的系统。例如可以做关于隐私的,做去中心化存储的,以及各种

三、平行链如何运行

搭建好平行链,使用某一个模块连接到波卡的中继链以后,我的区块怎么产生,区块如何在波卡的中继链被吸纳,最终写入到中继链这个区块链系统中呢?

每条平行链都有自己的状态,也有自己的函数。这块比较抽象,相当于一个节点收到了交易之后,它有一个状态转换的函数。大家可以想象成以太坊上处理智能合约的逻辑。每收到一个交易,状态是从A到B。比如一个用户转给另一个用户token,随即状态会发生转变。


有了状态转变,就需要形成区块。形成区块需要有些节点进行采集。在波卡中,其实是把交易、区块生成、采集以及验证是分开的。平行链本身不需要节点进行验证,而是需要一个采集区块以及交易信息的节点。这个节点就被称为收集人(collators)。

收集人只需要将生成的区块收集起来。之后传给验证人。

验证节点是从中继链中直接选择的。例如现在讲是十个验证节点,随机分配给平行链,分别验证平行链中采集者收集的区块。十个验证人如果大多数确定区块是没有问题,就会将区块传给其他验证人。最终通过共识协议将区块写入。


采集人和收集人其实是提供比较具体的信息给验证节点。验证节点需要两种信息,一个是旧的状态树,例如上一个区块的状态树,以及新的状态树和中间由于那些区块,或者处理了哪些交易导致状态不一样,把这些数据或信息提供给验证节点。验证节点再对这些交易和区块进行处理,确保新生成的状态树是没有问题的。

再具体的,验证人是由中继链进行分发的。假如目前有100条平行链,1000个验证人,那每条平行链就可以获得10个验证人。其中超过一半发现状态转换没有问题,就进入到下一步。

下一步会更加复杂。大家可以忽略这些细节,我尽快介绍。验证人要验证的数据是很多的,包括前一个有效区块的状态树,这个区块的状态树以及中间的交易。这些内容是很大的。我们就要想办法将这么大的内容,以某种形式让每一个节点都知道。未来也会涉及一个机制,就是监督人或者叫钓鱼人。他们会验证其中某一个区块是否有问题。如果有问题,会让其他验证节点来检查区块是否有问题。

这个过程就涉及到需要验证每一个有效证明本身是很大的。不可能 让每个验证节点都存储如此大的内容。于是我们有了新的想法,就是纠错码的机制。

为了让每个验证节点拿到有效的验证证明,我们只需要不同验证人拿到一个片段就可以了。只要拿到超过三分之一的验证片段,它们就可以重建有效证明。这就解决了由于有效证明太大,为了让其他验证节点可以很快的拿到和保存可验证的信息,就用了纠错码的算法。可以让每个验证人只存一部分。如果某个验证认想要验证区块中存在的问题,他们可以从其他人那里获取。超过三分之一的片段就可以去验证。

如此一来,不同的收集人和监管者就可以验证对应的区块。它们会以某种形式向验证人要对应的片段。如果重建和验证之后发现是有问题的,会向钓鱼者或监督人抵押一部分自己的DOT,要求中继链去进行验证。如果是真的有问题,对应区块的验证者抵押的DOT要被扣除一部分。如果没有问题,监管者或收集者就相当于发了错误的警告,那他抵押对应的DOT就要被扣除掉。

总之,经过了这整个一套相对比较复杂的验证阶段之后,我们能够比较好的保证整个系统能够承受攻击所要求的的时间是很高的。如果想做一次攻击,可能需要超过五十年的时间才能达到一次比较成熟的攻击。而且代价也是很高的。就像我刚刚提到的,就是抵押的DOT会被扣除掉。

平行链是先通过采集人,把对应的区块和信息采集到,发给从中继链选出的10个验证节点。10个验证节点验证采集到的区块和信息保证没有问题。与此同时,通过纠错码将对应的相关信息分发给不同的验证节点。最后钓鱼者或监督人,拿到超过三分之一信息进行第二次验证,保证验证没有问题。对应的区块就可以通过中继链中的共识协议从一个区块进行到另一个区块。、

有了这样比较好的保证,平行链中的区块可以写入到中继链中。接下来我们想的可能是,要如何竞拍平行链插槽。

四、平行链插槽

竞拍平行链插槽有几种模式。一种模式是,一个团队可以租用平行链两年或者更短,例如六个月时间。这个平行链插槽是专属于这个团队的;另外,也可以使用平行线程的方式。

相同点有很多,比如有相同的API,相同的互操作性。不同点是,平行线程需要相对少的DOT的抵押。是需要的时候再进行竞拍,竞拍成功,就可以在对应的区块中将自己的区块写到中继链中。而不是在六个月到两年内享有独有的平行链。


关于平行链的分配,我们要进行一个蜡烛拍卖。蜡烛拍卖会在一个随机的区块作为结束时间,然后用上一个区块对应的拍卖状态进行结算。

大家知道,在以太坊上做去中心化的竞拍,会产生一个问题,很多参与者会卡着最后结束的时间参与竞拍。这样普通用户就很难得到竞拍机会。因为竞争不过机器人。在波卡网络中是随机选择的时间点,所以越早参与竞拍,就会更有优势。这样就会在相对公平的环境下进行竞拍。

每个插槽是为期六个月,每次是开放竞拍1-4个插槽。

算法上,我们会以4个槽位进行计算。例如在图表中,第一年给出的价格Herry是最高的100,但我们的算法是把四个插槽一起算的,第一位是75乘4是300,后两位是算在一起的,结果是280,最终第一个人拍到了前两年的插槽。

目前我们也提供了比较多的方案帮助大家进行竞拍。第一种是众筹,除了团队自己的DOT抵押之外,可以通过众筹,让社区不同的人参与众筹来做抵押。当然这里的抵押或锁定是没有质押回报的。例如现在的质押回报是10%年化。这样不同的团队想要获得平行链,就要想办法支付对应的众筹奖励。当然也可以使用稳定币或者DOT来进行支付,或者项目本身有token也可以做支付参与损失的DOT质押的回报;

第二种方式是最近才提出的。是通过一些Defi的借贷协议,大家可以租用DOT,支付租用费用来参与竞拍;

第三种参与方式是参与的项目有自己的国库,比如做Defi或去中心化存储项目。会收用户一些费用提供对应的服务。这样收的费用中就可以有一部分放入到国库中,国库就会把收益用来做插槽竞拍。这也是一种比较可持续的方式。作为平行链有一定的收益,使用收益进一步的竞拍到平行链插槽来保证自己长期的运行。

当然初期,可能由于插槽的个数是比较少的,就会有一些团队竞拍不到对应的平行链插槽。也有几个其他方式帮助大家继续运行项目或系统。

第一种是可以把自己的平行链转为平行线程。其实我看了一下社区中很多项目,其实也不是需要自己的链随时随刻连接到中继链上。如果只是需要不定期的将区块写入到中继链,平行线程是很好的解决放案;

第二种方法是可以将平行链部署到KUSAMA(金丝雀网络,波卡主网的测试网)上;

第三种,初期我们会上线一些系统级的平行链或公益的平行链,他们会提供一些基础的功能。有些团队也会做智能合约平行链。这样大家就有第三种方法,就是将自己的平行链逻辑转化成智能合约或者应用,部署到其他平行链之上。也可以应用到平行链上有用的功能,比如跨链转账、跨链交互等功能和服务;

第四种,可以先运行Substrate链,再通过桥接的方式连接到其他平行链,最终连接到波卡上。

目前,我们发布了第一版平行链测试网。之后会有V1的版本,初期的版本,再往后,平行链会首先登陆KUSAMA,再往后通过一段测试才会到波卡上面。

如果大家有意参与波卡的生态,做项目,我们有各种连接到社区的方式。如果是偏生态系统组件的项目,大家可以去申请Web 3基金。如果团队是偏中、后期,在做一些应用,也可以申请我们的技术和商务的支持。

当然,如果大家不是开发项目,只是想参与到社区里,我们也有大使计划,有兴趣可以参与进来。


全球现在已经有超过100个团队在基于Substrate进行区块链的开发。我们亚洲团队,也会有几个支持社区的项目。一个是万向举办的Web 3训练营,今年有十五支团队,如图都是大家耳熟能祥的团队,也拿到了比较好的资金的支持以及技术和市场的支持。

以上就是笔记的全部内容。

可能你读了这篇笔记,对波卡的平行链技术依然会有不明白和不清楚的地方。更多还是要自己动手尝试,先用把DOT转到官方钱包,参与节点质押获得质押奖励开始吧。通过学习和尝试,核心目的是你要对波卡这个完全和以太坊不同的区块链平台有切身的感知。而只有你对于波卡的技术有了体感式的感知后,在11月即将开始的平行链拍卖(波卡生态项目会通过众筹方式进行卡槽竞拍,而散户参与众筹可以获得生态项目的代币或DOT)时,才能更好的抓住机会。

加密世界里从来不缺少盈利的机会,但提前布局,及时把握是关键。努力让自己从不懂到看透,加密世界的机会才真的属于你。

在最后一张图里,大家应该能找到一个彩蛋,就是MYKEY也位列万向Web3训练营获得资助的项目之列。说明币乎、MYKEY的团队以及咕噜其实并没有停留在投资以太坊获利,参与EOS生态的阶段,也在通过快速学习,探索波卡新的可能性。

以上。

—-

编译者/作者:行走

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...