EOS 火热的 Bancor, 无影的 EOS 侧链

itleaks · 2018年09月21日 · 343 次阅读

AnyOs(anyos.io)从1,2个多月前开始构想,其中一个目标是构造EOS生态下的ETH侧链。前面一直在探索EOS生态,没有阐述相关的侧链技术,同时目前还没有EOS侧链的任何相关落地项目,今天开始我将分享几篇侧链技术的文章,欢迎感兴趣的朋友一起探索。

侧链属于区块链扩容技术的一种,区块链扩容分为三大类,具体架构如下:

  • Layer0

segwit隔离验证,组播锁定组,并行执行.

属于简单的优化改进提升性能

  • Layer1

分片,DAG技术

这类扩容技术是一种架构上的改变,比如DAG技术通过Dag账本允许同时出块,分片通过分组允许同时出块,所以核心是允许同时出多个区块,进而提升性能。

  • Layer2

Layer0和Layer1都是在保留原有链生态规则的情况下的一种性能扩容方案,而现实其实还有其它定制规则的需求,比如我希望在保留以太坊生态连接的同时还支持JavaScript虚拟机,DPOS共识协议,这就是Layer2做的。

我们以计算机扩容来简单类比,Layer0你可以看成是提升CPU主频,Cache容量来提升性能扩容。而Layer1可以类比为CPU从单核变为多核了,是同构的,每个CPU的架构,工作方式都是一样。而Layer2扩容你可以看成是异构计算机系统甚至集群,比如是CPU(重在交互)+DSP(数据处理)+TPU(AI处理),DSP和TPU就是Layer2的技术对CPU功能的增强,且专注特定领域。

Layer2层扩容技术

目前Layer2层扩容技术包括:侧链,子母链,跨链。所有的Layer2层技术都是针对新链来说的,且都需要存在主链的角色,脱离了主链的Layer2来扩谁的容呢?

1)主链和侧链是一个1:1的关系

主链设计时是看不到侧链的,也意识不到侧链的存在,而侧链需要熟知主链的架构,并在主链插入相关服务以建立和侧链的通信,这个服务通常通过智能合约实现。

2)子母链是1:N的关系:

子母链的主链在设计的时候就必须有子母链的设计框架,提供子母,子链和子链之间的通信架构。

3)跨链是N:0的关系(N>=2)

其中的0表示跨链本身可以不是一个链,仅是一个功能,实现两或者多个链的通信。目前侧链的探索比较多,也有一些demo的实现方案,本文就来熟悉熟悉下各种侧链实现技术方案。

侧链

侧链技术最初由比特币的核心开发者于2014年在论文sidechains.pdf里提出,论文出处

https://blockstream.com/sidechains.pdf

侧链的一个核心是实现双向锚定,让主链的某些货币(比如EOS)在主链和侧链之间去中心化的“转移”,剩下的就是侧链自身的生态了。脱离了“主链货币去中心化转移”,那这个链就是单独的公链而不能称之为传统意义上的侧链。

所以从这个角度来看,目前很多EOS的公链都不能称得上是”真正“侧链。比如EosForce,ENU,Fibos都没有实现EOS主链货币EOS到他们链的去中心化转移,而是通过中心化数据监控来实现兑换转移的,这种中心化转移和交易所兑换代币并没有根本性的改变。所以说,EosForce可以算是EOS 分叉链(继承了EOS的原始资金分配信息),ENU和Fibos都算是Eos源码分支链(同源链)。

好了,该说真正的侧链技术了。目前的侧链技术主要就是指主链货币在主链和侧链转移的技术,主要有3个:状态通道,plasma, Truebit。侧链技术都有一个核心点:侧链通过牺牲安全性来提升计算的能力,更强的安全交给主链。主链作为结算层,侧链作为计算层。主链只保存侧链少数数据,但可以验证侧链所有数据的正确性。

状态通道

状态通道是通过类似多重签名的机制来实现的。

侧链通过主链将主链货币锁定后,即可生成侧链对应的货币,比如A通过锁定操作将1 BTC生成1个SBTC。

这1个SBTC就可以在侧链自由流动了,比如A发1个SBTC给B,B然后又转给C,最后转到了F。这些中间过程都不需要上链,只有最后F将SBTC转换为BTC时才需要向主链请求。主链也只需验证TransactionF是否获得了A~F这些参与方的多签,如果合法则允许将1个BTC转给F。所以主链只需记录:A的BTC->SBTC, F的SBTC->BTC两次交易记录,大大减少了主链的操作处理频率及数据量。

该方案的缺点是通道的参与人数量有限且需确定(主链验证多签),不适合需要自带生态的侧链,只适合简单的小额转账需求。所以有些人并没有把状态通道划分到侧链,这也是合理的。

Plasma

刚刚上面提到的状态通道并不适合链,Plasma就是为这个而设计的。Plasma具备链的基本特性,有区块,交易等各种链元素。Plasma侧链下,主链只保存侧链区块中交易merkle树根hash, 具体交易数据保存在侧链。主链通过Merkle树验证机制检测侧链的交易数据的正确性,并避免用户的作恶行为,从而保障侧链的安全。侧链矿工(operator)负责推送区块root hash到主链,operator的作恶行为会通过用户的challage或退出机制惩罚,从而保障侧链的安全。Plasma的更详细原理我会在后续的文章里详细解读。merkle树的相关内容可以看我的这篇文章。

Truebit

Truebit是一种事后追责架构,就是主链无条件相信侧链的任何操作,侧链的相关交易可秒确认。作恶行为通过监管者实时监测数据发现并惩罚,监管者通过发现作恶数据及操作获得奖励。

侧链可以不需要任何矿工,人人都可以是矿工。每个人可以同时执行不同智能合约,监管者通过监听执行结果来消除作恶行为。Truebit的一个核心是解决监管者的激励问题。如果链上没有任何作恶行为,监管者就得不到任何奖励,监管者就会退出,进而让监管这一功能失效。因此Truebit提出系统随机主动生成一些作恶数据,这样监管者总能发现一些作恶行为并获得奖励,进而整个生态得以维系。具体更详细的分析我也会在单独的一篇文章解读。

原文链接:https://blog.csdn.net/ITleaks/article/details/82798494

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册