NervosDao的RFC最近在github上面公布了
似乎许多人仍然对于NervosDao一头雾水
包括我奶奶也是
但…奶奶在在我的循循善诱(?)之下,也成了CKB的投资人
那这下没有任何交易策略的奶奶该如何打败大盘,从中得到最大的回报呢?
没错,对于他而言最省脑袋瓜且安全的策略就是当一个Holder,并且为了不受二级发行的稀释,奶奶他必须将钱存入NervosDao之中,以待一个好时机取出。
是的,我奶奶除了记得住私钥和知道动动手指外
可能也不会做其他事情了
因此我试着在想,怎么让他操作NervosDao呢?
首先,必须让我奶奶理解:
NervosDao本质就是智能合约
等等,太残忍了,更简单一点说智能合约就是透过发送交易来产生的合约。
NervosDao是由两个部分所组成的
一个是“存款”(Deposit),就是我奶奶要把钱存入NervosDao里面
另一个是“取款”(Withdraw),就是当我奶奶要拿NervosDao的钱去Happy的时候要做的动作,取款中其实还有两个小步骤,第一步(Phase1)是要确认这是谁存的钱,存了多久;第二步(Phase2)则是把钱转换成可退回的未花费输出,并且把利息退给你,确保奶奶的Token不被二级增发所稀释。
总而言之,就是让奶奶在想存钱进 NervosDao 的时候,还有想把钱领出来的时候,都发送出交易! 以下如果你比我奶奶还多一点好奇心,可以在稍微看一下,我会试着去讲这几笔交易要干嘛的
存款 Deposit
存款就是把钱存入NervosDao,存款的交易 只要奶奶喜欢,随时都可以发送 ,这笔交易是要把奶奶想存入的钱(Cell)做上记号,也就是添加NervosDao的脚本,让NervosDao知道有笔钱在什么时候存进来了,而这些cell会被识别为Nervos DAO deposit cell
取款 Withdraw
取款的动作和上面说的一样分成两笔交易,第一笔是Phase1,可以把它当作是退款结算申请;第二笔是退款交易,也就是等锁定期到了以后,要把奶奶存在NervosDao中的钱连本带利退给她:
-
第一笔是Phase1的交易:这笔是让我们从
Nervos DAO deposit cell
变成Nervos DAO withdrawing cell
,此时合约就会根据你当时存入的cell data中的block nunber是多少,进而知道你锁了多久。和存款一样, phase1 的交易也可以随时发起去申请退款结算 。 -
第二笔是Phase2时期的交易:这笔交易的目的是让收到phase1交易后,让原本抵押的ckb在锁定期到了以后可以退回, 所以这笔交易就没办法随时随地发起了,因为 NervosDao 中是有锁定期的 ,要等锁定期到了以后,这笔交易才可以被发送,目前看官方的RFC,这个锁定期是180个Epoch。
但奶奶可能听的懂Apple就很不错了,一定听不懂Epoch是多久的时间,在NervosCKB中,由于NC-MAX共识的特性,出块的难度是动态调节的,而难度的高低也会影响出块的时间长短,但这样和奶奶说完可能他也要晕了,根据在下从测试网的观察, 目前一个 Epoch 大概的出块时间是在 4 小时 正负20分钟左右,所以如果不负责任的用平均一个Epoch等于4小时来看的话,奶奶的钱存进去以后最快可在一个月后能取回(4*180=720hr)。
给个例子吧,我奶奶在第7个Epoch存入了1000万CKB,当他要在第69个Epoch申请取款的时候,必须等到187个epoch才能拿到他的存款及利息。不然就是要等到第367、547个Epoch才能取出了。
请注意,如果奶奶的phase1交易在很靠近187的时候才发出呢? 那很可能会发生一个悲剧,就是来不及,他的交易可能会到188个epoch才被验证,那么这时奶奶就得等到第367个块,才有办法拿到取款了,而且 因为锁定期的计算和利息的计算是分开的 ,因此在这188到367这几个epoch,奶奶是没有办法拿到利息的(帮奶奶QQ),所以把withdraw的时间掐太紧是会有风险的。
最后也为我奶奶开个小许愿池,其实对于一般人而言,频繁的交易,而且是带有特定脚本的交易是有很大门槛的,但在RFC中,我也发现一些有趣的地方,例如在一笔NervosDao的交易中,是可以同时包含抵押Token、转换Nervos DAO deposit cells成 Nervos DAO withdrawing cells,以及同时退掉其他锁定期已经到达的款项。我想既然在代码实现上这样的细节已经被注意到了,其实未来很有机会,可以产生一键转换的大杀器,为我奶奶向各位大佬许愿了。