Hi Guest

More contents, please log on!

Bitmere.com 公链 Content

跨链到底在跨什么?

爰无悔2017
22 0 0
第0章 引言
跨链是今年区块链里最火爆的技术,主打跨链技术的项目多的很,超级明星cosmos和polkadot主战场都是跨链。
但跨链到底是什么意思啊?

第1章 资产跨链
跨链技术很早就出现了,在2013年就大量出技术在讨论比特币的跨链。主要有三大跨链技术,闪电网络、侧链和中继。
在以太坊出现之前,区块链很少谈及“合约”,当时只谈“币”,当时的跨链技术都是指的是“资产(币)的跨链”。资产跨链,或许应该称为币跨链。
资产跨链简单来说是两条链的币相互发给对方。但这怎么发?币的跨链技术有很多,有双向锚定(two-way-peg),哈希时间锁,原子交换,资产质押转移,网关,联邦签名等等。
双向锚定是比特币侧链技术中非常重要的概念,用来实现比特币主链币和侧链币之间的跨链。双向锚定能够让侧链“知道”主链上的特定币是否处于锁定状态,并且依此锁定状态来解锁或销毁对应数量的侧链币。这就好像BTC“跨”到了侧链,或者反过,侧链币“跨”回了主链。
比特股是一个去中心化的交易所,里面可以交易比特币,哎,这里面的比特币是怎么出现的呢?用的就是网关技术。原理很简单,就是用户将比特币发给一个叫“网关”的地方,然后“网关”会生成一个比特币稳定币在比特股流通。用户要提比特币时,就反过来,网关会销毁比特币稳定币,然后将相同数量的比特币发给用户。
币的跨链有一个非常重要的概念叫“原子交换”。所谓的原子交换是指:A链上的一笔交易,和B链上的一笔交易,要么同时成立,要么同时不成立。
比如BTC和LTC,两个人,张三愿意拿1BTC换李四的100LTC,为了防止毁约,双方使用原子交换技术来完成币的互换。

张三给李四一个LTC地址;李四给张三一个BTC地址。


张三使用原子交换协议构建了一笔BTC交易,将1BTC发到李四的BTC地址。这笔交易成立的条件是张三的LTC地址收到李四发来的100LTC。


李四使用原子交换协议构建了一笔LTC交易,将100LTC发到张三的LTC地址。这笔LTC交易成立的条件是李四的BTC地址收到了张三发来的1BTC。

上述两笔交易要么同时成立,要么同时不成立,没有任何一方可以做到在收到对方的币后,不给币就跑路。
这就是币的跨链。本质上币的跨链并没有真实的币从一条链跑到另外一条链,只是币在各自链上相互纠缠一样锁定和解锁的状态。
第2章 合约跨链
以太坊诞生后,区块链开始大量讨论智能合约。智能合约本质上就是代码,这些代码可以依据区块链上的特定数据来触发执行。
智能合约我们可以简化理解成为一个函数,输入特定的参数,代码就会自动触发执行,就能得出特定的结果,并且给出稳定的输出结果。

f(x)=y
f()就是合约代码
x就是激活的代码的条件
y就是合约执行结果。

不跨链的智能合约,f(),x,和y都是在一条链上,不会出现在多条链上。
举一个例子说明。

EOS的众筹就是一个智能合约,这个合约有一个合约地址。


用户可以将从自己控制私钥的以太坊地址将ETH转入这个合约地址。


EOS的众筹合约每隔23小时就会计算合约地址一共收到多少ETH,并且计算出每个用户的地址将获得多少EOS代币。


过了23小时后,用户就可以向这个合约地址发起一次调用函数,要求合约返回计算好的EOS代币。


这个EOS的众筹合约就会将相应的EOS代币发送到用户的以太坊地址。

但以太坊上的智能合约,代码是在以太坊区块链上,要激活合约也需要在以太坊区块链上发送特定的交易。
以太坊诞生后,整个区块链社区又搞出了非常非常多的链,很多都带有智能合约的功能。然后就有人提出来,我们能不能在一条链上发布一个智能合约,然后依据另外一条链的特定信息,来触发这个智能合约来执行特定的操作呢?
这就是合约(调用)跨链。

