DOT、PLAY互换交易

 
波卡和Subplay都是基于Substrate,一个Substrate助记词可以同时控制一个波卡账号和一个相对应的Subplay账号。这两个账号的地址可以用如:https://polkadot.subscan.io/tools/ss58_transform 等工具转换。而借助这个特性,我们就可以用一种匿名的方式让波卡的代币DOT和Subplay的代币PLAY互换交易。

简略来说,我们可以指定一个波卡账号把它叫做DOT池。想用DOT交换PLAY的人可以在指定的时间段将一定数量的DOT转入这个DOT池账号。指定时间结束后统计每个账号所投入的DOT占总投入DOT的百分比。于此同时,也指定一个Subplay账号叫做Subplay池,进行同样的操作。最后统计每个账号投入的PLAY占总投入PLAY的百分比。然后用参与交易的DOT账号的百分比乘以参与交易的PLAY的总数,就是这个DOT账号购得的PLAY数(实际情况需要减少一些,以弥补转账损耗的交易费)。用同样的方法,也能计算出每个PLAY账号购得的DOT数。然后通过上方提到的工具,将指定的币转入指定的账户。

上面的介绍比较复杂,可以举一个很简单的实例帮助理解。假设有a,b两个DOT账号,c,d两个PLAY账号。在指定时间段内a向一个指定的DOT池账号转账1DOT,b向这个DOT池转账2DOT。而c向一个指定的PLAY池转账30000PLAY,d向这个指定的PLAY池转账40000PLAY。最终DOT池中有3DOT,PLAY池中有70000PLAY。而a投入的DOT占总投入DOT的 1/(1+2)=33.33%,b为 2/(1+2)=66.66%。c投入的PLAY占总投入的30000/(30000+40000)=42.85%,d为40000/(30000+40000)=57.14%。最终a将获得33.33%*70000=23331个PLAY(a虽然是DOT账号,但通过上方列出的工具可以知道它对应的PLAY账号地址是多少,这23331个PLAY就将转到这个对应的PLAY账号。其它b,c,d也同理),b将获得66.66%*70000=46662个PLAY。c将获得42.85%*3=1.2855个DOT,d将获得57.14%*3=1.7142个DOT。

虽然不确定以前是否曾有类似的交易方式,但我们认为它是可行的。所以计划在今天(4月3日)用此方法执行首次交易,首次交易我们会通过中心化,手动的方式进行计算,转账等操作。一切顺利的话以后我们会逐步优化各项步骤,并最终通过智能合约的方式自动并去中心化的完成整个操作。

首次交易规则如下:

想用DOT购买PLAY的朋友在4月3日20:00-22:00(北京时间)将数量不小于1的DOT转向波卡账号:13WHT93qowdeTf4em5uSMs8kKRcdcx7Cs1eNVjDjn8hZPwxG(暂未注册链上名称)。想用PLAY购买DOT的朋友在同样的时间段将数量不小于10000的PLAY转向Subplay账号:5GgGQbUvBouTyQikss76NddZGyMcCYgVNXTtArZrbs2Ewo3d(链上名称为SWAP2DOT)。注意:转账小于1DOT或小于10000PLAY的,会被视为将所转代币捐赠给奖金池而无法得到任何代币。在指定时间外转账,但达到指定数额的。我们会向原地址转回但只转回90%(避免有人恶意操作)。所以请尽量不要赶在截止时间转账,有可能因为延迟而使你的转账超过截止时间。具体数据将通过:http://scan.subplay.xyz/subplay/account/5GgGQbUvBouTyQikss76NddZGyMcCYgVNXTtArZrbs2Ewo3d (目前此浏览器账户余额显示不准确,所以余额将以https://app.subplay.xyz中的数据为准) 和 https://polkadot.subscan.io/account/13WHT93qowdeTf4em5uSMs8kKRcdcx7Cs1eNVjDjn8hZPwxG?tab=transfer 查询。

之后我们会按上方所述的方法计算并发放每个账号所得的币数。但有一点细微的区别是DOT池账号的余额总数将会减1来进行计算(因为波卡账号设置了最低余额为1,不减1可能会导致波卡池账号余额被清空)。同理,PLAY池账号余额会减1000。此外,考虑到转账的手续费消耗,以及避免有人故意多次发送小额交易而增加手动计算的难度,最终每个账户收到的DOT将会在计算值的基础上减去0.05。同样,收到的PLAY将会减去5000。所以在交易中最好是一次性转出所有你计划用于交易的币,而不是少量多次转出。

按以上规则执行下来,首次交易结束后DOT池中的DOT余额将会比交易前更多,PLAY池中的PLAY余额也会比交易前更多。但我们不会移除增多的代币,而是把它们留在下次交易时进行计算。这样下次参与交易的人就会相较默认状态获得更多的代币,所以整个交易对每个参与者都是公开公平的。虽然我们会做计算转账等人工工作,但不会收取任何酬劳。

在参与交易前,最好确保你相应的DOT和PLAY账户都拥有余额,不然有可能会出现你的账户收不到相应代币的情况。如假设你的DOT余额为0,通过计算你用10000PLAY换得了0.99DOT。但因为0.99DOT没有达到最低余额,你就收不到这0.99DOT了。而因为最少需要投入1DOT,1DOT按目前的价值应该大概率能换得超过1000PLAY,但也有极小概率会换得少过1000PLAY。所以稳妥起见,最好也确保参与交易前你的PLAY账户中拥有余额。

此外,指定的波卡账号和Subplay账号均为冷钱包保存,所以安全性方面不用担心。但如果暂时不能完全理解整个交易流程的话,建议还是仅用很少资金参与此次交易。