一、X链 Cannal起源

开源生态模式、去中心化的服务、以及各种加密货币,这一系列技术的出现,使人们得到启发和思考,去中心的的区块链是网络是能变我们生活的很多方面。比如比特币、以太坊、Zcash、超级账本等技术。然而,迄今为止,这些区块链也有各种的不同的缺陷,性能地下或受到不同的限制和缺乏成熟的治理机制。为了解决比特币交易吞吐量,通过隔离见证这种方式 ,但是这种实现还是受到了物理机本身性能的局限。像闪电网络和雷电网络将部分交易记录在比特币和以太坊的主链上,大部分交易放在链下处理,这种方式适当提高了交易的处理,但是这种方式只能适用于微支付和隐私保护支付通道,无法用到更通用的场景。是否有一种全新的机制能够提升区块链性能和链能够相互操作同时还保持安全性。

X链提出了Orbits多链技术[A1] 和跨链技术Cannal,Orbit是一种多链并行技术、Cannal技术是跨链技术总工分为同构跨链和异构跨链模式,在这篇文章主要对Cannal技术做阐述,X链跨链技术Cannal对于链的适配模式采用了中继链模式,利用 X链Cannal技术可以实现链与链之间的互操作。X链是一个非常具有潜力的价值互联网络,资产由不同的验证人发布和控制,并且不需要信任的第三方的情况下实现跨链资产无缝转移和交易,从而达到资产自由流通的目的。

二、X链Cannal概述

X链是一个独立的区块链网络,其中每条链都是通过 X Firework共识运行的区块链网络。X链的主链Main Chain将会是整个网络的枢纽,X链枢纽通过全新的区块链间通信协议(ICP)来连接其他链。X链枢纽主链可以校验和追踪其它链的资产信息,并且其它平行链记录资产的变化。资产可以非常安全的从一条链转移到另外的链,两条链之间并不需要相互连接,只需要发送给主链枢纽,主链并校验资产的有效性,并将跨链资产路由给目的链。

X链Cannal解决了当今区块链领域面临的许多问题,包括应用程序互操作性、可扩展性、以及可无缝升级的能力。比如,从比特币、以太坊、Fabric或其他区块链系统衍生出来的平行链,都能接入 X链主链。这些平行链允许X链无限扩展,从而满足不同场景化的需求。

三、X链Cannal设计原理和架构

X链Cannal采用的是多层架构模式:第一层是Relay Chain(中继链),仅存在一条中继链,中继链内部共识,由不同链的验证节点自由注册组成,共同组建Relay Chain,用于维持整个生态的安全稳定运行;第二层是Parallel Chain(平行链),存在多条平行链,每条平行链即为不同的业务链(可以是BTC、以太坊、EOS、Fabric、X同构链等),X链Cananl技术可以将不同生态圈构建一种连接关系,让不同的生态圈之间能够自由的互联和互通。

X链Cannal中继链和平行链体系中采用了安全的Firework共识算法,想要成为整个网络通过平行链和中继链记账节点,需要在中继链缴纳一定押金,X链采用随机混洗算法,验证节点并不知道参与那轮那条链的共识,从概率上提高了验证节点作恶的难度,从而保证所有链的数据安全性。

X链Cannal采用了完备的注册和审计机制,保证中继链和平行链之间相互信任。首先是平行链与中继链的有效关联机制,平行链必须先在中继链发起注册提案,在中继链的委员会授权批准后,平行链将自己的区块头信息提交到中继链。其次是安全的审计机制,平行链指定审计者参与该平行链的区块数据演算,同时审计者有权向中继链提交SPV证明和废除提案,从而保证整个中继链的安全性和有效性。

X链Cannal采用零知识证明的跨链资产转移(Cross ZKA Transfer)方案和ICP协议(InterChain Communication Protocol)在保证不透漏平行链任何信息的前提下,让平行链的资产可在任意链内转移和流通。

四、基于隐私保护的跨链通信ICP

从比特币、以太坊、Fabric各个链之间是信息和价值无法共享,彼此是一种独立存在,他们的价值只能在内部流通,而无法自由的流通到其他链。针对这种情况,X链Cannal设计了跨链资产转移协议ICP(InterChain  Communication Protocol),把各个链之间的资产打通,让资产跨链传递,同时引用零知识证明技术来保证链数据的隐私性。

跨链资产转移不仅要体现交易的原子性还需要保证交易过程数据的隐私,所以整个交易的过程都不是用明文传输和验证,为了保护交易的原子性我们引入了HTLC哈希时间锁定机制,为了保护数据隐私引入了零知识证明。

上图中以Alice给Bob转移资产作为讲解跨链转移零知识资产整个流程,具体的过程如下:

  1. Alice与Bob要进行交易,需要他们双方在线下做一些约定,Bob根据零知识证明原理将给定随机抽样点加密传输发送给Alice。
  2. Alice根据Bob发送的随机抽样点以及转账交易内容通过零知识证明多项式生成零知识证明。
  3. 锁定Alice的资产在Chain A
  4. 将ZKAT-Proof发送给Bob
  5. 将ZKAT-Proof-Spv发送给中间人
  6. 中间人路由ZKAT-Proof-Spv并发送给Chain B
  7. Chain B 验证ZKAT-Proof-Spv的有效性,在B链铸造一个对应的资产
  8. 将Chain B铸造的资产转移给Bob
  9. 中间人不断check Chain B的状态
  10. 正常状态处理,将Chain B处理的状态ZKAM-Proof-Spv发送给中间人
  11. 中间人将ZKAM-Proof-Spv 路由并发送给Chain A
  12. Chain A 验证ZKAM-Proof-Spv有效性,并燃烧锁定的资产
  13. 异常处理,中间人检查到Chain B超时或处理出错等状态
  14. 中间人通知Chain A
  15. Chain A解锁资产并将资产返回给Alice

