APP内打开
风险提示:防范以虚拟货币/区块链名义进行的非法集资风险。 ——银保监会等五部门

一文讲解 Map Protocol 跨链协议

白话区块链 2020-12-04 16:42:04
微信分享

扫码分享

12 月 3 日晚八点,DefiGo 波卡之月邀请来 12 月第一期嘉宾,Map Protocol 研究员知一博士,给大家讲解波卡生态黑马- Map Protocol 跨链协议。

作者:DefiGo / 来源:投稿

一文讲解 Map Protocol 跨链协议

以下为知一博士的分享实录:

1. 请知一博士介绍一下 MAP Protocol?

知一博士:MAP Protocol 是一个波卡系的无中继的跨链桥接协议,基于密码学的可信验证,实现对数级空间复杂度的即时链间互操作。基于 MAP Protocol 设计的波卡跨链桥 MAP bridge 已经获得了波卡 Web3 基金会的 grant 资助。

波卡最早出现在 2016 年,当时 Gavin Wood 发表了白皮书,概述了其背后的技术愿景和基本的原理。他指出,尽管区块链技术是有前景的,但存在一些问题,导致它在现实世界中还没有重要的落地。Polkadot 旨在解决这些问题,并创建一个可扩展(可随需求增长)的区块链架构,在一个强大的共享安全系统中,具有不同功能的不同区块链可以共存并相互通信,为下一代互联网奠定基础。波卡是现在最热门的区块链赛道,具有大量的生态项目基于波卡的 substrate 架构发布。

2.MAP Protocol 在波卡生态的角色是什么

知一博士:波卡生态中的跨链有两大类,同构链的互跨和异构链的互跨。同构链之间的互跨主要是通过波卡的 XMCP 协议来达成的。异构链之间的互跨需要通过桥接链来达成。MAP Protocol 能够提供无需额外信任的,基于纯密码学证据的桥接组件,沟通波卡的生态和其他公链生态(例如以太坊)

3.MAP 的桥接方案和其他的桥接方案的主要区别是什么?

知一博士:目前市面上的大部分跨链桥接方案基本都需要依赖于中继集群来提供跨链信息的安全保证。而 MAP 协议是基于密码学证据来提供对应的安全保证的,因此 MAP Protocol 不需要中继集群,安全性更高,确认速度更快,但是实现相对复杂。

MAP Protocol 的跨链算法的空间复杂度是对数级的:MAP Protocol 的跨链算法要求通讯时交换的的跨链数据流时与链的长度呈 logN 增长的。也就是说链长为 N 的区块链,跨链数据流的数量级只有 logN。

MAP Protocol 的跨链互操作是即时的:MAP Protocol 会在底层实现不同区块链系统的 P2P 节点之间的直接连接和数据传输,从而达到即时互操作的目的。

4.MAP 协议技术特点是什么?

知一博士:1.MAP Protocol 的跨链验证是基于密码学证据的:

MAP Protocol 通过随机抽样和 MMR 路径证明来验证跨链数据流的合法性,是纯密码学的证据,任何节点可以本地验证这些密码学证据。

5.MAP Protocol 的技术架构是什么样的?

知一博士:我们用下面这个图来看一下。

一文讲解 Map Protocol 跨链协议

6.MAP Protocol 的核心模块有哪些?

知一博士:MAP Protocol 的核心模块包括负责跨链读取的 Ultra-Light Verification Protocol (ULVP),负责跨链写入的 MAP Feeder 和负责 P2P 节点发现和数据传输的 MAP Standardized P2P Stack.

7. 能否详细介绍一下这三个模块?

知一博士:大部分现有方案的跨链读取是通过 SPV 的方式,这就需要有专门的角色去负责同步不同的区块链的区块头,在波卡的生态之中这个角色就 Validator. Validator 会将各个平行链里面的区块头同步到中继链上。这样平行链的节点就可以通过 SPV 的方式去验证其他平行链里面的交易或者状态了。

但是对于非波卡的区块链,就无法直接通过这种方式直接去获取对方链的相关状态,这时候就需要我们 MAP Protocol 来提供相应的服务了。

首先 MAP Protocol 需要实现一个 Substrate-based 的 MMR 数据结构,该数据结构是默克尔树的变种,他的特点是新加入的叶子节点不会改变历史中间节点的内容,也就是俗称“append friendly”。这个特点和区块链的区块添加机制是高度吻合的。这个数据结构我们会用来维护所有的历史区块头信息。也就是说,每一个新产生的区块都会被作为叶子节点添加到 MMR 之中。而新的 MMR 的 Root 会被存在新生成的区块头之内。大概就是如下图所示一样。

