本文由编程笔记#小编为大家整理,主要介绍了微众WeCross 跨链平台TTM可信事务机制相关的知识,希望对你有一定的参考价值。
1. 两个problem
- 区块链网络需要相互获取对方链上的数据,由于它们并没有参与对方区块链的共识流程
- 保证跨链交易中各自链上交易执行的事务性
2. TTM可信事务机制 (Trust Transaction Management)
采用密码学技术和分布式算法,保证区块链平台之间交互数据的真实可信且难以篡改,保证业务逻辑的原子事务性,使得区块链平台之间任何关联的两个交易能够完全执行或完全回滚
2.1 spv证明
多维度的默克尔证明
-
多维度的默克尔证明,不仅能够验证交易存在性,还能够验证交易执行结果的正确性,为跨链交易可信执行以及后续章节将讲述的事务机制提供完备的可信验证。
-
交易存在性验证是指验证某一笔交易是否真实存在于某个区块,确保跨链交易中双方所声称的资产或数据是真实存在的。
-
交易执行结果正确性验证是指验证跨链交易是否已在双方各自的区块链上正确执行,保证跨链交易执行结果的正确性。
其中交易存在性验证需要用到交易默克尔根,交易执行结果正确性验证需要用到回执默克尔根。
3. 跨链事务机制
3.1 两阶段提交协议
投票阶段和提交阶段。为了让整个事务能够正常运行,两阶段提交协议涉及三个接口,分别是准备(Prepare)、提交(Commit)和回滚(Rollback)。
3.2 哈希时间锁定合约 (HTLC,Hashed Time Lock Contract)
哈希时间锁定合约为区块链资源新增三个接口,分别是锁定(Lock)、解锁(Unlock)和超时(Timeout)接口。
eg. 交换位于链 A 的资产 α 和位于链 B 的资产 β
step1. A 首先选取一个秘密随机数 S,使用特定的哈希算法计算出 S 的哈希值 H,之后 A 将H 发给 B。
step2. A 和 B 协商两个时间点 T0 和 T1,确保 T0 >T1。T0 和 T1 用于避免 A 或 B 单方延误交易,所以这其中的交易包 α 和交易包 β 都需要设定时间限制,超出这个时间限制后,相关资产立即撤销锁定,原路返回。
step3. A 基于 H 和 T0 创建资产锁定智能合约 LockContractA,该智能合约会锁定资产 α,其可以使用 S 来解锁并将资产 α 转移给 B,如果在 T0 前仍未解锁,则会自动撤销锁定,且不会发生任何资产转移。
step4. B 基于 H 和 T1 创建资产锁定智能合约 LockContractB,该智能合约会锁定资产 β,其可以使用 S 来解锁并将资产 β 转移给 A,如果在 T1 前仍未解锁,则会自动撤销锁
定,且不会发生任何资产转移。
step5. A 使用秘密随机数 S,调用 B 上的智能合约 LockContractB,将资产 β 转移给 A 。
step6. 如果 A 或 B 任意一方超时未执行操作,则在 T1 时间点后,B 资产会撤销锁定,T0时间点后,A 资产会撤销锁定,还原初始状态