mt logoMyToken
总市值:
0%
恐慌指数:
0%
币种:--
交易所 --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

区块链3.0时代,你连“跨链技术”都不知道吗?

收藏
分享

在过去的2018年,大家曾对EOS、Cardano等公链寄予厚望, 但这些所谓的“区块链3.0”项目的现状或是进展缓慢,或是主网上线后效果没有达到此前预期,距离大家期待中的场景尚有不少差距。


之后,大家对区块链的应用期待又集中在能够出现一个杀手级的DApp。


同时,在部分业内人士眼中,区块链跨链技术也可能成为“区块链3.0”的一种可能性。


而跨链技术到底是什么?呆呆带你们一探究竟~


如果说共识机制是区块链的灵魂核心,那么对于区块链特别是联盟链及私链来看,跨链技术就是实现价值网络的关键,它是把联盟链从分散单独的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁。


跨链的目标


简单列举几个要点如下:

  1. 资产的相互转换

  2. 原子交换:中间不能中断,同时发生,或者同时中断

  3. Oracle问题:链内部的信息是互通的,链看外面世界就很困难。以太坊可以知道自己的以太坊地址上的余额,事件,但外部世界很难知晓。

    需要一种机制:让链知道外面的世界。跨链Oracle: 身份证公有链。去读取某个人的身份,就需要跨链Oracle。链与链协同,互相读取信息。

  4. 资产质押:两个链之间协同,一条房地产链,一条数字货币链;在房地产链上抵押房产,在数字货币链上得到贷款。这就是跨链的资产质押。链的事件之间的依赖。

  5. 智能合约涉及到多个链的信息,跨链读取。它链信息或事件的读取和验证。

其中第一条,是最先出现的跨链需求。


这个需求,可以通过场外通过担保交易实现,也可以通过中心化的交易所来进行。这是表面上的跨链,满足了不同数字货币资产的兑换。


其次,纯技术角度实现,就要满足一个条件,交易事务的原子性,这个理解起来也相对直观:交易事务的中间不出现中断,要么全部执行完毕,要么同时中断,不会出现哪一方的损失。


而关于Oracle问题,我们可以从链的角度来思考。比如比特币和以太坊,互相之间是不知道对方的存在的,是两个自治的系统,并没有互通的机制。


所以发生在比特币上的交易事务和状态的改变,以太坊是无法知道的。这并不是一个理想状态,理想状态应当是链与链可以互相感知,这便是Oracle问题。由此提出的跨链Oracle,就是赋予链这样的互相感知的能力。


使用跨链技术可以达到的另一个目标是资产抵押。这个可以类比现实生活中的资产抵押。


在链上的实现方式就是,假定有两个链,一个房地产链,一个数字货币链。


在房地产链上,可以将房产的所有权抵押到链上的智能合约,这个事件触发到数字货币链上的智能合约,把数字货币发送到你的账户,从而完成链与链的事件的传递,完成资产抵押。


最后,从更加宏观的角度来思考,可以归结为智能合约的跨链信息读取。


一般来说,智能合约会运行在某个主链上,对于这个主链上的信息读取并没有任何问题,而对于它链的信息读取,必须借助于跨链来实现。


公证技术

这是用在在绝大多数跨链项目上的最简单的方式。在公证人机制里,会存在一个或多个受信的实体,这些实体会向A链声明某个事件确实在B链上发生了,或者某个特定的关于B链的声明是真的。


优点是简单易实现,而缺点也同样明显,我们需要信任1个或多个实体。


侧链你真的理解了吗?


关于侧链,首先需要明白一个要点就是:主链并不知道侧链的存在,侧链知道主链的存在。


举一个场景,比特币是不可能成为任何公链的侧链的,至少当前的比特币架构是无法做到的。我们用比特币和以太坊为例,以太坊可以成为比特币的侧链,比特币作为以太坊的主链。


以太坊能够知道通过智能合约以及SPV技术知晓比特币的状态,但是比特币做不到去知晓以太坊平台上的状态。


