Paka Labs万字报告(1/4)| 将孤岛连成大陆:跨链技术及应用形态全景图
本篇为全篇的第一部分,约14000字,建议阅读时间35分钟;全篇共四部分,将陆续发布。
1 前言
2 跨链究竟要跨什么?
2.1 通证交换
2.2 通证传递
2.3信息传递
源链锁仓通证,并将锁仓的消息及其证明,传递给目标链;
目标链接收到信息,验证其真实性之后铸造映射通证,并将回执发送回源链。
3.跨链技术概览
3.1 基于哈希时间锁的原子交换
用户A生成随机密码r , 并计算出 r 的哈希值 m=hash(r) ,将m值发给用户B;
与此同时,用户A发起一笔交易,向用户B转1 BTC,该交易的成功是有条件的,须用户B出示密码 r 才能成功,否则超过预设的时间,交易将自动失败;
用户B看到A发起的交易之后,也发起一笔交易,向用户A转移10个ETH,该交易的成功也是有条件的,需要用户A出示r才能成功,超过预设时间,交易也将自动失败。这里的关键是,用户B创建这样一个以出示 r 值 为成功条件的交易,并不需要拿到密码r的值,只需要知道m值即可创建,而我们知道,哈希运算是不可逆的,知道m无法推算出 r ;
用户A看到B发起的交易之后,出示r值,使得B发起的交易成功,获得B转账的10个ETH,r值被披露;
用户B在上个步骤中也拿到了A出示的r值,使得A发起的交易成功,获得A转账的1个BTC。
交易双方必须同时在线,严格执行参与流程,因此,交易发起方,如果无法找到一个在线的交易对手方,则必须等待。
对于BTC,创建带有哈希时间锁的交易,在底层是通过创建两笔交易完成的,由于底层机制比较复杂,在前文所述的交易过程中被简化表述为了一笔交易。如果交易成功,两笔交易都要上链,需要多付手续费。
实际交易中,会存在汇率问题,交易对手方可以根据汇率是否有利于自己来选择是否完成交易。尤其在金额较大时,交易对手方有很强的动力这么做,这导致原子交易可能不适用于大额交易。
3.2 见证人
3.2.1 见证人产生方式
3.2.2 用户对见证人的信任基础
3.2.3 资产托管方式:独立控制地址与多方控制地址
3.2.3.1 多签
3.2.3.2 私钥分片
3.2.3.3 签名人组成员管理
3.2.4 向去中心化方向改进
3.3 轻节点式侧链
当源链A有请求传递一笔跨链交易信息给目标链B时,交易发起者将该交易的明细内容、区块高度、以及该交易SPV证明(指该交易的Mekre路径)一并提交到B链;
部署在B链上的A链轻节点合约,通过SPV证明,重新计算该交易所在区块的区块头哈希值;
得到的哈希值与轻节点中对应的区块头哈希值进行比较,如果一致,则表明该交易确实发生在该区块中,若不一致,则说明该交易并不存在于该区块。
Relayer不负责托管资产,如果采用侧链机制来实现跨链,跨链过程中锁仓的通证会被托管到一个特定的托管合约中。
对于Relayer的信任假设,相比见证人而言更为宽松。我们必须相信大多数的见证人都是诚实的,但众多的Relayers只要至少有一个是诚实的,我们就可以相信跨链消息传递是可靠的。这点我们将在3.3.3小节进一步论述。
3.3.1 双向锚定
3.3.2 侧链与子链
3.3.3 轻节点侧链的优越性
区块的数据结构语法上有效;
验证工作量证明,区块头的哈希值小于目标难度(确认包含足够的工作量证明);
区块时间戳早于验证时刻未来两个小时(允许时间错误);
验证区块大小在长度限制之内,即看区块大小是否在设定范围之内;
第一个交易(且只有第一个)是coinbase交易,即一个区块,矿工只能给自己奖励一次;
验证区块内的交易并确保它们的有效性:验证MerkleRoot是否是由区块体中的交易得到的,即重构区块Merkle树得到的树根,看是否和区块头中的hashMerkleRoot值相等。
3.3.4 轻节点技术的发展:“瘦身”与“减负”
较大的区块头,将使得轻节点合约变得笨重,占用目标链的巨大存储空间;
源链较快的出块速度,将导致轻节点合约需要频繁的同步和验证新区块。
3.3.4.1 轻节点合约的“瘦身”
3.3.4.2 轻节点合约的“减负”
3.4 中继链
3.4.1 连接现有区块链
要根据不同的接入链的特性,制定不同的适配方案,做主动兼容,工作量较大;
不同的链安全性有差异,会涉及到不同接入链的跨链授信问题,以保护整个跨链网络的安全;
新的区块链层出不穷,如果出现新特性的接入链,则需要开发新的适配方案
3.4.2 通信协议簇 + 造链协议
3.5 共享验证人
4. 跨链技术的认识框架
4.1 如何保证跨链事务的原子性
只有子交易1完全成功(完全成功意味着交易被打包进区块,并形成最终确定性),才能进行子交易2,以此类推,只有子交易2完全成功,才能进行子交易3;
如果子交易3失败,则保留子交易2的成功状态,让用户可以反复重试子交易3;
如果子交易3始终失败,用户可以先后撤回子交易2和子交易1。
4.2 如何感知另一条链
4.3 如何安全的托管留置资产
4.4 如何进行多链适配
4.5 小结
基于哈希时间锁的原子交换
见证人机制
轻节点式侧链
中继链
共享验证人
跨链事务原子性
跨链消息验证
资产托管
多链适配
往期推荐