这篇文章首先发表在 Medium 上。
原子交换的想法于 2013 年首次在 BitcoinTalk 论坛上提出,它可以实现两个区块链之间的代币交易所。
这些交易所是Atom的,因为双方要么收到对方的硬币,要么都保留自己的硬币。 一方不可能欺骗另一方。 它不依赖任何可信赖的第三方,消除了交易对手风险。
有很多用例。 例如,它们可以作为非托管交易的基础,用户可以在交易的同时控制自己的资金。
推荐阅读 1Animoca Brands 将投资 3000 万美元开发 Web3.0 超级应用 hi
2小时前 2Gavin Wood 和他的 Web3 对加密货币领域的贡献
2小时前基本
比特币地址就像一个带有存款槽的上锁邮箱。 当鲍勃将比特币发送给爱丽丝时,他将它们放入邮箱A的槽位中,并附上爱丽丝的“地址”。 只有爱丽丝拥有打开邮箱并取回硬币的钥匙。
有比用简单的私钥就能打开的锁更奇特的锁。 这些锁被视为比特币智能合约,可以规定任意复杂的锁定条件。
哈希锁
它们可以通过密码解锁,例如解锁手机的 PIN 码。 这个秘密实际上是一个散列到给定值的值/原像,该值显示在锁上供每个人查看。 对应的智能合约是一个哈希谜题。 一旦使用 PIN/原像解锁,它就会在区块链上公开可见。
时间锁
这些锁在到达预定时间之前无法打开,该时间可以是 UNIX 纪元时间(自 1 月 1 日到 1970 年以来的秒数)或区块高度。 相应的智能合约称为CheckLockTimeVerify。
原子交换
让我们使用这些锁,根据 Alice 的 BSV 币和 Bob 的 BTC 币按照双方同意的比例进行交易所。
设置
设置
Alice 将带有哈希锁的 BSV 放入 Bob 的邮箱中,然后她将哈希值告诉 Bob。 然后鲍勃将 BTC 使用相同的哈希锁放入爱丽丝的邮箱中。 这两个哈希锁共享相同的 PIN,该 PIN 由 Alice 生成并暂时对 Bob 隐藏。
交易所
交易所
Alice使用她的私钥A和秘密PIN打开邮箱A以获取BTC Bob存款。 鲍勃获悉爱丽丝刚刚在 BTC区块链上透露的 PIN 码。 他可以使用相同的PIN打开邮箱B,连同他的私钥B,并获得BSV Alice存款。 他们在没有任何第三方的情况下交易所了硬币。
打开一个邮箱可以有效地让另一方能够打开另一个邮箱。 如果鲍勃不打开她的邮箱,爱丽丝就无法打开她的邮箱。
如果爱丽丝或鲍勃堕胎怎么办?
退款
如果Alice存入BSV后Bob没有将BTC放入邮箱A,她的BSV就会被卡住。 同样,如果 Alice 在设置后没有输入 PIN,Bob 的 BTC 币就会被卡住,Alice 的 BSV 也会被卡住。 这就是时间锁的用武之地。每个邮箱都有一个防坠落时间锁,因此如果没有人及时打开密码箱,硬币可以退还。 例如,Bob 可以在一定时间后用他的密钥 B 解锁邮箱 A。
请注意,Alice 在邮箱 B 上的时间锁定必须比 Bob 在主邮箱 A 上的时间锁定长。否则,Alice 可以等到邮箱 B 的时间锁定到期,取回她的 BSV 币,并使用 PIN 打开邮箱 A 来提取 Bob 的 BTC 存款。
哈希时间锁定合约(HTLC)
原子交换使用称为(HTLC)的智能合约,因为它结合了哈希锁和时间锁。
HLTC合约
调用合约即打开邮箱有两种方式:
它也有两种解锁方式,在时间锁分支中使用OP_CHECKLOCKTIMEVERIFY。 使用脚本而不是 sCrypt,因为 BTC 禁用了许多操作码。
完整的协议序列
总之,BSV 和 BTC 之间的原子交换协议可以按照以下步骤执行。
如果步骤 3 或 4 没有发生,双方都可以在时间锁定到期后取回他们的硬币。
概括
我们已经演示了如何在 BSV 和 BTC区块链上自动交易所硬币。 任何两条区块链都可以支持跨链原子交换,只要它们支持HTLC,即具有相同的哈希函数并支持时间锁。 例如,已实施以下交易所:
令人惊讶的是,原子交换甚至可以在没有 HTLC 的区块链上实现,例如门罗币。 使用先进的密码学,原子交换甚至可以用于任何区块链,只要它可以验证签名。
[1] K线走势图改编自跨链原子交换:https://bcoin.io/guides/swaps.html
观看:比特币大师班:为什么需要原子交换
区块链新手? 查看 CoinGeek 的区块链初学者部分,这是了解更多有关区块链技术的终极资源指南。