如果给一个判定方法,谁是主链,谁是公链,标准是异常简单的:


Chain A能读懂Chain B,则表示A是B的侧链。


上面这些基本道出了侧链的能够实现的效果。而具体到一些技术要点,可以归纳出如下两个点。


侧链技术要点:


  • 主链支持简单支付验证SPV( Simple Payment Verification)

  • 主链向侧链提供SPV proof来验证主链中发生的事件


SPV技术简单说来就是轻节点钱包用到的技术。


我们知道单纯比特币从创世区块到现在,所有的区块大小由170G左右,对于挖矿节点而言,可能会去安装全节点钱包,也就是要有170G+的硬盘空间。


而我们大多数应用场景下,不用真的去存储区块的数据,只是想做验证。而哈希函数能够做到很好的压缩数据大小:将任意大小数据压缩到固定大小。


SPV就是这样一种方法,不存储区块数据,而选择存储占用空间比较小的Header数据。但是通过这些数据可以去知晓区块链的状态,去做验证。


围绕着比特币,产生了很多侧链项目,比如RootStock,简称RSK。


RSK


首先RootStock能读懂比特币,那么RootStock是比特币的侧链。


SPV: 轻节点


RTC代币,和BTC进行兑换。


其中用到的侧链技术名称是:Semi-Trust-Free侧链技术,这里不做具体展开。


如果想使用RTC,就需要往RSK中的多重签名的地址发送比特币(公证人机制)。


RTC发送给别人后,别人可以把RTC发送到指定地址,从而换得比特币。


总结来说就是:双向锚定,加上公证人机制。


关于RSK项目,会在后面进一步分析白皮书内容,这里只做简单介绍。


侧链和中继很多时候是归于一类的,但是会有些微的差别,下面我们讲一个中继(Relay)技术的项目。


BTCRelay是啥呢?


比特币目前不是任何链的侧链。一直是作为主链的存在。


BTCRelay是让以太坊成为BTC的侧链。btcrelay.org


这让以太坊能够读懂比特币。所以以太坊是侧链。

BTCRelay是试图构造这样一个块:允许以太坊的智能合约安全地验证比特币的交易,而不需要任何中间机构。简单说就是用户能够用比特币做支付,但是用以太坊的DApps。

这种跨链是如何成为可能的?

设想: 智能合约,A在以太坊里给B的比特币地址发送1个比特币,B能收到并发送50个ETH回来给A。如何通过Relay实现?

BTCRelay是以太坊上的智能合约。

验证的方式:在以太坊的智能合约里,会先把BTC的headers全部存下来。通过blockHash找到那个交易。

即:SPV验证模式。

但是BTC对以太坊一概不知。

Relay: 中继

关于中继技术,是这样的一种解决方案: 在链A和链B之间存在第三方数据结构C,C是A和B的中继。

如果C本身也是区块链结构,通常称为relay-chain。V神并没有严格区分Relay和侧链。

Relay是一种方式,侧链是一种结果。

中继:比特币的头部信息是存在比特币网络上的,现在需要去读取这些信息存在中间部件,即所谓的中继。

应用举例

  • BTCRelay

  • Polkadot中的relay-chain

哈希锁定

一个比较聪明的设计。参考闪电网络。

  • 产生随机数

  • 猜随机数

通过锁定一段时间猜哈希原值来兑现支付的一种机制。

V神的跨链哈希锁定技术,场景:A向B发送一个BTC,B向AA

  1. A产生一个随机密码值s,并计算s的哈希值h,把h发送给B

  2. A和B都将他们的资产锁定到智能合约里,但A先B后,且B要看到A确实把资产锁定成功才去锁定。在A这边,设定2X时间,如果B能提供s,则可以拿走A锁定的比特币,否则A锁定的比特币就退回自己账户;在B这边,在X时间内,A能向他提供s就可以拿走B锁定的ETH。

  3. A在X时间内向B发送s从而拿到B锁定的ETH,这样的话,B知道s后,还会有时间去拿A锁定的BTC。



免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。