一文讲解 Map Protocol 跨链协议

在有了 MMR 之后,任意节点就可以只通过最新的区块头获取到整个历史区块头链了。获取的方法就是通过一个 MMR 的路径证明。如刚才图中所示,如果需要获取 Block5 的区块头,只需要提供绿色的 MMR 路径以及 Block12 的内容就可以了。而一旦获得了 Block5 的区块头之后,所有 Block5 这个区块内部包含的交易,状态或者交易收据都可以依据类似 SPV 的方式来获取。我就不一一赘述了。

但是这只是 ULVP 的部分设计,我们还缺少的是关于最新区块头的获取的方案。这一部分的实现就有 2 个方式,首先第一种就是依靠一个可信任的第三方来进行传递,而校验的逻辑就是验证可信第三方的数字签名。这个方案的优点是易于实现,而缺点是中心化,容易被攻击。第二种方案就是基于随机抽样的工作量累积证明来实现。下面我们来介绍一下这个方案的大概思路。

我们来试想一下,一条大部分节点是诚实节点的 POW 公链,相同时间内攻击者能够生成的区块一定是少于诚实节点的。因此,攻击者如果想要提供一个假的最高区块头,就需要伪造一部分区块来使得自己的区块高度高于真实的主链。如下图所示 :

一文讲解 Map Protocol 跨链协议

黄色的区块是合法完成了挖矿的,而四个绿色区块是攻击者随意伪造的,如果只提供最新的一个区块,由于攻击者提供的最新区块是合法完成挖矿的,那么验证者就会无法分辨真实的主链以及攻击者伪造的链。因此,我们需要让攻击者和诚实节点都提供更多的区块。这一过程是通过抽样的方式来完成的。我们设计的抽样算法能够保证,无论攻击者如何放置伪造的区块头,验证者只需要抽样很少的区块头,就可以找出攻击者伪造的区块。具体的细节可以去参考稍后我们提供的相关技术文档。

通过这样的方式我们就可以实现不基于可信第三方的跨链信息读取。而这也是我们 ULVP 设计的初衷。

MAP-Feeder 子模块是用来提供跨链写入功能的,MAP-Feeder 模块会提供被动链上的一个 Reference 系统合约范式,该合约会通过 ULVP 模块提供的接口获取到主动链上的信息。这样,被动链上的任一智能合约都可以通过调用该 Reference 系统合约获取到主动链上的信息并依此进行各自后续操作,从而达成主动链对被动链的数据写入。如下图所示:

一文讲解 Map Protocol 跨链协议

MAP Standardized P2P Stack 子模块是基于 LibP2P 库设计的标准化 P2P 节点发现和数据传输协议。能够提供不同区块链系统的 P2P 节点之间互相发现和传输数据流的能力。通过将不同的区块链系统的底层 P2P 网络打通,使得不同区块链系统的节点可以直接连接到一起,提升整个通信的效率和安全,达到即时互操作的目的。

一文讲解 Map Protocol 跨链协议

8. MAP Protocol 有计划参与波卡的卡槽拍卖吗?

知一博士:MAP Protocol 作为波卡的生态资助项目,当然也会参与波卡的卡槽拍卖。目前的计划是分两步走。首先 MAP Protocol 会参与 Kusama 网络的卡槽拍卖,MAP 测试网 Makalu 会作为 Kusama 网络的一条平行链,沟通波卡 Kusama 网络和以太坊网络,对各个模块进行充分的测试和校验。之后 MAP Protocol 会参与到波卡主网的卡槽拍卖之中,并在成功之后发布 MAP 主网成为波卡的平行链。

9. MAP Protocol 的路线图是怎样的?

知一博士:

一文讲解 Map Protocol 跨链协议

10.MAP 的愿景是什么?

知一博士:MAP Protocol 期望构建一个具有可互操作性的波卡互链网,通过桥接不同的区块链接入波卡生态,将各链资源及能力整合互链,为区块链应用开发者提供统一的区块链基础设施,为金融、AI、物联网、溯源、治理等领域应用提供完整可用的区块链底层基础设施。

下载白话区块链APP

区块链世界入口第一站,人人都能看懂的区块链;24 小时热点实时追踪。