上篇文章介绍Libra 区块链后,本文我们将介绍LibraSwap,这是个实验性质的专案,旨在实作MVP 来实现Libra 与ETH 之间的Swap 互换。挑选这个专案的原因,一方面是为了学习Libra 区块链,另一方面是我们对于以太坊区块链较为熟悉,但是考量目前Libra 测试链上仅能收送交易,尚无法部署合约交易功能,所以这个专案我们将会实作单方向的Swap 互换。
问题描述
本专案将基于Loi Luu的文章— “Bringing Bitcoin to Ethereum”,实现Libra与ETH的互换,想法是有人手上有Libra,但想透过他人来交换其手上的ETH。
假设Libra:ETH = 1:1
- A 有1 Libra
- B 有1 ETH
- A 与B 要做链上的atomic swap A ↔ B
最终:
- A 会拿到1 ETH
- B 会拿到1 Libra
技术上,我们可以透过两个支援智能合约的区块链来实现代币间的原子交换(Atomic Swap)。但由于目前在Libra 上还无法部署合约交易,所以在实作上会有些简化。
Overview of LibraSwap
正常的流程如下:
标准流程
但由于Libra 目前尚不能在链上与合约互动,因此我们修改了流程,我们将步骤3–5 简化成,当A 执行Libra 交易到B 的地址后,再由B 将秘密交给A 领取ETH
流程图
DEMO
以下demo的原始码均有open source — “ Libra swap ”
步骤一
部署智能合约。
1. deploy contract
步骤二
LibraBridge: 连接Libra与Ethereum
在前面的文章中,我们介绍过LibraSwap,但实际上透过Libra SPV,我们可用于搭建Libra与Ethereum之间的桥梁,称做LibraBridge。利用SPV validation实作跨链的代币交换不是新的创举,过去有许多项
B 产生一组密码及密码锁。
步骤三
B 初始化swap 智能合约,指定收款方为A,并且将1 ETH 存入合约当中。
步骤四
A 传送1 个LIB token 给B。
步骤五
B 验证Libra 交易。如果验证成功,B 将密码私底下交给A。
步骤六
A 透过B 的密码至合约取款。
结论
在上述的文章中,我们实现了一个LibraSwap MVP功能,透过简化Libra锁定交易的流程,以及在Ethereum上的Hash Time Locked Contract合约。但事实上,这样的交易对于A是有风险的,因为他必须信任B会在A转帐后,并给予秘密,在这样的场景中,B更像是一个Trusted custodian。
为了实现使用者与无需信任的监护人(Trustless Custodian)之间的代币交换,我们需要智能合约来验证Libra上的交易,我们将在下篇文章介绍Trustless Custodian的设计。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
Libra 2.0介绍
Libra 2.0新版白皮书https://libra.org/en-US/white-paper/ 差异 这次白皮书的改版,可看成脸书回应监管单位的疑虑,第二版修正的部分,主要是基于合规考量,例如: 除了提供单一的稳定币(≋
原创文章,作者:掘金K,如若转载,请注明出处:https://www.20on.com/119830.html