跨链原子性与可选择性交易的探索
1. 跨链原子性问题引入
在加密货币交易场景中,Alice 持有盾币(guilder),Bob 持有弗罗林币(florin),他们都希望进行资产多元化,即 Alice 想用部分盾币换弗罗林币,Bob 则相反。然而,盾币和弗罗林币分别位于不同的区块链上,且双方互不信任,这就带来了一个难题:如何保证交易要么双方都完成,要么都不发生。
经典的两阶段提交协议是一个不错的起点,但它假设所有参与方都诚实可信。而我们可以通过“强化”经典的两阶段提交协议来实现跨链原子交换。
1.1 技术准备
- 哈希锁(Hashlock) :Alice 创建一个秘密值 s(哈希密钥),并对其应用加密哈希函数 H,得到公开的哈希锁 h = H(s)。从 h 几乎不可能重构出 s,也很难找到另一个值 s’ 使得 h = H(s’)。
- 托管合约(Escrow Contract) :托管合约起到稳定存储的作用。Alice 将她的硬币交给托管合约,并附带哈希锁 h 和一个超时时间。如果在超时前提交了 s,硬币将转移给 Bob;否则,硬币将退还 Alice。Bob 也创建一个对称的托管合约,使用 Alice 的哈希锁和不同的超时时间。
1.2 强化的两阶段提交协议
1.2.1 准备阶段
- Alice 将她的盾币转移到自己的托管合约,超时时间为 2Δ。
- 当 Bob 验证 Alice 的硬币已被托管后,他将自己的弗罗林币转移到自己的托管合约,超时时
超级会员免费看
订阅专栏 解锁全文
183

被折叠的 条评论
为什么被折叠?



