众所周知,2017年9月20日在德信币(DCR)和莱特币(LTC)之间的进行了第一个著名的区块链上原子兑换。这是一个区块链应用趋势中的重要一步,允许用户在没有第三方的情况下进行不需信任的、跨链的、场外交易(OTC)。这会使支持这些交换事务的加密货币之间的交换过程去中心化。我们在原子互换存储库下创建了一些简单的原型工具:dcratomicswap、btcatomicexchange和ltcatomicexchange,以允许德信币(DCR)、比特币BTC)和莱特币(LTC)用户互相使用链上原子交换。这些工具是为那些希望摆脱传统货币兑换过程的人而构建的:事务脚本和OP_CLTV支持。值得注意的是,这些工具并没有解决订单管理的问题,而订单管理通常是在功能齐全的交易所中执行的。而且,与链上原子交换相关的一些隐私和透明度的特点并不存在于集中式交换中。在这个文章中,这些工具都是基于文本的,但是我们会在将来的版本中将其集成到Decrediton GUI钱包中。链上原子交换的过程将在下面更详细地描述:
先决条件
为了在两个加密货币之间执行一个链上原子交换,有几个先决条件:
分支事务脚本
两个链的事务脚本中必须有相同的散列算法
交易脚本中的签名检查
在交易脚本中必须有检查锁定时间证明或检查序列证明 (“CLTV” and “CSV” for short)
由于德信币(DCR)和莱特币(LTC)是比特币(BTC)的山寨币,所以前三种条件基本满足。此外,德信币(DCR)和莱特币(LTC)都一直在跟踪比特币(BTC)的更新,因此他们都支持检查锁定时间证明。检查锁定时间证明/检查序列证明支持在任何一方没有完成处理过程的情况下进行退款。随着其它基于比特币(BTC)的加密货币项目的进一步研究,这种链上原子交换可以在满足上述约束的任何一对加密货币之间发生。
用户实例
在用户想要执行交换的所有实例中,用例上的原子交换并不是一直可用的。这个过程非常适合于不需要特别低延迟或高频率的大额交易。因为这个过程涉及到链上交易,所以这个过程的速度受到块的挖矿限制,以比特币为例,在最坏情况下,这种操作可能需要大约一个小时的时间。此外,用户还必须为每个链上的交换交易和赎回交易支付交易费,而比特币(BTC)的交易成本可能很高。
隐私
由于这种互换是链上的,用户应该注意到一些隐私问题。每个链上的交换交易包含相同的散列值,这意味着任何对相应的区块链进行监视的人都可以将兑换一方的货币连接到另一方的货币上。这是一种与典型的集中式交换不同的威胁模式,在这种情况下,国家法规要求交易所保留用户身份和活动的记录。与其要求交换数据,感兴趣的一方可以从一个链跟踪货币到另一个链。然而,尽管可以很容易地确定各区块链上硬币的来源,但交易方没有相关的身份数据。
透明度
与交易所的交易方式不同,通过链上原子兑换交易的货币交易量将被被动观察者发现。这意味着用户不能用少量的货币制造大量的假币。从这个意义上说,原子互换是对过去“货币兑换组织”情景的真正回归,这是在出现交易所货币兑换之前的情景。
整合
目前,这个过程在交换的每一边使用一个独立的二进制,例如德信币(DCR)二进制和比特币(BTC)二进制。交换过程在每一侧有三个步骤,需要通过现有通信通道(例如电子邮件或即时消息传递)手动中继信息,并使用文本接口,这种方法显然不完美。在接下来的几个星期里,我们将把这个过程整合到Decrediton GUI钱包中,以简化它并使某些过程自动化。为了便于使用,我们希望Bitcoin-QT和Litecoin-QT钱包也能实现类似的集成。有关执行原子交换的详细说明可以在这里找到。原子交换过程已经在dcrwallet(CLI)、Decreiton(GUI)、Bitcoin Core和Litecoin Core 是进行了测试。
结论
我们希望,德信币(DCR)、比特币(BTC)和莱特币(LTC)用户可以从这些工具中获得一些效用,并最终将它们集成到他们各自的GUI钱包中。区块链上(和最终脱离区块链)原子互换是一种令人兴奋的技术,它能让加密数字货币实现飞跃:即直接赋予用户权力。德信币(DCR)将在此领域中处于活跃状态,并继续朝着这一目标进行创新。我们有兴趣集成支持其他的加密数字货币,因此在许多不同的区块链之间可以发生原子互换。请与我们联系,就如何在Github、Sap、Reddit或我们的论坛上为您的加密电子货币提供兑换办法的建议。
德信币(Decred)中国社区
作者:Jake Yocom-Piatt
翻译:宇宇
领取专属 10元无门槛券
私享最新 技术干货