基于恒星的债券设想

在恒星网络中配置这种智能合约将涉及恒星协议的更多高级特性。所以在您全力深入前请首先阅读:交易的时间约束,多重签名账户,批量操作

设想今天是2016年12月份……Yoyodyne为某项“研究”筹集资金而发行债券。这些债券将以拍卖方式卖出。债券一年内每月偿还1000美元。在获得合适的监管机构许可之后,Yoyodyne明智地决定在恒星分布式网络上发行债券。

Yoyodyne有一个公众恒星账户,使用签名密钥keyA的账户yoyoAccount

为发行债券,还需要准备一个新账户bondAccount

Yoyodyne为bondAccount账户增加一个签名yoyoKey。设置账户bondAccount的master key权重为0。现在只有yoyoKey能为账户bondAccount签名交易。

现在Yoyodyne创建了如下12个交易:


Source Account ID : bondAccount

Sequence Number: 1

Time Bounds: anytime after 1st Jan 2016

Operations: yoyoAccount sends $1000 to bondAccount


Source Account ID : bondAccount

Sequence Number: 2

Time Bounds: anytime after 1st Feb 2016

Operations: yoyoAccount sends $1000 to bondAccount


Source Account ID : bondAccount

Sequence Number: 3

Time Bounds: anytime after 1st Mar 2016

Operations: yoyoAccount sends $1000 to bondAccount


…等等

 

Yoyodyne使用keyA签名如上所有交易并且公布。所有的这些交易暂时还是无效的:它们还需要bondAccount的签名,且时间约束未满足。

现在Yoyodyne开始债券拍卖。需要投标人发送以下形式的交易:


AccountID: accountBuyer

Operations:

bondAccount addSigner(keyBuyer,1)

bondAccount addSigner(yoyoKey,0)

accountBuyer sends $X to yoyoAccount

Signers: keyBuyer


Yoyodyne收集拍卖期间所有人们的交易。一旦拍卖结束,会为最高价格的交易进行签名并发送至恒星网络。

比方说Veronica是最高出价者且买了10000美元的债券。Yoyodyne收到了10000美元而Veronica现在就成为账户bondAccount的唯一签名人。同时Veronica还有了Yoyodyne预签名的交易。当一个票面日期到期,Veronica可以为相应的交易添加她的签名并发行到恒星网络中。

只要Veronica愿意,她可以通过之前类似的交易再次出售债券:


AccountID: accountBuyer

Operations:

bondAccount addSigner(keyBuyer,1)

bondAccount addSigner(keyVeronica,0)

accountBuyer sends $X to accountVeronica

Signers: keyBuyer, keyVeronica


 总结

有趣的是,账户bondAccount自身变成了一种账户间可交易的资产,且能继续发行债券支付利息给拥有它的当前账户。很显然,还可以创建更复杂的机制。这里仅为您提供了一些可能的思路。

原文:http://jedmccaleb.com/blog/bonds-on-stellar/ 

翻译:林林