用户在普通中心化/去中心化交易所交易时,无法自由指定交易目标和交易价格,只能对现有订单薄上的订单进行交易,无法满足大额订单一次性成交,固定价格成交,指定交易人成交的需求。
而以太坊上的HTLC交易,需要交易双方信任每一组交易合约,一组跨链HTLC合约仅支持一组代币交易,无法多币种共用,增加了用户的信任成本。合约的Owner也具备作恶的可能性。同时HTLC合约交易如果想要取消或撤回资金,需要较长的等待时间。
点对点交易平台(下文简称P2PE)主要解决上述痛点,在保证安全性和实效性的基础上,满足两名用户之间的加密货币互换需求。结合wanchain跨链功能,可安全可靠的满足多链多币种的交易需求。
P2PE具备如下优势与特点:
1) 大额订单交易0手续费;
2) 自由限定交易价格和数量;
3) 任意WRC20都可交易,支持自定义token地址;
4) 基于HTLC(哈希时间锁定合约)和Token Approve开关双重安全保障;
5) 订单未上链前可随时取消,取消后订单不再可用,无需长时间等待;
6) 订单交易信息不公开,仅在链数据上可见;
7) 无需充值,不需要将token充到任何在线钱包或合约地址中,可在ledger中直接操作;
8) 通过跨链可支持多链多币种交易。
P2PE通过智能合约保证交易的安全,直接复用WANDEX安全、成熟经过验证的合约代码。主要涉及到2个合约:Proxy和Exchange。
Exchange验证用户输入信息和信息的签名,验证用户token余额后,调用Proxy合约完成用户资产按照用户输入的信息进行原子性转移。
Proxy可以且仅能被Exchange合约调用,进行token资产转移。Proxy在释放Owner权限后,可安全公证的调配用户资产,完全杜绝了任何人(包括运营方)作恶的可能性。
用户无需对任何合约地址充值或转账,只需在交易之前,对Proxy合约进行Approve操作,使其具备操作用户token资产的能力。交易完成后,即可解除Approve,进一步保障资金安全。
智能合约代码和前端代码完全开源,可接受所有用户的审查和监督。
用户在将交易订单信息发送至智能合约之前,对所有关键信息使用安全加密算法进行私钥签名,保证任何信息无法被它人篡改,保证了交易的安全。
主要签名的信息包括:
序号 | 信息 | 说明 |
---|---|---|
1 | trader | 订单创建者的地址 |
2 | relayer | 发送上链人的地址,这里是PartyB |
3 | data | 超时时间 |
4 | baseTokenAmount | 基础token数量 |
5 | baseTokenAddress | 基础token地址 |
6 | quoteTokenAmount | 报价token数量 |
7 | quoteTokenAddress | 报价token地址 |
通过对上述信息进行哈希和签名,可以锁定交易人、上链人、交易币种、交易数额、超时时间等全部涉及到交易安全的关键信息。
智能合约会对这些信息和签名进行验证,保证交易安全。
在一次完整交易过程中,涉及到2个用户PartyA和PartyB。交易过程完成PartyA和PartyB两者之间的Token交换。如下图所示:
主要工作流程如下:
1) PartyA和PartyB协商好交易价格(交换金额);
2) PartyA在页面上填写交易币种、交易金额、PartyB的地址信息(填写后,此订单只能由B来执行)、订单超时时间(超时后订单无效);
3) 在上述信息填写完成后,PartyA使用钱包私钥对其签名锁定,之后任何人均无法篡改;然后PartyA需要对链上智能合约执行approve操作,授权其动用PartyA钱包指定token资产的能力;
4) PartyA通过任意社交网络发送签名后的订单数据给PartyB;
5) PartyB在页面中粘贴入PartyA发来的订单数据,进行数据解析,在列出的解析结果中,核对交易token和token数量;
6) PartyB核对无误后,生成对应的订单并签名; 然后PartyB需要对链上智能合约执行approve操作,授权其动用PartyB钱包指定token资产的能力;
7) PartyB将订单发送上链,调用链上的智能合约接口;
8) 智能合约安全公证的验证PartyA和PartyB的订单信息、验证签名合法性、验证token余额足够完成此次交易;完成全部验证工作后,使用原子操作完成PartyA和PartyB之间的资产转移。
P2PE是一款精心设计的去中心化应用,可以安全合理的满足用户交易需求。