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

第0章 引言

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

 

 

第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值和签名信息,做条件判断来计算对赌结果。

 

延伸阅读:

卓越的交易性能才是去中心化的魅力所在

免责声明:信息仅供参考,不构成投资及交易建议。投资者据此操作,风险自担。
如果觉得文章对你有用,请随意赞赏收藏
登录后评论
Copyright © 2017 宽客在线 京ICP备15046776号