EOCS跨链核心技术内幕

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跨链核心技术内幕的更多相关文章
- BlockChain 的跨链技术的重要性和必要性
本期我们将从跨链技术的重要性和必要性.畅想区块链未来世界.什么是跨链.目前四种跨链技术的对比.构建EOS同构跨链体系群.EOCS跨链技术介绍.跨链通道.中继等几个层面带大家走进EOS跨链和EOCS的世 ...
- 基于SimpleChain Beta的跨链交互与持续稳态思考
1. 区块链扩展性迷局 比特币作为第一个区块链应用与运行到目前为止最被信任的公链,其扩展性问题却持续被作为焦点贯穿着整个链的发展周期.事实上,在2009年1月4日比特币出现的那一天到2010年10月1 ...
- SmartRaiden 和 Lighting Network 进行去中心化跨链原子资产交换
作者介绍 虫洞社区·签约作者 steven bai 前言 如果能够进行以太坊和比特币跨链原子资产交换,是不是一件很酷的事情? 目前链下的扩容方式有很多,最广为人知的就是比特币的闪电网络和以太坊的雷电网 ...
- PalletOne调色板跨链的BTC实现
之前已经讲到了PalletOne调色板跨链以太坊ETH和ERC20的技术原理,接下来我们来讲解PalletOne跨链比特币BTC的技术原理. 一.BTC充币 假如用户A持有一定数量的比特币BTC,他希 ...
- PalletOne调色板跨链的ETH提币实现
实现区块链的跨链,最主要的诉求就是Token的转移,而Token的跨链转移又分为充币和提币2种操作.以PalletOne调色板来说,如果要把ETH跨链到PalletOne上来流转,就是ETH的充币操作 ...
- PalletOne调色板Token PTN跨链转网的技术原理
之前一直在忙于通用跨链公链PalletOne的研发,没有怎么做技术分享的博客,最近PalletOne主网上线也有几个月的时间了,即将进行PTN(PalletOne上面的主Token)从ERC20到主网 ...
- 【COSMOS】跨链协议IBC概述
一.什么是IBC? IBC是链间通信协议的缩写(Inter-Blockchain Communication Protocol).通过数据包交换在多个不同的区块链网络之间转移数据和状态信息.最初的用途 ...
- web3.js支持SimpleChain跨链调用
SimpleChain的跨链协议已经对外开放很久了,很多应用也已经慢慢支持Simplechain的跨链.最近社区开发者web3.js中集成了Simplechain的跨链接口,开发者只需用npm安装包文 ...
- Bystack跨链技术源码解读
Bystack是由比原链团队提出的一主多侧链架构的BaaS平台.其将区块链应用分为三层架构:底层账本层,侧链扩展层,业务适配层.底层账本层为Layer1,即为目前比较成熟的采用POW共识的Bytom公 ...
随机推荐
- matlab转C语言
1.软件版本 matlab R2018a 2.步骤 (1).编写特定功能的matlab代码,以及其测试文件 (2).检查matlab代码的兼容性,确保matlab代码都能转换成C/C++代码(并不是 ...
- Vue.js 2.x笔记:状态管理Vuex(7)
1. Vuex简介与安装 1.1 Vuex简介 Vuex是为vue.js应用程序开发的状态管理模式,解决的问题: ◊ 组件之间的传参,多层嵌套组件之间的传参以及各组件之间耦合度过高问题 ◊ 不同状态中 ...
- 使用Crawler框架搭建自己的爬虫框架MyCrawler
自己写一个爬虫框架的目的: 完美架构 在实际的数据采集编码过程中,发现代码比较乱,抓取数据,存储数据的代码混杂在一起,为了构建比较完美的数据采集框架 敏捷开发 将数据采集进行标准流程化,每个标准流程都 ...
- Ubuntu命令整理
linux下find命令的使用和总结 - CS408 - 博客园 ubuntu 命令简写和全称 su:Swith user 切换用户,切换到root用户 cat: Concatenate 串联 u ...
- [洛谷P1006] 传纸条
双线程DP的常识:DP的阶段问题:多阶段决策问题 传送门:$>here<$ 题意 n*m的矩阵里,从左上角走到右下角(只能往右或往下),再从右下角走回左上角(只能往左或往上).其中不能重复 ...
- Miller_Rabbin&&Pollard_Rho 学习笔记
占坑,待填 I Intro 首先我们考虑这样一个问题 给定一个正整数\(p(p<=1e8)\),请判断它是不是质数 妈妈我会试除法! 于是,我们枚举$ \sqrt p$ 以内的所有数,就可以非常 ...
- CF487E Tourists--圆方树
既然有这条性质,这题就很简单了: \(可能在a->b的简单路径上的点集,就是圆方树上a->b路径上方点代表的点双的并集\) 对每一个方点维护一个\(multiset\),代表其在圆方树上子 ...
- js重点--this关键字
推荐博客:https://www.cnblogs.com/huaxili/p/5407559.html this是JavaScript的一个关键字,表示的不是对象本身,而是指被调用的上文. 主要用于以 ...
- redis connection refused: connect 启动失败
先到redis解压包下执行 ./redis-server redis.conf 再连接 redis-cli
- Apache Hadoop 2.9.2 完全分布式部署
Apache Hadoop 2.9.2 完全分布式部署(HDFS) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.环境准备 1>.操作平台 [root@node101.y ...