本体网络如何实现跨链功能的?还在比较区块链项目可以实现的 TPS指标?还在讨论单条公链如何突破「性能低下」的瓶颈?进入 2019 年的年中,现在行业更关注的问题是,面对越来越多语言架构各异的公有链、联盟链、私有链,如何真正实现「互操作性」?
换句话说,现在大家正在积极思考并探索,如何终结各个区块链自成体系、分裂割据的局面,在一座座价值孤岛之间如何搭建桥梁,使链与链之间可以互联互通、实现价值流通,从而形成整个区块链的价值互联网。
从以太坊社区最早提出的链下扩容方案 Plasma,到 Cosmos 和 Polkadot 这样的以「跨链」为核心目标的公链项目,可以实现「跨链」或「互操作性」功能的技术方案一一崭露头角,引发业界关注。
像本体这样的公链项目,在建设生态发展的同时,也在积极探索适合的跨链解决方案,从而可以让不同链间的 dApp 开发者可以通过调用跨链管理合约来完成跨链操作,实现链接不同区块链,为整个生态赋能。
在区块链的世界,封闭的孤岛没有价值。本体这样的公链项目在跨链方向进行的尝试值得其他深入研究。那么,本体在跨链设计和架构方面,与其他跨链项目有何不同?其设计思路是什么?如何实现?这对众多公链项目具有借鉴意义。
从 Plasma、Cosmos、Polkadot,到本体
不妨先比较一下几个热门的跨链解决方案的特色,以及它们是如何实现跨链功能的。
Plasma:如今坊间热议的跨链技术始自 2017 年 8 月由 Joseph Poon 和 Vitalik Buterin 首次提出的链下扩容方案 Plasma,其本质上是一系列运行在以太坊主链上的智能合约,通过将大量交易和计算“下放”到侧链来实现,以提高以太坊主链可扩展性。不同于以太坊主链目前使用的PoW共识算法,侧链将使用 PoS 等 TPS 更高的共识机制,因此侧链提供了可扩展性,而主链保证了安全性和去中心化。
形象地说,以太坊主链就像最高法院,不需要处理过多事务,而侧链就是下级法院,从最高法院获得权力。主链将使用数学可验证的方法来处理争端,并用自己的资金奖励正确的一方。
Cosmos:今年 3 月 14 日主网上线、引发跨链技术热潮的 Cosmos 则是 Tendermint 团队开发的一个支持跨链交互的异构网络 (Internet of Blockchains)。Cosmos 由不同的独立、平行区块链组成,其中的每条区块链都通过如 Tendermint 这样的 PBFT (经典拜占庭容错)共识运行。Cosmos 上的区块链称为“分区(zone)”,其中的一些分区又称为"枢纽 (Hub)",不同的分区可以通过共享的枢纽来互相通信与互操作。
Cosmos 网络上的第一个分区就是 Cosmos Hub。因为所有跨分区的代币转移都需要通过 Cosmos Hub 进行,所以代币可以安全、迅速地在分区之间转移。分区之间无需具有直接的汇兑流动性,而只需通过 Cosmos Hub 来追踪记录每个分区持有的代币总量,并确保所有分区的代币总量不变。Cosmos Hub 在此起到了一种类似中央银行结算功能的作用。
Polkadot:另外一个令人瞩目、但尚未正式发布的跨链项目 Polkadot 是由前以太坊联合创始人、CTO Gavin Wood 设计的可伸缩性的异构多链系统。Polkadot 设计了一种新的区块链形态,由单独的中继链去统一管理共识安全和数据交互,用百花齐放的平行链技术去满足各种应用需求,进一步分离共识和状态转换,使开发者和企业能够利用其协议建立区块链,即平行链(parachain)。
只要这些平行链建立在 Polkadot 的基础之上,将共享同样的权威证明(PoA)共识。由于该类型共识嵌于 Polkadot 中,平行链开发者可以专注于各自区块链的特异性。所有平行链都和被称为中继链(relay chain)的通用区块链无缝连接,后者扮演连接所有平行链的角色。
本体:定位于新一代公有基础链暨分布式信任协作平台,于去年 6 月 30 日实现主网上线,之后又在 12 月 28 日发布本体分片设计,连通区块链与互联网,为实体经济服务。
2019 年,本体按路线图计划将着力于同构多链、异构链网的打造,帮助去中心化应用(dApps)能够基于不同的链进行更好的开发,为此推出了全新的轻量级、低耦合、安全可靠的跨链解决方案。
该方案可同时支持同构链(与当前的本体主链具有相同架构的侧链)和异构链(与当前本体架构不同的侧链),当需要连接不同结构的链时,在源链和目标链中部署用于管理跨链操作的合约之后,不同链间的 DApp 开发者可以通过调用跨链管理合约来完成跨链操作。
值得注意的是,本体链网的主链区块信息受侧链信任,侧链的区块信息无法一开始就获得受主链及其他侧链的原生信任。因此,为了验证跨链状态的合法性,侧链需要在注册时向主链的多链管理合约提交该侧链的创世区块头、抵押 ONG 量等基本信息,同时需要将主链的当前关键区块头信息初始化在自己的区块头同步合约中。
源链和目标链的跨链交互所需相关合法性证明须在跨链交易发生时在链间进行传递。与此同时,合法性证明也需要源链或目标链的某些关键区块头信息,主链与侧链的交互需要从对方同步关键区块头信息;而侧链与侧链的交互,由于双方都可以从主链上拿到对方关键的区块头信息,因此只需直接从主链上获取即可。
五个模块,了解本体跨链设计
在本体的跨链设计中,由 Ontology 主链、各条同构侧链以及异构侧链构成整个链网体系。在这个体系中,使用 ONG(Ontology Gas)作为统一的燃料手续费和矿工费。
本体跨链设计主要包括如下 5 个模块:
多链管理合约
主要负责侧链注册和管理,包括侧链注册、侧链状态管理、侧链 ONG 抵押管理、侧链资金池管理等。多链管理合约部署在主链 ;
区块头同步合约
在主链与侧链或侧链与侧链交互过程中需要进行关键区块头信息的同步,以验证跨链交易的合法性。同时,侧链和侧链的交互过程中,双方将从主链上取得对方链需要跨链的前一个关键区块头信息。区块头同步合约部署在主链和每一条侧链上;
跨链管理合约
所有跨链交易都由源链上的跨链管理合约来进行统一管理,dApp 开发者无需关心具体的跨链逻辑,只需调用跨链管理合约的统一方法即可实现跨链。跨链管理合约部署在主链和每一条侧链上;
ONG 合约
系统资产合约,该资产可以实现跨链转移,并可以作为交易手续费和跨链交易矿工费。主链 ONG 合约添加了跨链资产锁定 / 解锁功能,侧链 ONG 合约添加了跨链资产增发 / 销毁功能。ONG 合约部署在主链和每一条侧链上;
信息状态同步者 Relayer
是一个状态信息同步程序,持续监听跨链合约的跨链请求和某些关键区块,监听到后进行跨链交易或者同步关键区块头获取矿工费。
如何管理侧链的全生命周期?
本体链网中的侧链犹如世界中的生命,其生灭始终的全生命周期通过部署运行在 Ontology 主链上的多链管理合约来实现。
通过多链管理合约,能够进行侧链注册,及其状态、ONG 抵押、资金池管理等多种功能,其具体设计如下:
一、侧链注册
侧链在主链注册时需要使用本体去年 8 月 28 日被 W3C (万维网联盟)接受的 ONT DID (去中心化身份标识)完成 KYC (身份认证),并提交创世区块信息、ONG 抵押量等基本信息。同时,侧链需要在主链上抵押一定的 ONG 作为保证金,该保证金由侧链初始验证人共同抵押,ONG 各自抵押多少则由侧链验证人协商确定,但不能低于承诺的抵押总量。
在提交注册信息前,侧链验证人需要提前在主链抵押足够的 ONG,若抵押量不足,则会导致注册失败。如果侧链存在恶意行为(例如,侧链验证人恶意增发侧链上的 ONGx),则会扣除相应保证金作为惩罚。主链治理委员会审核侧链提交的基本信息,审核通过后根据保证金数量为侧链分配一个资金容量池,用于管理该链与其它链交互所用的资产,侧链至此注册完成。
可以看到,侧链资产(ONGx)的总量取决于其在主链中资金池的大小。某个侧链一旦作恶,那么该链在主链上质押的保证金可用来偿付用户。因此,通常情况下,侧链资金池的容量与抵押保证金的比例是 1:1.当然也可以是其他比例,但为了保证足够的安全性,本体建议将该比例设置为 1:1.本体认为这一优于其他跨链项目的制度设计确保侧链抵押金额不小于侧链与主链资产交互的实际价值,足以遏制验证人作恶的动机。
二、验证人信息变更
如果侧链验证人信息发生变更,需要新的验证人去主链先抵押足够的 ONG,该抵押量不能低于原有验证人退出时抵押的 ONG 总量,当 Relayer 将新的共识周期的验证人区块头提交到主链时,主链会验证新的共识周期的验证人抵押的 ONG 总量是否低于设定的 ONG 抵押量,若低于总抵押量,该区块头同步将会被拒绝,若不低于总量,原侧链验证人抵押的 ONG 将会在两次验证人信息变更后被解锁。
三、跨链资产兑换
侧链注册完成后,用户可以将主链的 ONG 锁定在某条侧链注册在主链的资金池中来换取该侧链上相应的资产。
用户在某条侧链注册在主链上的资金池中锁定 ONG 后,主链会生成相应IOU(借据)信息,若主链资金池被充满则锁定失败。如果主链锁定成功,Relayer 可基于主链生成的 IOU 信息在侧链释放对应比例的 ONGx。反之,用户在侧链中销毁 ONGx,可根据侧链生成的 IOU 信息在主链中释放对应的 ONG。
四、侧链资产动态管理
如果侧链想扩大在主链上的资金池容量,可增加自己在主链中的保证金,并向主链提交申请,若审核通过,侧链在主链上的资金池容量会扩大,侧链的资产供应量也会相应增加。
与此类似,侧链想减小在主链上的资金池容量,则需要先向主链提交申请。若审核通过,侧链在主链上的资金池容量会减少,侧链的资产容量也会相应减少。需要注意的是,侧链的资金池容量下限对应的保证金不得小于赔付当前所有用户锁定的 ONG 总量。
五、侧链注销
如果侧链需要注销退出,需要向主链提交注销申请,并等待一段时间的挑战期。在挑战期内,用户可自主地将侧链资产兑回主链。挑战期结束后,主链则返还侧链抵押的保证金,若该侧链上还有没被兑回的资产,则这部分的资产将会失效。
结合上文这些信息,可以从大的设计思路和框架初步了解了本体跨链方案的特点,尤其是其多链架构和侧链生命周期管理。而具体实现跨链的功能,同时保证整个系统的安全性,核心在于进行区块头同步、跨链交互和信息状态的同步。这些具体信息,值得撰写另外一篇文章,进行详细介绍。