浅析跨链中原子互换协议
前言
每个区块链都有自己的数据资产与数据信息,比特币创建以来TPS一直成为区块链行业的瓶颈,难以突破。为此行业涌现出各种解决办法,改进共识、区块扩容、改进数据结构等。plasma等侧链技术,从区块链的横向扩容方面对区块链性能进行提升。即主链负责处理基本事务,侧链负责处理特定事务,例如比特币可以生成pizza链、fruit链、drink链,当人们需要使用比特币进行购买pizza、水果、酒水时,可以将比特币兑换为侧链上的数字资产,在侧链进行购买。这样每条链可以用于处理不同的事务,对不同的事务分而治之,从整体上提高链的处理能力、增加链的存储容量。
原子互换
跨链中的原子互换,即在不同的区块链系统中,进行原子性的资产互换。换句话说,就是资产转移互换成功,要么失败。不能出现,Alice在A上转移资产成功,在B链上却没有收到相应数量的资产。下面以Alice与Bob在比特币和以太坊上,的资产转移为例,说明跨链交易的原子互换原理。
原子互换步骤 :
1)Alice有1BTC,想要换取Bob的20ETH,Alice与Bob在两条链上各有一个账户
2)首先Alice随机生成一个密钥K,发起交易1,向Bob比特币账户转1BTC。该交易只有在得到Bob的签名和密钥K时才能完成。
3)在交易1发起前,Alice会广播一笔回撤交易(交易2),该交易表明若48小时内交易1未完成,则将资产回退给Alice;回撤交易得到Alice与Bob的共同签名后生效。同时,Alice只有在交易2成功生效的情况下,才会发起交易1。
4)Bob接收到Alice的交易2,若同意跨链转账则在交易2中添加签名。此时交易2生效,Alice将交易1向全网广播。
5)Bob在以太坊上发起交易3,向Alice支付20ETH以得到密钥K,Alice在交易中输入密钥K和签名后才可以得到20ETH。为保障交易3中Bob资产安全,在交易3之前同样会发送一笔回撤交易(交易4)。
6)Alice收到交易4后,会附加自己的签名,回撤交易4生效后,Bob将交易3在全网广播。
7)Alice为获得20ETH,在交易3中附上自己的签名和密钥K;此时交易3成功,Alice获得20ETH,Bob获得密钥K。
8)在比特币中Bob输入自己的签名和密钥K,获得1BTC。 原子互换小结
原子互换并没有将比特币的资产转移到以太坊上,只是同时交换了两条链资产的所有权。两条链的资产总量并未改变,因此原子互换协议无法实现链间资产转移。原子互换不仅可以运用在区块链中,同样可以在中心化的系统中使用,只要系统提供回撤交易、时间锁定、密钥锁定的功能。
设计浅析
转账交易1中,需要密钥K与Bob签名同时满足才可以完成交易:1.密钥K保证了发起方资金安全,即没有密钥K接受人无法直接获得资产。
2.接收方签名保证了接收方资产的安全性,即没有接收方的私钥,即使别人获得了密钥K也无法获得资产。
交易1的达成,需要同时得到发起方和接收方的确认。
回撤交易的作用:
1.就资产转移达成一致协议(48小时未成功,则撤销交易1,回退资金至Alice)
2.避免一份资产发起多次跨链交易(类似于“双花”,48小时内锁定跨链交易资产,该笔资产不能在用于其他交易)
Quesstion :
原子互换中如何在交易3中保证密钥K的正确性,即实现密钥K正确交易成功,错误交易失败?
参考资料:
【火币区块链产业专题报告】跨链篇(上) https://www.jianshu.com/p/f2d2e83473fc
作者:曹海涛