截至2019年7月,大约有2,000种加密货币,但不同区块链之间没有单一交换机制。 在本文中,我们简单地考虑如何安排无中介交换技术之一-原子交换。
祝您阅读愉快!

原子交换:它是什么,它与什么一起吃?
原子交换是两个区块链上的一系列交易,可让您在没有第三方参与的情况下交换硬币并信任交换的第二参与者。 本质上,创建了这样的事务,可以在存在某个键的情况下或在一段时间后花费其输出。
并非所有区块链都允许实现AtomicSwap。 有两个主要要求:
- 支持智能合约(此“初始”交易的生成器);
- 使用相同的cryptomagy(哈希函数)。
智能合约? 不,没听到从广义上讲,智能合约是一种“非粘附”算法,该算法在已知条件下执行操作,仅此而已。 在我们的案例中,智能合约可被视为一个大黑匣子,它被馈送到收件人的地址,发件人的地址,汇款金额,保值时间并分配唯一的标识符(哈希)。 输出是具有条件的所需交易。
哈希和他的朋友们哈希函数是高级数学故事中的另一个字符。 将输入流转换为其他值。 相同的数据给出相同的结果。 通常,输入是称为秘密密钥的大量数字,而输出是哈希。 无法将哈希转换回私钥。
当一切顺利
考虑爱丽丝(是的,爱丽丝不再相同)和鲍勃之间的交换。 爱丽丝有比特币(btc),鲍勃有以太(eth)。 两个字符在两个区块链上都有地址。 例如:大型加密货币标志象征着区块链。

爱丽丝会生成一个密钥(数量很大),并且不会告诉任何人:

根据密钥,她考虑了哈希:

创建一个唯一标识符等于哈希的合同:

汇款到合同。 现在她不能再花一定的时间(时间锁定):
时间到了,或者时间锁定时间锁-合同创建者发送某种类型的交易后可以将钱退还的时间(我们称其为“退款”)。 此交易不需要秘密密钥。 如果另一个用户使用密钥发送另一种类型的交易(我们称其为赎回),则他可以为合同中指定的收件人的地址提款(重要:不是他本人)。
一般而言,合同交易处理机制如下:
if (transaction_type == "refund" and sender == contract_creater and timelock < now()) { send_to(creator_address); } else if (transaction_type == "redeem" and hash(secret_key) == contract_id) { send_to(receiver_address); }

爱丽丝将哈希报告给鲍勃。 现在,他可以审核(检查)合同的所有字段:确保地址正确,发货金额,合同上的款项存放时间(爱丽丝无法提取的期限):

如果一切顺利,Bob在第二个区块链上创建一个类似于Alisinom(具有相同标识符)的合约。 收件人和金额可能会发生变化(如果比率不是1到1)。

爱丽丝审核合同:

如果她将所有内容增加三倍,那么她将在以太坊上创建一笔交易,将钱花在鲍勃的合同上。 唯一的方法是提供密钥。 现在知道:

爱丽丝得到伦理:

鲍勃查看钥匙,并使用她的钥匙创建一笔交易,将一笔钱花在爱丽丝的合同上:

成功! 狼满了,羊很安全!
当世界不完美时
但是,有时可能会出问题。 交换可能在两个地方失败。 为此,有一种将钱退还给合法所有者的机制。
假设爱丽丝(Alice)是一个体面的女孩,她以金钱签了合同,但经过审核后,鲍勃(Bob)改变了主意,与众不同:

爱丽丝等待合同中指定的时间锁定到期(例如48小时),然后返回血:

另一个故事讲述了善变的爱丽丝,在鲍勃创建合同后,他不想继续进行原子交换。 替代方案:爱丽丝丢失了密钥,不能这样做:

鲍勃等待一段时间来冻结资金(通常少于爱丽丝的时间,因此爱丽丝不会在最后一刻提取鲍勃的钱,然后不返还她的钱;例如24小时)。 时间锁定后,爱丽丝归还了她的钱。

结论
原子交换非常方便点对点交换,绕过了交换和中介。 参与者承诺仅支付发送交易的佣金。
总结一下,在区块链B1和B2上A和C之间的交换中,可以区分以下步骤:
- 参与者A在B1上初始化合同;
- 聆听C部分关于B1的合同;
- 参与者C在B2上初始化合同;
- 听A的B2合同;
- 参与者A提供密钥并向B2取款;
- 参与者C获取B2上的密钥;
- S方在B1取款。
该技术是新技术,但已经被积极引入。 也许在不久的将来,她将能够代替集中式,意识形态上异类的区块链交换。