美文网首页比特币&区块链研究
利用去中心化对赌合约(期货)设计一个稳定币

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

作者: 1a8661c5a646 | 来源:发表于2018-10-19 19:32 被阅读8次

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

    第3章 结束语

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


    作者:黄世亮

    欢迎关注微信公众号:闪电HSL

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/buuuzftx.html