docs: add faq and introduction
This commit is contained in:
parent
8dfd70f8bd
commit
3a1d42257d
Binary file not shown.
After Width: | Height: | Size: 128 KiB |
|
@ -0,0 +1,101 @@
|
|||
# 产品问题
|
||||
## 【跨链技术】
|
||||
### 1. 跨链的必要性
|
||||
|
||||
**一是技术层面,区块链技术在单链架构下本身存在着性能、容量不足等问题**。单链由于受到目前共识速度的限制,节点的执行性能无法做到线性扩展,这限制了高交易吞吐量低延迟的商业场景的应用。除此之外,随着区块链运行时间的增长,其存储容量也将逐渐增长,且这种数据增长的速度甚至会超过单链存储介质的容量上限。目前的区块链共识算法、存储结构、和安全机制不同导致链与链之间缺乏统一的互联互通机制,这极大限制了区块链技术和应用生态的健康发展。
|
||||
|
||||
**二是业务层面存在跨区块链业务的资产交换和信息交换需求**。在资产交换方面,一些区块链事实上仍处于互相隔离的状态,它们之间的资产交换主要依靠中心化的交易所来完成,中心化的交换方式既不安全规则也不透明。 而信息交换由于涉及链与链之间的数据同步和相应的跨链调用,实现更为复杂,目前各个区块链应用之间互通壁垒极高,无法有效地进行链上信息共享。
|
||||
|
||||
### 2. 跨链技术的可行性
|
||||
目前区块链行业已经出现了很多的跨链技术产品,主要采用公证人机制(notary schemes)、侧链/中继(sidechains/relays)、哈希锁定(Hash-locking)等技术,已经在公链的场景中有很多应用例如:闪电网络,去中心化交易所等。
|
||||
|
||||
联盟链场景中采用类似技术及其增强技术,解决联盟链跨链需求,目前的产品已经能够解决跨链中的关键问题:
|
||||
1. 跨链交易的验证问题,如何确认记录交易发生的区块得到了足够的确认,即交易事务中各分布式网络间的数据一致性问题;
|
||||
2. 跨链事务的原子性问题,如何管理跨链事务中的各子交易确保跨链事务整体完整的原子性,即跨链事务的发生只存在两中状态完成或失败;
|
||||
3. 不同区块链之间的协议适配问题,如何对采用不同架构与协议的区块链之间进行适配,需要跨链协议中设计可以兼容多种异构区块链的数据结构、命名规范以及通信方式等。
|
||||
|
||||
## 【产品功能】
|
||||
### 1. 产品简介
|
||||
趣链科技跨链技术平台BitXHub,提出了一套完整的通用跨链传输协议IBTP(Inter-Blokcchain Transfer Protocol), 能够完美支持和兼容任意区块链系统,实现异构区块链的无缝连接。BitXHub采用先进的中继+网关的组合技术,解决了跨链中的交易捕获、传输以及验证的核心难题,所有关键技术均具有完全自主知识产权。同时,平台具备完善的跨链接口管理、异构链成员治理、联盟权限管控等联盟跨链专用机制,是目前业界最完备的异构联盟链跨链技术平台,已经在金融、政务等业务场景中进行了相关应用验证。
|
||||
|
||||
### 2. 实现原理
|
||||
BitXHub提出一种可扩展的适应不同异构区块链系统之间的跨链方案,通过设计可插拔的跨链网关技术,实现区块链网络间的的协议转换,并支持异构区块链之间的交易验证,该方案支持异构区块链之间交易的可信验证和可靠传递。
|
||||
|
||||
应用基于插件机制的跨链网关,实现异构应用链的快速适配与统一管理,以动态加载插件的形式随时加入平台;应用基于智能合约的异构交易验证技术,将交易验证规则进行全生命周期的管理,实现统一、高效的跨链交易合法性验证;应用基于可信事件的跨链传输协议,消除异构区块链之间技术机制的差异性,实现跨链交易格式的通用化与标准化,达成区块链平台在应用级别的可扩展性。
|
||||
<img width="681" alt="image" src="https://user-images.githubusercontent.com/44690871/78634606-e3e52080-78d6-11ea-90a8-ea4947df3979.png">
|
||||
|
||||
### 3. 跨链交易基本流程
|
||||
1. SDK 调用 具体的业务链A的合约方法;
|
||||
2. 合约方法被执行,抛出跨链事件T1;
|
||||
3. 业务链A的跨链网关监听到T1, 将其转换成IBTP结构,提交到中继链BitXHub上;
|
||||
4. BitXHub 依据相关规则对T1进行验证以及路由;
|
||||
5. 业务链B的跨链网关接受到T1并根据IBTP结构进行解析,转换成业务链B可识别的交易Tb
|
||||
6. B的跨链网关将Tb提交到业务链B上进行执行;
|
||||
|
||||
### 4. 跨链效率
|
||||
跨链的完整流程所需时间:**T = Ta + Thub + Tb**
|
||||
|
||||
其中**Thub**是中继链的验证和共识所需的时间,可达到 5000TPS 左右;**Ta**和**Tb**分别是应用链A和应用链B的执行时间,其性能取决于应用链本身的执行效率。
|
||||
|
||||
### 5. 社区版与商业版有何区别?
|
||||
社区版和商业版都支持基础功能:
|
||||
- 中继服务(跨链交易验证与路由、跨链成员管理)
|
||||
- 网关服务(跨链交易捕获、解析与调用)
|
||||
- SDK组件(GO、JAVA)
|
||||
|
||||
其他对比如下:
|
||||
|
||||
<img width="661" alt="image" src="https://user-images.githubusercontent.com/44690871/78636698-696acf80-78db-11ea-9722-4eedf567665c.png">
|
||||
|
||||
### 6. 跨链平台目前适配了哪几种应用链?
|
||||
目前已适配趣链区块链平台和Hyperledger Fabric,其他类型区块链(包括公链)可以按需通过插件形式灵活接入。社区版目前已提供Fabric的插件。
|
||||
|
||||
### 7. 所有跨链交易都会经过中继链处理,是否会存在数据安全性问题?如何实现不同业务链跨链时的数据隔离和隐私性?
|
||||
中继链中的所有交易均以IBTP协议的数据结构进行存储、验证:
|
||||
|
||||
| 参数 | 说明 |
|
||||
| ------ | ------ |
|
||||
| From | 来源链ID |
|
||||
| To | 目的链ID |
|
||||
| Version | 协议版本号 |
|
||||
| Index | 跨链交易索引 |
|
||||
| Payload | 跨链调用内容编码 |
|
||||
| Timestamp | 跨链事件发生的时间戳 |
|
||||
| Proof | 跨链交易证明 |
|
||||
| Extra | 自定义字段 |
|
||||
|
||||
其中的Payload是跨链交易的核心内容,BitXHub通过多种方式保证其安全性:
|
||||
- 采用特殊的编码机制,仅跨链双方可解;
|
||||
- 采用加密的方式,仅跨链双方持有秘钥;
|
||||
- 链上权限控制,非相关方无法读取相应交易(之后将核心代码开源以保证可信);
|
||||
- 采用类似隐私交易的机制,仅相关控制的BitXHub节点中保存相关方跨链交易
|
||||
|
||||
### 8. 跨链转账交易如何保证事务性?如何做回滚或补偿呢?
|
||||
目前社区版本暂不支持,主要方案是跨链网关结合中继链中存储的跨链交易状态信息共同保障,预计于2020年9月上线,敬请期待!
|
||||
|
||||
### 9. 通过DataSwapper相互传递的数据,如何保证真实性呢?
|
||||
- 验证引擎会对跨链交易、跨链交易执行结果采用SPV证明机制进行验证,来确保跨链交易和跨链交易的执行都是真实在链中发生的。
|
||||
- 应用链中跨链的接口必须按照规定实现,验证引擎会对比跨链调用的接口以及通过SPV机制验证调用接口执行后返回的数据的有效性。
|
||||
|
||||
# 技术问题
|
||||
## 【跨链准备】
|
||||
### 1. 中继链由谁维护?如何搭建?
|
||||
中继链本身就是一条联盟链,作为去中心化的可信中介,推荐的搭建方案是由参与跨链的各方共同维护节点来搭建中继链。
|
||||
|
||||
### 2. 跨链网关应该部署在哪里?
|
||||
跨链网关部署是由应用链方决定的,跨链网关只负责跨链交易的收集、跨链真实性凭证收集和跨链交易执行;整个跨链操作的可信是通过验证引擎对IBTP的验证实现的,如果跨链网关篡改数据,中继链的验证引擎将不会验证通过。
|
||||
|
||||
### 3. 对于未适配应用链需要做哪些开发工作,改造的工作量是多少?
|
||||
应用链适配工作包括:
|
||||
1. 根据我们提供的模板撰写跨链路由合约broker, 主要一方面将自己的合约某些方法提供给其他方使用;二是提供接受来自其他方的交换的信息或资产接口
|
||||
2. 对于需要跨链的方法,添加调用跨链的逻辑,就是调用我们提供的跨链合约接口
|
||||
3. 部署跨链网关(常见区块链无需改造,特殊的区块链只需要提供和区块链相关的SDK基本就可以)
|
||||
4. 将应用链的信息注册到BitXHub中,如链的ID,节点数量,共识算法类型等
|
||||
5. 根据应用链的共识机制编写交易的验证规则,详见[验证规则编写文档](https://github.com/meshplus/bitxhub/wiki/验证引擎规则编写)
|
||||
|
||||
## 【跨链操作】
|
||||
### 1. Fabric没有token,在跨链转账时使用的是什么资产模型?
|
||||
wiki中给出的例子是一个模拟资产操作的一个合约,对资产模型没做特定的假设。
|
||||
|
||||
### 2. 对于已经存在业务的应用链,是不是需要更改原来的业务合约才能兼容新的资产类型?
|
||||
对于已有的业务合约需要进行一定的改造,即实现规定的几个接口,详见[业务合约改造文档](https://github.com/meshplus/bitxhub/wiki/跨链合约编写文档#改造业务合约)
|
|
@ -0,0 +1,29 @@
|
|||
# 产品优势
|
||||
|
||||
## 可扩展
|
||||
|
||||
应用链可扩展:应用链可动态注册到中继链,随时加入跨链中继联盟
|
||||
|
||||
跨链层级可扩展:多个中继联盟可通过跨链网关组成多层级的跨链路由网络,实现跨层级高效路由
|
||||
|
||||
## 高可用
|
||||
|
||||
跨链交易严格按照递增序号进行验证和执行
|
||||
|
||||
任意组件宕机时均可以通过交易日志进行失效恢复
|
||||
|
||||
中继链使用高可用的RBFT共识机制
|
||||
|
||||
## 易接入
|
||||
|
||||
跨链网关以插件形式适配各类应用链,避免侵入性影响
|
||||
|
||||
在跨链网关不停机的情况下动态进行应用链与插件更新
|
||||
|
||||
## 多中心
|
||||
|
||||
以分布式的区块链集群作为跨链可信中继
|
||||
|
||||
多方共同监管维护跨链平台,跨链交易对参与方公开透明
|
||||
|
||||
跨链交易以链式结构存储,难以篡改且便于审计
|
|
@ -0,0 +1,26 @@
|
|||
# 技术架构
|
||||
|
||||
BitXHub中继链的技术架构自下而上分为物理层、基础层、跨链服务层、接口层四个部分。
|
||||
|
||||
![Tech Arch](/assets/tech-arch.png)
|
||||
|
||||
第一层是物理层,中继链的设计为了满足不同场景下用户物理环境需求,支持在普通物理机、云主机或者嵌入式设备上稳定运行,兼顾多场景适用性。
|
||||
|
||||
第二层是基础层,这一层包含了联盟链本身需要具备的模块,比如网络模块、存储模块、共识模块、虚拟机、隐私安全模块。
|
||||
|
||||
* P2P网络是节点之间共识和信息传递的通道,是平台的网络通信基础。目前平台采用Libp2p网络库,支持TCP和QUIC等不同的传输协议,满足不同网络条件下的稳定通信。
|
||||
* 根据数据类型的不同,平台设计了符合相应类型的存储模式。用于保证数据操作的原子性和持久性,平台选用WAL(Write Ahead Log)
|
||||
预写日志;针对随机性较强的Key/Value类型的区块链状态数据,平台选用高性能存储引擎LevelDB。
|
||||
* 虚拟机模块整合了能够完成复杂逻辑验证的Webassembly虚拟机,对跨链交易进行验证。
|
||||
* 采用可插拔的加密机制,对于业务完整生命周期所涉及的数据、通信传输、物理连接等方面都进行了不同策略的加密,通过多级加密保证平台数据的安全,而且完全支持国密算法。
|
||||
|
||||
第三层是跨链相关的服务层,包括应用链管理模块、执行模块、事务管理模块、验证引擎模块和隐私保护模块,各模块互相协作完成中继跨链流程。
|
||||
|
||||
* 链管理模块主要负责应用链注册、审核和冻结等操作;
|
||||
* 执行模块负责跨链交易的检查、处理和验证工作;
|
||||
* 事务管理模块负责跨链交易在整个系统处理的一致性;
|
||||
* 验证引擎模块在Webassembly虚拟机之上实现了跨链交易存在性和有效性的验证逻辑;
|
||||
* 隐私保护模块提供对于跨链数据本身的隐私保护功能。
|
||||
|
||||
第四层是接口层,中继链对外提供gRPC和Restful两种接口服务,支持不同场景下用户的使用。同时,为了能够支持异构区块链之间的跨链交易路由和可信验证,BitXHub设计了通用的跨链传输协议IBTP(InterBlockchain
|
||||
Transfer Protocol),允许异构资产、数据及服务进行跨链调用。
|
|
@ -0,0 +1,25 @@
|
|||
# 基本概念
|
||||
|
||||
## 中继链
|
||||
|
||||
中继链是具有验证跨链消息和转发跨链消息的能力的去中心化可信中介。
|
||||
|
||||
## 跨链网关
|
||||
|
||||
在同构或异构区块链间进行交易收集、转换、传输的服务程序。
|
||||
|
||||
## 应用链
|
||||
|
||||
负责承载不同应用场景下的具体应用的业务合约逻辑。
|
||||
|
||||
## 跨链传输协议
|
||||
|
||||
通用的跨链传输协议IBTP(InterBlockchain Transfer Protocol),允许异构资产、数据及服务进行跨链调用
|
||||
|
||||
## 验证引擎
|
||||
|
||||
对于不同的跨链交易所采用不同的验证规则策略,验证引擎会根据规则地址来判断采用不同的验证器进行验证
|
||||
|
||||
## 哈希时间锁定
|
||||
|
||||
一种基于时间差和隐藏哈希值完成跨链资产原子性交换的技术。
|
|
@ -0,0 +1,21 @@
|
|||
# 应用场景
|
||||
|
||||
在区块链实际应用的过程中,BitXHub支持以下场景的跨链应用。
|
||||
|
||||
## 1 资产互换
|
||||
|
||||
目前由于区块链一定程度的隔离性,链上的数字资产难以进行等价交换或转移。相比中心化的交换方式,BitXHub支持区块链账户资产的可信互换,能够制定安全透明的兑换规则,同时保证资产转移的原子性和一致性。
|
||||
|
||||
如将银行积分转换为航空公司里程,某银行打造了基于区块链的会员积分系统,会员可通过积分兑换多项非金融增值服务,如航空里程等。而接洽的航空公司已有正在运行的基于区块链的里程兑换系统,由于底层区块链技术的不同,此时就需要通过跨链技术对两条链上不同价值的资产进行转移。
|
||||
|
||||
## 2 数据互通
|
||||
|
||||
数据互通即多条独立的链之间进行数据更新和同步,这为跨行业监管提供了技术支撑。传统的监管手段无法保障上报数据的真实性,且系统间的对接成本高、可扩展性差,通过BitXHub打破异构区块链间的信息壁垒,有效地进行链上数据的安全共享。
|
||||
|
||||
如某疫苗云平台需要对各省份的区块链进行统一监管,获取各地疫苗接种情况的关键信息。由于各省使用的底层区块链技术不同,因此需要从底层打通各地数据中心,方便监管机构同步参与方间交易、达成共识的全过程。
|
||||
|
||||
## 3 业务互补
|
||||
|
||||
随着区块链应用的加速落地,业务联盟间常常具有互不相同的流程众多、业务复杂的区块链服务,为了不推倒已有的区块链基础设施,需要采用跨链技术实现这些异构区块链间的横向打通,扩大业务规模,实现互利共赢。
|
||||
|
||||
业务互补由于涉及链与链之间相应的合约跨链调用,实现更为复杂。比如在跨国贸易中,涉及的快递物流、企业资金流、海关信息流等均有很强的互补性,为了降低投入通过跨链手段从底层横向打通,融合贸易相关的业务,实现更大规模的业务协作。
|
Loading…
Reference in New Issue