区块链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。
不容错过的往期精彩
加密隐私赛道迎利好?Tornado Cash 受制裁案被推翻,开发者仍面临刑事指控
即便法院裁定 OFAC 的行为越权,Tornado Cash 等隐私工具的使用和普及仍然面临着监管机构和市场的巨大阻力。
关于并行,你需要知道的一切
撰文:Tia,Techub News区块链因其去中心化的设计而牺牲了效率,因此提升执行速度一直是急需解决的问题之一。区块
星球日报 | 美股上市公司SOS董事会批准价值5000万美元的比特币购买计划;WalletConnect已上线空投查询页面,用户可申领并质押WCT(11月28日)
Pump Science:今年余下时间将专注于URO和RIF,审计完成后明年将推出新代币;Backpack中文X:即将和Solana一起“整事”。