1
撰稿人: 卡酷少 kakushao

在区块链所面临的诸多问题中,区块交易的处理速度,和区块链之间的互通性都极大程度的限制了区块链的应用空间。要实现更快的交易确认速度,拓宽区块链向外连接的桥梁,测链和分片都将是实现其作为价值网络体系的关键方案。

本文将依托结合现有区块链,来介绍和对比几种测链跨链方案。

Ethereum Sharding

根据V神的设想,以太坊的分片技术,就是在网络分区的基础上,并行地架构一条或多条分片链,并将交易在所属分片链上,也就是主链外进行确认,并在固定间隔时间将分片区块头与主链同步。这样可以有效地分散主链请求的压力。

在此我们就不在做过多解释,本公众号之前有一篇关于以太坊分片技术的介绍,详情请点击跳转链接。

以太坊的分片方案解析

阿希链 -- “测链、多链与跨链技术”

在阿希链系统上,每个DApp都是运行在一条测链上的。其与主链的关系,一如进程之于操作系统。并且每条进程都跑在一个沙箱隔离机制下的JavaScript虚拟机上。阿希主链提供相当于底层的基础设施。提供了比如数据库的读写,网络通信的API,以及加密的API等等支持。这种设计的好处,是测链的代码和数据的独立。这实际上也是一种天然的分片机制。类似于以太分片链,阿希的每条测链也拥有独立的见证人和独立的网络节点。

主测链关系图

阿希链在测链的实现之外,还设计了跨链的互操作。这主要依赖于跨链网关的实现。在比特币的跨链网关通过提案系统的投票并上线以后,用户就可以利用这个网关进行比特币对阿希链的充值和提现。用户首先需要在阿希链上完成一个开户的动作,这个账户由跨链网关来维护。用户在完成对这个账户充值以后,跨链网关就会调用相关的合约,在阿希链上对这个用户发行一笔等值的比特币资产。这个比特币资产就可以像其他阿希链上的资产一样,可以在阿希链的生态里流通,也可以导入到DApp中使用。

其他主链的资产在导入阿希链的过程中,需要经过一个跨链网关。跨链网关是一个有多个节点共同维护的多签名地址。这些节点由提案系统选举出来,各自同时维护着其他主链的全节点和阿希链的全节点。跨链资产到阿希链的充值、提现等工作都是由这些节点来完成。资产从原来的主链进入网关以后,会在原来的主链上锁定,同时阿希链会解锁一笔对应的资产,用于阿希链内部使用。用户可以随时从阿希链提现到原来的主链,这个过程和充值的过程完全相反。这是一种通过多签名联盟来实现的双向资产锚定的方案。

跨链网关

举例说明,假如Alice想要用BTC向阿希链的Bob发起一笔价值1BTC的交易。那么,Alcie首先需要注册一个阿希链账户,并对这个账户进行充值。在发起转账时,跨链网关调用相关合约,在阿希链上对Bob进行一笔等值的比特币资产转账。(注意,这笔资产,既不同于BTC也不同于XAS,而是一种类似于XAS-BTC的代币。)之后这笔比特币资产就可以在阿希链的生态里自由流通。

总结而言,跨链网关具有一定的中转和管理功能,能够在尽量实现分布式的情况下,以见证节点多签的方式来保证交易的可靠性。在应对交易撤销方面,在不主张主链回滚的前提下,给出一天时间延时写入区块。是相对比较可行且完善的方案。

Zilliqua

Zilliqa是一个高吞吐量的公链平台。也是截至目前,在其测试网络(testnet)上实现分片技术的仅有的两个中的一个区块链项目。

Zilliqa清楚区分了状态(state)和交易历史(transaction history)。状态是指当前的情况,比起存储交易历史,状态存储空间占用较小,但使用频率较高。Zilliqa采用的方式是:每个节点拥有当前状态的拷贝,但交易历史将被分片。因为交易历史使用频率比起当前状态要低,所以这将很大程度上减少分片引起的频繁通信问题。

zilliqua交易历史的分片

提起Zilliqua就不得不提QuarkChain。QuarkChain也是基于分片技术实现了高性能点对点交易系统。在系统结构上分为两层:分片层(sharding layer)和用于验证前者的底层(root layer)

其在分片实现上与Zilliqa最大的区别:
Zilliqa只支持交易历史的分片,但QuarkChain声称支持状态和交易历史分片
片间交易(cross-sharding)能力比起Zilliqa更强。

相比而言,首先,以太坊上实现分片,首先需要实现Casper。Casper和分片的实现将很大程度上改善以太坊的短板。其次Zilliqa和Quarkchain已在测试网络上成功运行了分片技术,但两者的实现是有区别的。

Covenant SQL

与传统的数据库不同,Covenant SQL是一个分布式数据库,也是一个区块链数据库,一个哈希上链的数据库。为了更便于用户使用,Covenant SQL支持SQL-92,兼容各种现有SQL语言框架。Covenant SQL不涉及太多的共识机制,主要关注点是在数据上链存储(hash值存储)。

Covenant SQL的底层架构如下图:

convernant SQL架构

在DPOS的共识下,Covenant SQL由mainer轮流出块。其出块逻辑大致如下:

CovenantSQL出块逻辑

需要注意的是,CovenantSQL并没有直接将SQL链的接口暴露给客户端。而是中间隔了一层数据库实例。所以底层的数据相对更加安全一些。


kakushao
26 声望12 粉丝