首页 > 解决方案 > 实施白名单的正确方法

问题描述

我是 Corda 的新手,对如何在 Corda 中正确实施白名单有疑问。

让我们假设在 Corda 上发行了一个可替代的证券代币,它必须满足某种规定(例如,不允许投资者来自某个国家)。因此,需要一个白名单来确保满足所有法规要求。

在私有网络中,我假设不需要实际的白名单,因为运行节点的发行者可以控制谁被允许加入网络,谁不被允许。但是在公共 Corda 网络上,可能有许多身份不允许持有某种类型的令牌,因此需要一个白名单。

对于此类问题,正确的设计选择是什么?我考虑过拥有一个WhitelistState包含所有白名单投资者的集合。但如果我理解正确的话,如果从白名单中添加或删除了新的投资者,则状态的每个参与者(在这种情况下是发行人和投资者)都必须签署交易,这不是一个合适的解决方案。

我将不胜感激有关如何解决此类问题的任何有用建议!

标签: corda

解决方案


查看blacklist示例 repo 中的项目:
https ://github.com/corda/samples/tree/release-V4/blacklist

基本上他们做了什么:
1. 他们在里面ReachAgreementFlow添加了一个附件到交易中,这个附件是一个包含文件的 jarblacklist.txt文件。
2. 在状态合同AgreementContract(验证交易)中,他们提取罐子并阅读其内容,并确保协议中列出的公司不在黑名单中。


推荐阅读