当前位置:首页 > 比特币新闻 > 正文

利用去中心化对赌合约(期货)设计一个稳定币

来源: 互联网时间:2019-01-12 14:03:22

第0章 引言

本文介绍一种不依赖于特定中心化机构,完全依赖市场和合约,并且不需要法币抵押,却能获得稳定锚定法币的办法。

437

第1章 一个链上对赌合约

我们现在来利用比特币现金来设计一个链上的对赌合约。

A赌BCH涨;B赌BCH跌。即开仓后,如果BCH比开仓时价格涨了,则A赢钱,反之B赢钱。

假定每人赌资nBCH。即每人出nBCH进赌池。(为了计算方便,我们假设不允许小数出现,只赌整个币)

假设开仓价格x$/BCH。

现在要平仓了,现在价格 y$/BCH

赌局权益计算公式如下:

A赌涨,A的收益为

(x/x-x/y)*n

B赌跌,B的收益为

(x/y-x/x)*n

比如,n=1;x=500$/bch;y=600$/bch

A的收益为,

(500/500-500/600)*1=0.1667BCH

B的收益为:

(500/600-500/500)*1=-0.1667BCH

A的余额为

1+0.1667=1.1667BCH

1.1667*600=700.02 $

B的余额为

1-0.1667=0.8333BCH

0.8333*600=499.98 $

现在假设 n =1 ; x = 500; y = 400

A的收益为,

(500*1/500-500*1/400)*1=-0.25BCH

B的收益为:

(500*1/400-500*1/500)*1=0.25BCH

A的余额为

1-0.25=0.75 BCH   0.75*400=300.0 $

B的余额为

1+0.25=1.25 BCH   1.25*400=500 $

 你会发现,B赌跌,无论BCH的价格涨跌,B的权益都稳定锚定在开仓时的权益。这就是稳定币需要的。

B赌跌,是不会爆仓的,哪怕是x=500$,y=5万$,涨了100倍,B的权益= (500/50000-500/500)*1+1=0.01BCH,换成成美元,0.01*50000=500.0 $。

但A是会爆仓的,如果x=500$,y=250 $,A的权益 = (500/500-500/250)*1+1=0 BCH,即此时,A的币100%输给了B。如果BCH价格跌到50%,还继续跌,B虽然得到了两个币,但总市值已经无法锚定500美元了。

但,我们先不考虑A会爆仓的情况。

第2章 Oracle

现在我们来将上述对赌合约,设计成交易上链,并且让B的权益是可以转让,就可以获得一个稳定币。

但还缺一个环节,平仓价格数据如何获得?这里需要Oracle。Oracle是一个发布信息的主体。

Oracle本身有一个数字身份,比如BCH上的Oracle就一定有一对公私钥对,向外界公布其公钥。如果Oracle要发布什么信息,那就拿这个公钥和信息,用他的私钥进行签名。外界就可以用这个公钥和签名,来验证这条信息确实是Oracle发布。

Oracle就可以发布价格数据,一般会发布,价格,和价格的hash值,以及对该信息的签名信息。

一个链上的对赌合约,就可以使用Oracle发布的价格hash值和签名信息,做条件判断来计算对赌结果。

第3章 结束语

更多详细的细节,我还需要去研究。


作者:黄世亮

欢迎打赏BTM:bm1qefc720au672awrgazgw5c3kx7etr5kejju02p7

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。