区块链-侧链

什么是侧链? 侧链,简单的说,就是一种使货币在两条区块链间移动的机制
应用场景

  • 用户Alice, 在xxx链上有一个币,可以兑换到yyy链上总价值等量的三个币
  • Aliceyyy链上的三个币,又可以兑换回xxx链上的一个币。
实现 双向挂钩
侧链协议的设计难点在于如何让资产在主链和侧链之间安全流转。简而言之,接受资产的链必须确保发送资产的链上的币被可靠锁定。
区块链-侧链
文章图片
sidechain_spv.png 具体,协议采用双向挂钩机制实现比特币向侧链转移和返回。主链和侧链需要对对方的特定交易做 SPV验证。完整过程如下:
  • 当用户要向侧链转移比特币时,首先在主链创建交易,待转移的比特币被发往一个特殊的输出。这些比特币在主链上被锁定。
  • 等待一段确认期,使得上述交易获得足够的工作量确认。
  • 用户在侧链创建交易提取比特币,需要在这笔交易的输入指明上述主链被锁定的输出,并提供足够的SPV证明。
  • 等待一段竞争期,防止双重花费攻击。
  • 比特币在侧链上自由流通。
  • 当用户想让比特币返回主链时,采取类似的反向操作。首先在侧链创建交易,待返回的比特币被发往一个特殊的输出。先等待一段确认期后,在主链用足够的对侧链输出的 SPV 证明来解锁最早被锁定的输出。竞争期过后,主链比特币恢复流通。
侧链典型案例
这里说一下两种比较有名的侧链架构
BTC Relay BTC Relay 本质上是在以太坊上用合约重写了比特币的spv验证规则。
BTC Relay其主要原理是把以太坊网络与比特币网络以一种安全去中心化的方式连接起来。BTC Relay通过使用以太坊的智能合约功能可以允许用户在以太坊区块链上验证比特币交易。侧链机制不仅允许用户将交易发送到其他的地址或账户,还可以发送到其他的区块链。BTC Relay使用区块头创建一种小型版本的比特币区块链,以太坊DApp开发者可以从智能合约向BTC Relay进行API调用来验证比特币网络活动。其使用场景如下图:
区块链-侧链
文章图片
sidechain_relay.png 应用场景
  • Alice和Bob同意使用BTCSwap合约来进行交易,Alice要买Bob的eth,Bob把他的 eth发送到BTCSwap合约
  • Alice向Bob发送bitcoin,她希望BTCSwap这个合约能知道这件事以便BTCSwap合约可以释放Bob之前的eth
  • Alice通过bitcoin的交易信息以及BTCSwap合约地址来调用btcrelay.relayTx(),btcrelay验证这笔交易通过后就触发BTCSwap合约里面的processTransaction方法
  • BTCSwap合约在被触发后确认这个btcrelay地址是一个合法地址,然后释放之前Bob的eth,交易完成。
Asch 一个DApp对应一个侧链
Asch(中文阿希)是一个区块链应用平台,它也是一个多链变形的体系,在这个生态体系里有一个主链和一系类的侧链。现在的阿希链就是这个平台的主链,而发布的CCTIME、时讯和孔明屋就是侧链。侧链和侧链之间是无法互通的,他必须通过主链Asch来进行互通。互通的是资产的代币,比如说:阿希币、时讯币、孔明币。
Asch的主链与侧链之间是互惠互利的关系,主链为侧链提供基础设施,比如数据库写入的api,网络通讯api,加密api等等,侧链则可以为主链补充更多的节点,以壮大整个系统。 侧链的开发者不需要提供所有的机器,可以利用已经存在主链节点,只需要节点主人安装该应用即可。 另外,主链的代币可以转入侧链中,由于代币可以在交易所交易,就相当于为侧链的资产提供了一种价值的媒介。 开发者在侧链发行一种资产后,可以直接与代币兑换,不需要考虑交易平台的问题。如图:
区块链-侧链
文章图片
sidechain_asch.png Asch 系统提供了一个命令行工具,可以用来轻松创建一个基础的侧链系统,侧链的开发者也可以深度定制自己的侧链,侧链拥有自己的数据库、共识机制、交易类型以及账户体系。侧链可以托管在独立的委托人节点集群中,这就自然形成了一种分片的机制,延缓了主区块链的膨胀。
【区块链-侧链】参考链接:侧链为王 、侧链的价值

    推荐阅读