如果我在Corda上创建令牌,我怎样才能确保发行人知道每个人的平衡?

时间:2018-01-24 10:09:44

标签: corda

我在Corda上创建了一个令牌。如何让发行人知道每个节点在任何时间点的余额是什么?

1 个答案:

答案 0 :(得分:3)

嗯Joel ......这是一个很好的问题 - 这样做通常被称为客户资产和监护用语中的“内部和解”!我假设:

  • 每个令牌类型有一个发卡行
  • 此发行人负责发行和兑换代币
  • 发行人跟踪发行了多少令牌!
  • 希望持有令牌的方节点必须向执行KYC和正在进行的交易监控的发行人进行注册 - 这可能是大多数监管辖区的要求。如果这不是一项要求,那么就没有什么好办法真正知道谁目前持有发行人代币!

发行人知道已发出和兑换了多少令牌,但不知道有多少令牌已经发送到/来自每个参与方节点,并且不知道谁拥有该令牌。换句话说,发行人需要为所有节点完成此等式:

node_balance = issued - redeemed + in - out

有很多方法可以做到这一点,每个方面都有好处和权衡:

  • 发行人共同签署。这是一个可怕的模式,可以增加发行人的集权。什么是发行人离线,没有人可以交易等不推荐。
  • 编写一组流程,只需询问已注册的每个节点以保存令牌的余额。这是一种天真的方法。派对节点可以说谎,但实现起来很简单。网络法律协议可以要求政党节点“说实话”或者他们被驱逐出商业网络。
  • 写一组流程,询问每个节点的现金状态和来源链回到发行交易。每天执行一次。这里必须使用机密身份,因为发行人节点最终会持有所有现金状态以及涉及现金的所有先前交易。好消息是发行人可以确保余额。坏消息是,这可能无法扩展到大型网络(一次大量流量),我已经提到了隐私侵犯。节点也可以选择不响应。
  • 让您的令牌在滚动基础上过期。例如,令牌按月滚动到期。如果令牌过期,则必须与发行者兑换新令牌。然后,发行者可以推断每个节点在特定时间点的余额。这是一种有用的方法,因为它缩短了出处链(对于可扩展性和隐私问题很有用)。它确实增加了集中化,但令牌并非全部在当时到期,因此发行人不会不堪重负。缺点:如果发行人离线,则无法兑换和支出代币。
  • 使用SGX或Zero知识证明或多方计算。这是我们将来要实施的内容。发行人可以放心,每个人都保持“正确”的平衡,即。没有欺骗/双重花费,但不知道各方节点的余额。
  • 要求每个参与方节点匿名将其余额发布到公共公告板。发行人将知道任何余额是否不正确(太多或几个令牌)但不知道谁是海报是。这可能必须在您的业务网络中强制执行,或者

还有其他几种方法,但我现在还在弄清楚它们是如何工作的。

最后,值得注意的是,如果没有监管要求知道谁持有令牌以及他们拥有多少钱,那么我首先不会费心去设计这个过程!请记住,Corda实现了控制,以确保节点所有事务都是原子的(它们要么发生,要么不发生),并且不能有双倍的令牌。合同代码还向节点保证,如果没有发行人的签名,就不能制造或销毁令牌。鉴于这种情况,即使我们知道各方的余额,我们也可以确保他们根据他们签署并提交给分类账的交易保持正确的余额。