在区块链上借钱给机器人(1)

借钱给机器人.png

昨天讨论的借贷模式是基于真实世界身份的----更准确的说,是链下身份。因为链上也是另一种数字化的真实。

这个版本基本是按照现有的业务逻辑优化而来的,尽量复用已有的模块(包括流程,风控手段,以太坊合约)。这样设计出来的东西,难免很多地方会受到现有条件的局限(在业务模式上,更在技术层面),不能算一个一步到位的解决方案。

那么, 我们来试试做一个不基于链下身份的借贷吧。这意味着,在借款的事情只会考察这个链上账号,而完全不管他背后是一个人,一条狗,还是一台机器。

在此以前,我们先抛出来关于账户价值的三个结论:

1.账号的单边性----密钥持有者可以证明账户是自己的,也可以假装不是(遗弃账号);

2.总体余额非负----相互绑定的账户总价值不能为负:其中可以存在负余额的账户,但总和必须为正。而不与其他账户绑定的单个账户,是不能出现负余额的。否则账号会被遗弃;

3.账户的非经济价值----之所以存在无抵押的纯粹信用贷,依靠的是大量“非经济”账户。一定程度上说,这些无变现价值的账户,成为了一种特殊的抵押物,

基于这三点,可以来设计不同的模式

第一种模式:账户内抵押模式

这是一种纯链上的,单账户借款,通过保证这个单账户价值为正,保证账户不被遗弃。

这句话有点绕,一点一点说。

首先,这是纯粹基于链上的,彻底跟链下的身份、账号说拜拜,更不要提法币,面签。这意味着这种信贷业务不止可以对公司,个人,也能对任何的智能设备,甚至抽象的合约-----比如一辆每月有租金收入的共享单车借款支付修理费,一片太阳能电池板,或者一个域名借款给自己续费。

其次,这个借款针对的是“账户”本身----而不是他背后的“身份”。这样,就避免了“单边性”的问题,因为出借人针对的就是账号本身,所以也就不用考虑“如果账号持有人不要这个账号怎么办”。这跟ABS的思路有点类似: 信用是针对一个特定SPV的,理想情况下,你完全不用再考虑背后的主体。

因为账号背后没有身份,也就没有绑定到其他账号。这意味着需要受到“余额非负”的限制:这个账户里面既然要存在负债,就必须同时存在更多的资产(任何有价值的东西),以保证整体余额是正的。

具体的操作上,最简单的版本是用配资智能合约来实现:

合约基本结构如下(伪代码,不要纠结语法):

Contract leveragedInv{ //这个类可以认为是一个优先劣后级的SPV。
  address seniorHolder; //优先级账号----也就是出借方
  address juniorHolder;  //劣后级账号----也就是借款人
  uint totalAmt; //总投资额;
  uint juniorAmt;  //劣后级投资者
  date origDate;//投资生效日期;
  uint intRate; //利率
  string status;// SPV当前状态。
  function investmentInstruction;//这个是具体的投资指令,双方认可以后自动执行----
  //劣后级不能修改-----比如直接转账到某个地址参与ICO。
  function extiInstruction;//这个是双方约定好的退出策略;

  modifer onlyJunior{//某些操作是只允许劣后级做的;
    require(msg.sender==juniorHolder);
    _ ;
  }
  modifer checkStatus(string _status){ //只有某种状态下才能执行;
    require(status==_status);
    _;
  }

  function leveragedInv(function _investInstruction, function _exitInstruction){ 
  //建立SPV
    juniorHolder=msg.sender;//由劣后级发起SPV;
    juniorAmt=msg.value;// 劣后级需要在合约成立的时候先把劣后级份额放入spv;
    investInstruction=_investInstruction; //投资指令和退出指令是一开始就约定好的。
    exitInstruction=_exitInstruction; //
    status="waiting for senior";             
  }
  function cancelSPV() onlyJunior checkStatus("waiting for senior") {//在合约成立
  //以前,junior可以取消,并且拿走投资额;
    juniorHolder.transfer(juniorAmt); //转出金额
    juniorAmt=0; //修改状态
    status="canceled";
  }
  function seniorCommit() checkStatus("waiting for senior") { //优先级投资者对这个
  //合约的投资标的;各方出资额;利率等方面都满意,就可以出资参与;
    require(msg.value==totalAmt-JuniorAmt);//优先级出资额应等于总投资额减劣后级出资额;
    seniorHolder=msg.sender;
    call investInstruction()//执行事先约定好的投资指令;  
    origDate=today;//项目的成立日期,从这一天开始计息
    status="deal closed";
  }
  function liquidate() onlyJunior checkStatus("deal closed"){//退出投资,偿还本息;
    call exitInstruction()//执行事先约定好的退出指令;
    uint period=today - origDate;//计息天数
    uint seniorAmt=totalAmt-juniorAmt;
    uint intDue=seniorAmt * intRate / 365; //应计利息
    uint totalDue=seniorAmt+intDue;//本息合计
    transferToSenior=min(totalDue, balance);//先满足优先级本息
    seniorHolder.transfer(transferToSenior);
    juniorHOlder.transfer(balance);//剩下给劣后
    status="liquidated";
  }
}

假设某账号Alice希望做一笔投资,比如参与ICO,用100个ETH购买20w个新发行的NBC。他希望为了这一笔投资借款80个ETH,也就是说,他自己出资20ETH,剩下的80个ETH外借。这时候他可以用下面的方式操作:

  1. 成立这么一个合约,填入投资指令(参加NBC的ICO),利率。存入劣后级的投资额;
  2. 去一个链上公告板合约里把他这个合约的地址提出来;所有关注了这个公告板的人,就能看到这个合约;
  3. 投资者Bob认为NBC项目风险不大,并且配资利率也不错,愿意投资。Bob往合约账户转入优先级出资金额,调用seniorCommit指令。
  4. 合约自动验证Bob的请求,确认无误后,把Bob的信息也计入合约,并自动执行投资指令参加ICO。至此,借款成立。
  5. 过了3个月,NBC上涨了5倍,Alice认为是时候退出了。他执行liquidate()指令,合约自动卖掉NBC,先支付给Alice本金和利息,剩下的部分转给Bob;

这种模式的特点是,Bob这个账号里面里面既有负债(A的配资),也同时有资产(购买的NBC),并且资产总是大于负债的。这保证了借款的安全。

使用类似的合约应该可以为去中心化的交易所提供杠杆服务(中心化交易所就别提了)。也可以可以为非交易所的交易提供配资,比如ICO,ENS等。

这个借贷因为只是关注帐号本身,所以后面是机器人也无所谓。比如某个量化交易的算法,在需要还用杠杆的时候,也可以按照上面的流程来申请配资。

局限性:以上的方法虽然已经抛开了对线下的依赖,但其实还是某种变相的抵押借款,不算真正的信贷。
那么要如何实现线上的纯信用贷呢?

待续...
下一部分会讨论在链上实现信用贷,不基于链下身份的信用贷

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容