SUMMARY-供应链金融
项目背景
为了学习Fabric,模拟搭建一个供应链金融的区块链项目。
为了简单起见,此项目有以下四个组织:
- 核心企业
- 一级供应商
- 二级供应商1
- 二级供应商2
操作步骤:
- 设置环境变量
- 创建网络
- 创建channel
- 开发智能合约
- 部署智能合约到channel并进行交易
- [交易与验证](file://部署智能合约到channel.md):查看“部署supply-v8到alljoinchannel通道”部分
- 隐秘交易
- 源码地址
总结:
本项目成功的在测试环境自己部署网络,自己写智能合约并进行调用;完成了入门练习。
存在的问题:
问题1
目前此程序把所有的组织都加入了同一个渠道,所以账本是对所有组织都是公开的;现实生活中每个企业之间的交易应该都是私密的,不能被其他企业所见。
解决方案1:
使用通道隔离,每两个需要交易的组织之间都创建一个通道。
可行性: 初步判断此方法不可行,因为不同通道之间无法交易资产?如果可以交易需要从原来的channel销毁此资产,然后在新channel创建一个新的可被信任的新资产
解决方案2:
使用私密资产交易的方式解决,参考文档Secured asset transfer in Fabric
可行性: 可以,查看[隐秘交易](file://隐秘交易.md)
问题2:
同一个智能合约如何限制只能由指定的人调用?如本例中,发行方法应该只能由核心企业调用。
解决方案
同一个智能合约可以由部署智能合约的成员调用,所以无法限制,除非智能合约里面写死。
在应收账款供应链金融的demo中,我们写的智能合约可以由任何人发行应收账款,但是这只是生成了私有的数据,别人认不认可是否跟发行应收账款的组织交易是链下解决的问题。
问题3:
使用安全的方式交易资产之后,除了资产的拥有者之外其他任何人都无法知道资产的金额等私有信息。但是现实中的供应链金融应该是允许凭证资产的发行人知道资产归属是谁、资产的金额是多少;只有这样发行人才能够在凭证资产到期时进行还款。
解决方案
修改智能合约,待完成。