[A1]不用提

一种基于中继模式的跨链通信方案相关推荐

  1. 独家 | 跨链通信:区块链技术发展的新趋势

    雷锋网按:本文作者是众安科技安链云团队,雷锋网(公众号:雷锋网)独家约稿. 区块链技术是一种分布式账本技术,可以被应用在金融.健康医疗.供应链.资产管理等诸多领域,但是受吞吐量.网络孤立性.监管.伸缩 ...

  2. EOS系列 - EOSIO 跨链通信

    跨链通信使一个区块链能够以可证实的安全方式验证另一个区块链上事件的真实性,目标是让区块链之间的通信像智能合约之间的内部链式沟通一样安全. 轻量级的默克尔树证明 比特币的SPV(简单支验证) EOS引入 ...

  3. 反射内存 延时_一种基于反射内存卡的OpenDDS分布式通信方法与流程

    本发明属于分布式通信技术领域,尤其涉及一种基于反射内存卡的OpenDDS分布式通信方法. 背景技术: 随着分布式系统复杂程度的不断增加和研发规模的迅速扩大,系统集成的难度和风险都在大幅提高.提供实时系 ...

  4. LikeLib跨链技术方案之哈希锁定

    跨链技术的实现模式之一就是哈希锁定,今天大白就给大家详细讲解一下什么是哈希锁定. 01 .哈希锁定和闪电网络 哈希锁定,全称哈希时间锁定合约(Hash TimeLock Contract),是闪电网络 ...

  5. Docker的网络模式和跨主机通信

    文章转载自:http://www.a-site.cn/article/169899.html Docker的四种网络模式Bridge模式 当Docker进程启动时,会在主机上创建一个名为docker0 ...

  6. arm板telnetd为什么运行不了_一种基于ARM的嵌入式系统开发的方案详细讲解

    背景介绍 在日益信息化的社会中,各种各样的嵌入式系统已经全面渗透到日常生活的每一个角落.嵌入式系统的功能越来越复杂,这就使得一个嵌入式系统产品从市场需求立项到方案选择.样机研制.定型量产所需要的开发费 ...

  7. 轨迹系列1——一种基于路网图层的GPS轨迹优化方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 GPS数据正常情况下有20M左右的偏移,在遇到高楼和桥梁等情况 ...

  8. 一种基于视频帧差异视频卡顿检测方案

    奇技 · 指南 在视频质量检测中,检测视频是否卡顿也属于视频质量检测的标准之一,在构建视频检测平台中,这一步至关重要. 本文要说明的是把视频转换为帧序列,根据计算帧之间的差值,寻找帧序列中是否有断层, ...

  9. 软件测试 | 测试开发 | 一种基于视频帧差异视频卡顿检测方案

    背景 在视频质量检测中,检测视频是否卡顿也属于视频质量检测的标准之一,在构建视频检测平台中,这一步至关重要. 本文要说明的是把视频转换为帧序列,根据计算帧之间的差值,寻找帧序列中是否有断层,来判断当前 ...

最新文章

  1. labview叠加白噪声_强化学习中Ornstein-Uhlenbeck噪声是鸡肋吗?
  2. 淘宝文件系统文件映射原理及实现
  3. C# 获取utc时间,以及utc datetime 互相转化
  4. 【深度学习】9 大主题卷积神经网络(CNN)的 PyTorch 实现
  5. 机器学习实战-KNN算法-20
  6. JaveWeb中实现分页的总结
  7. uva 10759 Dice Throwing
  8. 广告深度学习计算:异构硬件加速实践
  9. matlab armax 无法识别,求教:Java调用系统辨识工具箱内的armax函数出错
  10. 你搞清楚「NULL」、「0」、「'0'」、「0」「\0」了吗?
  11. 1_初识less引用变量作用域变量差值
  12. 查看被docker-proxy占用的端口
  13. php网站模板怎么修改,自己做网站如何用好并自主修改网上的免费模板
  14. SQL server 2005 数据库只能用计算机名连接不能用IP地址
  15. linux重启网络服务后什么端口都不通,linux的端口不通怎么解决
  16. Java集合继承关系图
  17. 第五届全国大学生GIS应用技能大赛开发题答案(非官方)
  18. HTML在线播放音乐实例,一步一步实战HTML音乐播放器(示例代码)
  19. JavaScript 入门(一)
  20. python和java哪个好薪资高-Java和Python哪个薪资更高?

热门文章

  1. ASM、Javassist、JDK、CGLIB
  2. python2读取excel中文处理_用python + openpyxl处理excel(07+)文档 + 一些中文处理的技巧...
  3. 快速傅立叶变换(FFT)
  4. SQL实现占比、同比、环比指标分析
  5. 基于java的springboot球馆运动场地预约系统毕业设计springboot开题报告
  6. Methods annotated with '@' must be overridable
  7. 年薪80万+年终奖汽车|显扬科技招聘三维机器视觉研发总监、高级三维算法工程师...
  8. 以太坊的交易树和收据树
  9. arduino灯光装置_创客实战 | 用Arduino制作一款奇幻的“灯光隧道”
  10. 开发im即时通讯如何用Netty实现心跳机制、断线重连机制