就比如,如果有人做发一个ICO,目标是众筹稳定币USDT(为了举例,我们只考虑这是Omni版本的USDT),稳定币可以规避波动性风险。项目方向外界公布收币的BTC地址。


又因为比特币上不方便构建代币。项目方就在以太坊构建ERC20代币。项目方通过构建一个支持跨链的智能合约来分发这些ERC20代币。


用户使用自己控制私钥的BTC地址将USDT转入项目方公布的BTC地址上。


智能合约可以读取项目方公布的BTC地址的收币状态,合约能够读取到用户的付款地址,并且计算相应的代币数量。


用户通过以太坊钱包,和自己的比特币地址特定签名向合约发起调用函数。


合约依据调用函数和计算结果,向用户支付ERC20代币。

你看,这种的合约就涉及到两条链,这就是合约跨链。一条链上的智能合约,能够读取另外一条链上的特定信息,来执行合约代码,并给出确定性的结果。
第3章 跨链的应用举例
跨链有什么用呢?
第一场景是做去中心化的交易所。依赖币可以跨链,支持用户挂单,通过跨链合约来提供撮合,撮合成交后使用币的跨链来完成币的转移。理论上是可以做到完成不依赖于特定的服务器的。
现在的去中心化交易所,以太坊和EOS上的交易所,并不是严格意义上的跨链去中心化交易所。都是ETH和ERC20之间的交易,和EOS和EOS上的代币的交易。比特股是一个去中心化的交易所,通过网关发行稳定币的方式来将BTC等迁移到BTS内网来交易。
第二个场景是资产抵押。某条链上的币是否解锁,取决于另一条链上的特定信息。
第三个场景是读取链外数据(预言机)的智能合约。比如赌球,有专门的链外数据,即预言机,提供球赛结果。然后用户在以太坊上通过合约来对赌,双方押币进合约,合约采集预言机的特定数据来判决赌资归谁。
第4章 实现跨链生态
跨链这个概念的提出,会出现两种情况。第一种情况是,在现有链之间相互跨。比如让以太坊和比特币相互跨。第二种情况是,我造一个标准,以后大家按这个标准来设计新的链,所有这些新链就可以非常方便相互跨。
在跨链概念的早期,大家都想着第一种情况。最著名的就是闪电网络,中继和侧链三大技术。这种在现有链相互跨的生态里,是不会发一个叫“跨链币”的币的。跨链技术本生是不会发币。比如闪电网络就不是一种币,只是一种技术。
但在现有的链之间相互跨,因为各自链设计之处就没有考虑过要你跨我我跨你的场景,所以跨链还是很难的。你看侧链,中继,闪电网络等发展了那么多年,你有实际做过跨链吗?没有。
因为早期的链,很多基本上就是复制比特币技术。比如LTC基本上就是复制了BTC。代码都是复制的嘛,所以相互跨就有了理论上的依据。
在第一种情况发展了那么多年后,大家发明,哎呀,这玩意也搞不成啊。然后说,算了算了,看来我们还得想办法搞点别的事。这就诞生了今年的跨链热门。
现在的跨链热门,其实都包含了造链技术。就是我自己设计一条区块链,如cosmos,polkadot,vsystem。这些区块链里都包含了一组造链协议,就是按照特定的标准来设计一条新的链。只要在这个标准下设计出来的链,那相互跨就非常容易了。这些标准协议就是跨链的基础设施。
当然,在第二种情况下,并不是只有新造出来的链能相互跨,他们也会想办法让现有的链也加入到跨链生态中。也就是说,在第二种情况下往往是包含了第一种情况的。其中cosmos和polkadot都是使用类似于中继的技术来实现和现有的链跨。
polkadot就将跨现有的链叫着中继链。原理就是将原有链上的资产通过多重签名来锁定,然后在中继链上发行对应的稳定币。
第5章 结束语
Codex将如何实现资产和合约的跨链呢?
BitMere.com is Information release platform,just provides information storage space services.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
You have to log in before you can reply Login | 立即注册

Points Rules

Write the first review

爰无悔2017 小学生
  • Follow

    0

  • Following

    0

  • Articles

    6

59600
Promoted