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公 ...
随机推荐
- Ubuntu下搭建spark2.4环境(单机版)
说明:单机版的Spark的机器上只需要安装JDK即可,其他诸如Hadoop.Zookeeper(甚至是scala)之类的东西可以一概不安装.集群版搭建:Spark2.2集群部署和配置 一.安装JDK1 ...
- JDK8中HashMap
引用别人的一句话: JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里.但是当位于一个桶中的元素较多,即hash值相等的元素较多 ...
- JS 设计模式八 -- 发布订阅者模式
概念 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多(一个发布,多个观察)的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时,所有依赖于它的对象都将得到通知. 优点 1 ...
- TIA Portal V13 WinCC中创建多语言项目
1. 在项目树下选择“语言和资源”,双击打开“项目语言”,设置编辑语言和参考语言. 2. 在项目语言栏中勾选项目所需要的多种语言,我们以选择德语.英语和中文为例 3. 点击“参考语言”,切换语言为英语 ...
- vue省市区三级联动
仿照小米之家做的一个省市区三级联动,先上代码: HTML: <template> <section class="myAddress"> <secti ...
- C# NetStream
标题:NetStream 关注点:Read.Write 正文: int size = Read(buf, 0, buf.length); 这里一次会读入length个字节,如果小于这个数量,后面的就是 ...
- 手指向上滑动跳转页面的JQ方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- ajax存在跨域问题,为什么浏览器不允许js跨域请求?
举个例子,马蓉平时去某个酒店开房,酒店有在线的管理系统,该管理系统地址叫 xxoo.hotels.com 然后她正常登录该酒店管理系统欣赏着自己跟宋喆开房的记录,这一切都很正常,然后xxoo.hote ...
- [2019.03.22] Linux 学习心得(1)
本文关键词:shell 判断.grep正则表达式使用和贪婪匹配理解 1. if [ $a -le $b ], 一开始自学的时候我以为 [ ... ] 就是普通的,语法规定的结构,结果其实人家是&quo ...
- NOIP算法小结(转载)
(一)数论 1.最大公约数,最小公倍数 2.筛法求素数 3.mod规律公式 4.排列组合数,错排 5.Catalan数 6.康托展开 7.负进制 8.中位数的应用 9.位运算 (二)高精度算法 1.朴 ...