为何需要设计一条多链多共识的公链
扫描二维码
随时随地手机看文章
EKT是一个模块化的区块链底层框架,将构建一个基于多链架构的公有链生态系统,致力于成为支持大量应用落地的商用公链。能够为企业提供易用、灵活且高效的通用型基础技术,共同推动区块链应用场景落地。
“放弃”区块链2.0?
比特币、以太坊分别作为区块链1.0与2.0时代的杀手级应用和平台得到快速的发展和普及,使区块链技术呈现出爆发式增长。从比特币到以太坊,区块链公链生态一直在进化。最开始中本聪只想设计一个可信记账的账簿,几年之后Vtalik创造性的将预言机与区块链结合,诞生了区块链2.0。
以太坊创始人VitalikButerin的初衷是做一个“全球分布式计算机器”——一个可以用来计算一切的分布式图灵完备机器,一个去中心化的应用平台,一个解决金融/财务纷争的预言机。然而以太坊没有scalability的架构,难以进行资源隔离。Vtalik和以太坊开发者们也意识到了这个问题,他们给出的解决方案是分片(Sharding)。Vitalik坚信,以太坊扩容的解决方案是分片技术。
以太坊接下来应用的Plasma技术,将整个网络的计算用更简单的方式完成,同时,让以太坊能够在现有的区块链上使用PoS算法。这些都是为了对抗现在其他新兴基础链不得不采取的举措。在基础链技术还不成熟的现在,技术创新、更新换代的脚步是不会停下的。竞争的激烈不言而喻,虽然目前绝大部分Dapp建立在以太坊之上,但是开发者们已经对以太坊产生了越来越多的抱怨。在改进现有底层链技术难题问题上,还是有许多创新技术和项目出现。
在区块链行业生态当中,一个能够满足商业需求、高效的区块链公共应用平台是必不可少,并占有极其重要的地位。
何为“多链”?为何“多链”?
多链,即抛弃了“一链治所有”的传统方案,采用“一链一合约”的新方案重新设计了一个保障每个合约都能正常运行的公链。这一创新极大程度上简化了架构,降低了数据处理压力,确保一条链上流量激增不会影响到另一条链的效率,在链上进行的任何业务都不会收到其他业务干扰,有效实现了资源隔离。
现有区块链技术在单链架构下存在性能、容量、隐私、隔离性、扩展上的瓶颈。
想象一个用户数以亿计的类VISA的支付应用,每秒交易请求高达几万笔,每日交易笔数高达几亿笔,用户交易达到秒级响应体验。在现有区块链技术下,数据存储采用链式本地存储,导致无法平行扩展,共识机制采用同步式状态机模型导致无法高效处理交易,同时受限于网络中单节点的性能极限,因此单链架构无法满足应用的性能、容量、用户体验及其他要求。另外一些应用内部需要根据业务功能的需要对数据做平行切分,以达到数据隔离的业务要求和安全要求,由于当前区块链技术体系中的单链中的每个全节点都拥有全网所有数据,因此无法满足此类应用要求。
另外区块链的互操作性本身就是一些应用的基础需求。想象一个理财应用,用户可以用某项资产交换不同机构的理财产品,不同的资产就需要在多条链上做转移、交换。还有一些ORACLE应用同样需要多链间的跨链喂入交互,譬如汇率牌价、天气、股价、特定指标等等。
区块链的某些应用在单链上无法完整实现,需要在多链架构下的可扩展性、隔离性、高性能、互操作等特性的帮助下实现。因此,EKT进行了“多链多共识”架构的设计。
在 EKT 多链技术的生态中,实行的是“多链多共识”机制。EKT主链是其中最重要的组成部分。基于EKT提供的多链机制,其他项目可以基于EKT运行一条独立的主链。这条独立的主链可以根据需求灵活的配置代币的种类、数量以及共识算法,同时也可以方便的接入 EKT 多链技术的生态并共享 EKT 多链技术生态的资源。
一、EKT 的多链架构
EKT 多链技术生态是一个并行多主链的结构,设计了一套独特的多链架构,分为的Token链和DApp链。在这套多链架构中,除了 EKT 的主链外还支持多条并行的主链。每条主链中都会有一个主币。不同的主链可以采用不同的共识机制,默认的共识机制为 DBFT。 开发者可以通过主链提供的 Consensus 接口创建并完成自己节点的部署。
多链是平行EKT所在的链是记录所有链和token信息的。EKT 主链维护一套统一的用户系统。基于这套用户系统,无论是主链、多链还是 DApp 应用,都可以快速的利用主链已有的用户体系进行开发并获取用户。也极大的降低了用户在不同 DApp 间的切换成本。另外用户可以修改公私钥对以及使用的加密算法,这使得 EKT 的用户体系的安全度会一直跟随时代的发展。即使量子计算机普及,用户也可以相应的把算法更换为抗量子攻击的新算法。
如果一条基于 EKT代码运行的主链想要加入到 EKT 多链技术生态的话,他该如何操作呢?EKT 多链技术会提供一个统一的客户端。这个客户端可以看做是其他主链和 EKT 主链进行连接的入口。其他主链可以在这个客户端里提交自己的主链信息,包括部署节点、代币名称、代币数量以及共识算法等信息。在向 EKT 主链注册成功以后,这条主链就可以共享 EKT 通用积分生态的资源了。
每一条基于 EKT 代码运行的主链都需要有自己的代币,即所谓的“一链一主币”。主币可以充当该链上的交易手续费。另外由于 DApp 开发也可以基于主链,是主链的上层应用。主币的功能及消费都可以在 DApp 里进行定义。
二、多链的资产交换
上面提到在 EKT 多链技术生态里,每条主链都需要有一个主币。基于 EKT 提供的钱包,不同主链的代币可以同时存在于一个账户下,这就是为用户的跨链资产交换提供了基础。只有加入到 EKT 多链技术生态的主链才可以分享生态的用户资源并且把自己主链的代币在全网中流通。
不同主链上的代币进行交易时所消耗的手续费根据交易发生在的主链来决定。比如 A 链向 B 链转发了一笔资产,这笔交易是记录在 A 链上的,因此需要消耗 A 链的主币作为手续费。
跨链转账分为两种:
1、内部跨链,因为多链共享用户系统,所以只是有了一个大钱包,而不是真正的跨链。由于所有的链共享了同一套用户系统,所以 EKT 天然支持资产的跨链转移。
2、跨公链,两条独立的公链如果想要进行跨链的资产交易,首先需要对用户达成共识,即在一个公链上的地址转移到另外一条公链时需要双方都对对方的公链先进行注册。然后进行跨公链转账。
跨公链也是有两种的:
1、通过跨链协议实现。
2、为了兼容大多数公链,其他类别的跨链也会通过侧链方式实现,关于跨链协议的具体内容,详见跨链报文协议。
三、多链多共识
区块链可以看做是一本记录所有交易的分布式公开账簿,而区块链中每个节点都是对等的。这就带来一个问题:谁有权往这个账本录入数据?如果有好几个节点同时对区块链进行数据写入,最终以谁的为准?这就是一个在分布式网络中如何保持数据一致性的问题。共识就是在一个分布式的网络中,让各个参与网络的节点达成数据上的一致性。在区块链中,共识算法的作用还包括区块生产、区块验证以及系统的经济激励等功能。不同的共识算法适用于不同的应用场景,不同的应用场景对共识算法也有不同的需求。这就要求一个区块链应用开发平台能够提供不同的共识算法供开发者进行选择。
EKT 主链采用的共识算法是DBFT,这是一种兼顾效率和去中心化的解决方案。默认情况下,基于 EKT 生成的其他主链的共识机制也是 DBFT。但是不同的共识算法的适用场景也各有不同,而共识算法自身也在进化,每年都有许多新的共识算法被提出。因此如果能提供一种机制,能够 EKT 生态支持的共识算法根据技术的发展而不断扩展,这对基于 EKT 主链进行开发的开发者是一个非常大的优势。
在项目初期,EKT 除了默认提供的DBFT 共识算法以外,还会陆续支持工作量证明(POW)以及股权证明机制(POS)。 用户在基于 EKT 主链的代码部署自己的主链时,可以选择使用哪种共识算法。在部署完以后再去 EKT 的客户端中进行注册。共识算法一旦选定就会记入 EKT 主链,不可更改。
EKT 多链技术生态是一个开放的系统,任何开发者都可以向 EKT 主链提交自己实现的新的共识算法。如果用户想要使用的共识算法暂时不被 EKT 所支持,那用户也可以基于 EKT 开源的代码进行开发,引入自己想要使用的共识算法。我们鼓励并欢迎开发者向 EKT 项目提交自己实现的共识算法。
四、多链多共识的优势
相比较目前大多区块链应用平台只能提供一种默认的共识机制,EKT 的‘一链一主币,多链多共识“ 的机制为后来的区块链项目开发提供了很大的便利,可以使用于任何区块链适用的应用场景。 EKT 提供了一套低层的区块链机制,其他的区块链项目可以很容易的基于 EKT 的主链代码部署一套自己的主链。在部署主链时可可以灵活的发行自己主链的代币以及选择共识算法。新部署的主链也可以加入到 EKT 多链技术的整个生态,共享 EKT 生态的用户资源,代币也可以和EKT 主币以及其他主链的代币进行交换和流通。
在多链多共识的机制下,EKT区块链将充分利用跨链技术的优势,对多条链的应用场景进行整合并统一进行管理,形成多共识应用场景生态。此项技术将在各大平台领域都能得到充分的应用和落地。EKT 区块链的多链结构能够满足应用场景的使用多样性,这增加了多功能平台的多重整合的可能,同时,多链结构和跨链价值交换又能保持整个生态系统的良性运转。在多个代币形成的架构中,主链将维持着所有代币的平衡和使用,使得所有代币都能正常的运转,带动子链生态的和谐发展。