EOCS跨链技术的核心就是ICP模块,ICP即Inter Chain Protocol(跨链交互协议),下面着重介绍ICP工作原理和实现细节。

Inter Chain Protocol(ICP)

ICP Overview

建立于EOSIO软件堆栈之上的ICP跨链基础设施,可应用于EOSIO兼容的同构区块链的跨链通信。ICP设计之初,就考虑怎样以一种无侵入、可安全验证、去中心化的方式来实现EOS多链并行的同构跨链网络。经过对业界最前沿的跨链技术的研究(包括BTC Relay、Cosmos、Polkadot等),并结合对EOSIO软件实现细节的差异化剖析,ICP采取了比较现实的跨链方案:

实现类似于轻节点的跨链基础合约,对对端区块链进行区块头跟随和验证,使用Merkle树根和路径验证跨链交易的真实性,依赖全局一致的顺序来保证跨链交易同时遵循两条链的共识。

实现无需信任、去中心化的跨链中继,尽最大可能地向对端传递区块头和跨链交易,并对丢失、重复、超时、伪造的跨链消息进行合适的处理。

                                                       整体框架图

ICP Relay

ICP中继作为nodeos的插件,可随nodeos节点部署。部署模式上有几点需要说明:
不需要每个nodeos都开启ICP中继插件。
尽量多的nodeos开启ICP中继插件,将有助于保证跨链中继工作的不中断。
如果所有中继均瘫痪,将中断后续跨链交易进行,但不会影响已经发生的跨链交易;中继恢复后,将造成中断期某些跨链交易超时,但不会影响后续跨链交易的安全验证(这类似于所有nodeos节点瘫痪也会造成EOS区块链暂停)。
本端ICP中继可以连接对端多个ICP中继。
本端开启了ICP中继的nodeos之间可链内P2P互连(net_plugin/bnet_plugin),但不可ICP P2P互连(icp_relay_plugin)。
本端ICP中继插件负责向本端跨链合约查询或发送交易,但不能直接向对端跨链合约查询或发送交易,而只能借助于与对端ICP中继的P2P通信。

ICP 通信和工作流程

ICP Network

基于EOSIO的两条同构区块链,需对称部署一对跨链中继和跨链合约。那么要达成多条区块链之间的ICP跨链通信,可在每两条链之间都这样部署。其实,从ICP基础设施的角度来说,ICP只负责两条区块链之间的跨链通信。如果要建立无感知的平滑跨越数条区块链的跨链通信网络,可在ICP基础合约之上编写合约构建跨链网络协议(Inter Chain Network Protocol)。

                                             ICP 跨链网络通信原理

ICP 插件

在eos基础上新增了icp_plugin和eoc_plugin, 该功能为可扩充性增加,支持迭代更新,和eos核心功能零耦合。eos网络启动方式分为bnet_plugin和net_plugin模式,所以eocs实现了icp_plugin(对应icp_plugin模式)和eoc_plugin(对应net_plugin模式)
这两种插件之后会详细解析源码。

ICP 合约底层实现

ICP合约底层实现分为types,merkle,icp,fork四个模块,分别为数据消息类型管理,merkle控制类,icp核心关系,fork类。具体实现细节之后会详细讲解。

目前为止EOCS核心跨链内幕已经初步介绍完毕,源码解析和思想设计后续会不断更新。

