解读白皮书系列之—— Elastos(亦来云侧链)

白皮书是区块链投资项目的必要知识,既是自己投资成功或者失败判断的依据,也是可以分享出来方便自己发现自己问题所在。而我的解读白皮书则是自己看白皮书过程中的一个思考、一个笔记、一个重点,甚至是我看的过程中的一个“闪念”,背后的逻辑、可行性不去做更多的判断。

而我自己选择项目解读的一个原则就是根据这个项目在当下的热度来看的“,一方面可以了解它之所以有热度的原因;另一方面也可以提高自己的判断力,同时我也自己开了一个微信公众号(丁昆朋YKPD),喜欢写作、英语、编程、区块链的朋友可以关注一下,共同成长。

点击https://www.elastos.org进入官网:

3969392-98d94093535646dc.png

概述

主链只担负 ELA的流通职责,DAPP运行在侧链上,通过亦來云的侧链转账机制完成价值在主链和侧链间的安全转移。

什么是“仲裁人”?

亦來云公链使用仲裁人联合签名以及 SPV(Simplified Payment Verification,简单交易验证)的机制来保障与侧链间的转账安全,主链的持币人共同选举出一定数量的“仲裁人”

仲裁人负责对侧链到主链的币交易进行签名,多数的仲裁人签名就可以解锁主链上从代表侧链的账户向普通账户转账的“提币交易”

主链到侧链充值操作的安全通过 SPV来保障,每个侧链节点都会同步主链的所有区块头,再加上 merkle证明路径以及交易信息,就可以从数据结构和算法的角度完成对转账交易的去中心化共识

亦來云通过跨链技术实现与自有 token的区块链系统的相互转账,这种与亦來云能够相互转账的区块链,我们称为“友链”

如何实现主链向侧链的转账呢?

Snip20180830_153.png

什么是“双向锚定”(Two-way peg)的技术?

基本的原理是基于 SPV来互相验证交易在另一条链上确实存在,但是这有一个前提,就是都要保存对方的所有区块头信息

亦來云主链和侧链是** 1对多的关系,使用对称的双向锚定,对于侧链只保存一份主链的全部区块头信息没有什么问题,如果主链需要保存所有侧链的区块头信息,是不可接受的,所以在亦來云的主侧链架构上不能够使用对称的基于 SPV**的双向锚定。

亦來云主链到侧链的转账过程如下:

  1. 用户通过钱包在主链从地址 U向主链上代表侧链的地址 S转账 n个 ELA,并在交易中附加上自己在侧链的地址 u,发送到主链上,这个交易标记为 tx1;
  1. 主链的矿工节点将 tx1打包并成功出块;
  1. 等待足够的确认后轮值的仲裁人节点 A的 SPV模块获得这个主链上的转账交易,从交易中获得转账地址 u,构造给 u发币的交易tx2,发币数量等同于 tx1中 U给 S的转账数量,tx2中同时携带 SPV证明路径和 tx1;
  1. 轮值的仲裁人节点 A将 tx2发送到侧链节点;
  1. 侧链将 tx2打包出块;
  1. 等待足够的确认后,用户在钱包上看到的自己的侧链地址 u入账了 n个 SToken.

侧链到主链转账是如何实现的?

Snip20180830_154.png

亦來云侧链到主链的转账过程:

1、用户通过钱包在侧链从地址 u发起提币交易,提取 m个 SToken,并在交易中附加上自己在主链的地址 U,发送到侧链,这个交易标记为 tx3;

  1. 侧链的矿工节点将包含 tx3的交易打包并成功出块;
  1. 轮值的仲裁人节点 A向自己运行的侧链节点获取 tx3;
  1. 轮值的仲裁人节点 A根据 tx3构造一个在主链上从 S转移 m个 ELA到 U的交易 tx4,将这个交易广播给所有的仲裁人节点签名;
  1. 轮值的仲裁人节点 A收到超过 2/3的仲裁人对 tx4的签名,就将携带这些签名的 tx4提交到主链;
  1. 矿工将包含 tx4的交易打包出块。
  1. 等待足够的确认后,用户在钱包上看到自己的主链地址 U入账了 m个 ELA。

仲裁人作用是什么?

