背景

为了实现已以太坊为资金链,另一个高TPS的链做应用链,之前已经计划做EOS2.0链的深度定制,以满足eth地址体系。由于为了尽快接入Eth生态,所以最近基于Eth做了共识方面定制,修改为DPOS共识。
目前一期先已以太坊侧链做应用链,后期根据生态需要,计划会继续之前的基于EOS做侧链,由于生态,账户体系,资源模型问题,暂时延后,后面考虑再做一层转换。
目前的侧链百花齐放,但侧链与以太坊之前的代币划转,都是通过中心化服务,保存eth公链与侧链两个锁定地址的私钥,然后进行双向转账的。这样由于私钥保存以及项目方等问题就影响了资金池的安全。

去中心化IBC方案

Eth公链到Eth侧链

Eth公链部署一个IBC合约A,此合约地址接收用户跨链转账。
此IBC合约中维护着当前Eth侧链的21个正在出块BP地址,如果Eth侧链BP地址有变更,及时会更新此合约。
Eth侧链也部署着另一个IBC合约B。
Eth侧链21个正在出块的BP节点监测Eth公链上此IBC合约A的转入交易,当交易不可逆时,提交此交易并投票到Eth侧链IBC合约B中,当此交易投票达到 2/3+1 时,此交易达到执行条件,会从当前侧链IBC合约地址B中转出相应的代币到Eth侧链用户同样的账户地址中。

Eth侧链到Eth公链

用户在Eth侧链中将对应的代币转到Eth侧链IBC合约B中,Eth侧链各BP节点监测此交易到达不可逆时,分别向Eth公链IBC合约A中发起转账请求,当达到2/3+1 时,此交易达到执行条件,会从当前Eth公链IBC合约A中转出相应的代币到Eth公链用户同样的账户地址中。

去中心化分析

对于eth公链和侧链的两个账户接收地址,都是需要侧链当前出块BP总数的2/3+1授权才能转移资金的,所以实现了去中心化,保证了资金池的安全