区块链3.0时代,你连“跨链技术”都不知道吗?
在过去的2018年,大家曾对EOS、Cardano等公链寄予厚望, 但这些所谓的“区块链3.0”项目的现状或是进展缓慢,或是主网上线后效果没有达到此前预期,距离大家期待中的场景尚有不少差距。
之后,大家对区块链的应用期待又集中在能够出现一个杀手级的DApp。
同时,在部分业内人士眼中,区块链跨链技术也可能成为“区块链3.0”的一种可能性。
而跨链技术到底是什么?呆呆带你们一探究竟~
如果说共识机制是区块链的灵魂核心,那么对于区块链特别是联盟链及私链来看,跨链技术就是实现价值网络的关键,它是把联盟链从分散单独的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁。
简单列举几个要点如下:
资产的相互转换
原子交换:中间不能中断,同时发生,或者同时中断
Oracle问题:链内部的信息是互通的,链看外面世界就很困难。以太坊可以知道自己的以太坊地址上的余额,事件,但外部世界很难知晓。
需要一种机制:让链知道外面的世界。跨链Oracle: 身份证公有链。去读取某个人的身份,就需要跨链Oracle。链与链协同,互相读取信息。
资产质押:两个链之间协同,一条房地产链,一条数字货币链;在房地产链上抵押房产,在数字货币链上得到贷款。这就是跨链的资产质押。链的事件之间的依赖。
智能合约涉及到多个链的信息,跨链读取。它链信息或事件的读取和验证。
其中第一条,是最先出现的跨链需求。
这个需求,可以通过场外通过担保交易实现,也可以通过中心化的交易所来进行。这是表面上的跨链,满足了不同数字货币资产的兑换。
其次,纯技术角度实现,就要满足一个条件,交易事务的原子性,这个理解起来也相对直观:交易事务的中间不出现中断,要么全部执行完毕,要么同时中断,不会出现哪一方的损失。
而关于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
A产生一个随机密码值
s
,并计算s
的哈希值h
,把h
发送给BA和B都将他们的资产锁定到智能合约里,但A先B后,且B要看到A确实把资产锁定成功才去锁定。在A这边,设定2X时间,如果B能提供
s
,则可以拿走A锁定的比特币,否则A锁定的比特币就退回自己账户;在B这边,在X时间内,A能向他提供s
就可以拿走B锁定的ETH。A在X时间内向B发送
s
从而拿到B锁定的ETH,这样的话,B知道s
后,还会有时间去拿A锁定的BTC。
不容错过的往期精彩
위믹스3.0 최초의 DAO ‘원더다오’, 노드 카운슬 파트너 합류
위믹스3.0 최초의 DAO ‘원더다오’, 노드 카운슬 파트너 합류 l 탈중앙화 자율조직 형태로 결성…구성원 모두가 위믹스3.0 운영에 참여 가능l 스마트 컨트랙트 기반 모듈화 ...
[주간톡톡] 양의 탈을 쓴 늑대는 양일까? 늑대일까?
주간톡톡은 한주간의 블록체인 소식을 재구성해 독자들과 재미있게 이야기해보는 코너입니다. 이번주는 페이스북의 스테이블 코인 프로젝트 '디엠(Diem)'에 대해 알아보겠습니다. 그럼 ...
IBM, 블록체인 와인 추적 서비스 '빈어슈어(Assure)' 공개
IBM이 재배지부터 매장까지 와인 공급망을 추적할 수 있는 블록체인 기반 플랫폼을 공개했다.10일(현지시간) 발표에 따르면 IBM은 와인 모니터링 업체 e프로브넌스(eProven...