仲裁人的作用是生成和转移交易到侧链,并不参与签名;

在侧链到主链的转账过程中,仲裁人的作用除了生成和转移交易,同时还要对交易签名,让主链上从代表侧链的账户向普通账户转账的“提币交易”能够被各个主链节点验证通过

仲裁人通过在主链上投票选举产生,并且定期轮换。每个仲裁人需要提供足够的计算和网络资源,以便能够至少运行一个主链节点和对应 N条侧链的 N个节点。仲裁人的收益来自于为侧链打包出块所获得的交易费

基于pow的侧链如何理解呢?

Snip20180830_155.png

这条基于 POW的侧链采用与亦來云主链联合挖矿的方式获得算力,主链的当前轮值仲裁人作为矿工将侧链的交易打包生成挖矿交易放在主链上。

主链再通过与比特币联合挖矿的方式出块,按照联合挖矿的原理,算力证明再传递到侧链,侧链的任意全节点可以依据这个算力证明来验证出块的有效性

主链在一个仲裁人选举周期内的所有仲裁人会按照顺序轮流作为“侧链出块轮值仲裁人”履行相应的职责,这里面就包括为侧链出块的职责。轮换动作通过侧链出块触发,每个仲裁人轮流对一个侧链出块,顺序通过上一轮的投票统计结果确定。

出块行为最终通过发布到主链上的挖矿交易体现,每个主链节点都会对这个挖矿交易是否合法进行共识,其中一个主要的验证就是看发布这个挖矿交易的签名人是否是当前有权对这个侧链出块的“侧链出块轮值仲裁人”

侧链的出块收益(只有交易费,没有创币)仍然是分配给矿工和基金会,这里的矿工就是当前在主链发起“挖矿交易”的仲裁人,当然这个挖矿交易放到主链上也是要付矿工费的,这个矿工费是付给真正付出算力的比特币矿工

“友链”如何理解呢?

侧链的概念来自于比特币,在这个场景下侧链没有自有的 token,自有 token的链有独立的经济体系,亦來云与这种自有 token链之间的转账需要基于当前两种 token的市场兑换汇率来进行,这个自有 token的链我们称为“友链”

亦來云对友链的支持分为两个阶段:

第一个阶段支持友链和亦來云主链跨链的原子交易,这种交易是点对点的,需要交易双方自己约定兑换汇率,创建互相制约的原子兑换交易

第二个阶段会基于去中心的交易所,完成主链和友链 token的自由兑换,不需要用户间再点对点的创建兑换交易。

Snip20180830_156.png

假设有一条友链 F,自有 token FToken,Alice和 Bob需要在亦來云公链(这里用 E来代表)和链 F之间完成 ELA和 FToken的兑换。

Alice在链 E和链 F上分别有地址 EA和 FA,Bob在链 E和链 F上分别有地址 EB和 FB。

假设此时的市场兑换汇率为 1:10(一个 ELA兑换 10个 FToken),Alice希望用 10个
ELA和 Bob兑换 100个 FToken。

  1. Alice在链 E上发起一笔从 EA向 EB的特殊转账交易 tx1,转账金额为 10个 ELA,这个交易的解锁条件除了 EB对应私钥的签名,还增加了一个哈希锁,Alice先生成一个随机数 x,对 x取哈希 hash(x),放到这笔交易中,Bob需要ᨀ交 x才能够解锁这个哈希锁;
  1. Bob看到了链 E上的 tx1,就在链 F上构造另外一笔特殊的交易 tx2,从 FB向 FA转账 100个FToken,这个交易的解锁条件除了 FA对应私钥的签名,还增加了一个哈希锁,同样是hash(x),解锁条件同样是需要提供 x;
  1. Alice在链 F上ᨀ供对 tx2的签名以及 x来解锁 tx2,将 100个 FToken转账到自己在链 F上另外的地址;
  1. Bob看到 tx2被解锁,同时也就得到了 x,然后 Bob用 EB的私钥签名 tx1并ᨀ供 x,从而解锁tx1,将 10个 ELA转账到自己在链 E上另外的地址。

你可能感兴趣的:(解读白皮书系列之—— Elastos(亦来云侧链))