EOCS跨链核心技术内幕的更多相关文章

  1. BlockChain 的跨链技术的重要性和必要性

    本期我们将从跨链技术的重要性和必要性.畅想区块链未来世界.什么是跨链.目前四种跨链技术的对比.构建EOS同构跨链体系群.EOCS跨链技术介绍.跨链通道.中继等几个层面带大家走进EOS跨链和EOCS的世 ...

  2. 基于SimpleChain Beta的跨链交互与持续稳态思考

    1. 区块链扩展性迷局 比特币作为第一个区块链应用与运行到目前为止最被信任的公链,其扩展性问题却持续被作为焦点贯穿着整个链的发展周期.事实上,在2009年1月4日比特币出现的那一天到2010年10月1 ...

  3. SmartRaiden 和 Lighting Network 进行去中心化跨链原子资产交换

    作者介绍 虫洞社区·签约作者 steven bai 前言 如果能够进行以太坊和比特币跨链原子资产交换,是不是一件很酷的事情? 目前链下的扩容方式有很多,最广为人知的就是比特币的闪电网络和以太坊的雷电网 ...

  4. PalletOne调色板跨链的BTC实现

    之前已经讲到了PalletOne调色板跨链以太坊ETH和ERC20的技术原理,接下来我们来讲解PalletOne跨链比特币BTC的技术原理. 一.BTC充币 假如用户A持有一定数量的比特币BTC,他希 ...

  5. PalletOne调色板跨链的ETH提币实现

    实现区块链的跨链,最主要的诉求就是Token的转移,而Token的跨链转移又分为充币和提币2种操作.以PalletOne调色板来说,如果要把ETH跨链到PalletOne上来流转,就是ETH的充币操作 ...

  6. PalletOne调色板Token PTN跨链转网的技术原理

    之前一直在忙于通用跨链公链PalletOne的研发,没有怎么做技术分享的博客,最近PalletOne主网上线也有几个月的时间了,即将进行PTN(PalletOne上面的主Token)从ERC20到主网 ...

  7. 【COSMOS】跨链协议IBC概述

    一.什么是IBC? IBC是链间通信协议的缩写(Inter-Blockchain Communication Protocol).通过数据包交换在多个不同的区块链网络之间转移数据和状态信息.最初的用途 ...

  8. web3.js支持SimpleChain跨链调用

    SimpleChain的跨链协议已经对外开放很久了,很多应用也已经慢慢支持Simplechain的跨链.最近社区开发者web3.js中集成了Simplechain的跨链接口,开发者只需用npm安装包文 ...

  9. Bystack跨链技术源码解读

    Bystack是由比原链团队提出的一主多侧链架构的BaaS平台.其将区块链应用分为三层架构:底层账本层,侧链扩展层,业务适配层.底层账本层为Layer1,即为目前比较成熟的采用POW共识的Bytom公 ...

随机推荐

  1. ztree 获取子节点所有父节点的name的拼接

    ztree 获取子节点所有父节点的name的拼接 //获取子节点,所有父节点的name的拼接字符串function getFilePath(treeObj){if(treeObj==null)retu ...

  2. PVLAN 简介

    PVLAN(Private VLAN),即私有 VLAN.采⽤两层 VLAN 隔离技术,上层VLAN 全局可见,下层VLAN 相互隔离.PVLAN 通常用于企业内部网,用来防止连接到某些接⼝或接口组的 ...

  3. boost学习目录

    Boost之数值转换lexical_cast https://www.cnblogs.com/TianFang/archive/2013/02/05/2892506.html Boost之字符串算法s ...

  4. Collections算法类

    Collections类定义了一系列用于操作集合的静态方法. 常用方法: 1.sort():排序(默认是升序排列,降序实现方法) 如果ArrayList的泛型指定为String int等类型,可以通过 ...

  5. Centos7安装配置Nginx

    Nginx 安装 系统平台:CentOS 7.4 64位. 一,安装编译工具及文件 yum -y install make zlib zlib-devel gcc-c++ libtool openss ...

  6. 菜鸟学IT之python网页爬取初体验

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2881 1. 简单说明爬虫原理 爬虫简单来说就是通过程序模拟浏览器放松请求站 ...

  7. 【算法】深度优先 马走日 Hamilton routes

    在n*m的棋盘中,马只能走“日” 字.马从位置(x,y)处出发,把棋盘的每一格都走一次,且只走一次.找出所有路径. ××××××××××××× 类似问题: 在半个中国象棋棋盘上,马在左下角(1,1)处 ...

  8. Apache No installed service named "Apache2.4"的解决办法

    windows安装Apache后,用cmd开启apache服务时,提示No installed service named "Apache2.4" 解决步骤: 1.cmd窗口,进入 ...

  9. MyBatis 3

    MyBatis 3 学习笔记 一.Mybatis 基础知识 1.MyBatis 3编写步骤: 根据mybatis-config.xml配置文件创建一个SqlSessionFactory对象. sql映 ...

  10. Salesforce Bulk API 基于.Net平台下的实施

    在最近的salesforce实施项目中应用到Bulk API来做数据接口.顺便把实际应用的例子写下来.希望对做salesforce接口的朋友有借鉴作用. 一 参考网络牛人写好的Demo. 下载地址:h ...