本文提出了一种基于区块链账本复制技术的支付解决方案,可以部署在同一银行的不同部门,或具有合作关系的不同银行之间,通过账本复制解决方案可以有效地减少使用SWIFT网络传递支付消息的成本,也可以减少在对端银行保留结算账户的被动成本。
本文提出的方案不需要替代或修改银行现有的账本,只需要部署一个封装应用来跟踪账本中的特定条目并将变化复制到所有的成员,从而确保每个银行在同一时刻可以看到同样的账本并且保证其准确性。为此我们建议使用区块链来开发此解决方案。
相关区块链教程/开发包推荐:以太坊 | 比特币 | EOS | Tendermint Core | Hyperledger Fabric | Omni/USDT | Ripple
1、目前的挑战
现有的账本体系,是在15世纪由Luca Pacioli开发的,不同的业务建立分立账本,因此仅保证自己版本的真实性,并没有彼此都认同的真实性。由于每个银行只能看到自己部分的交易,因此这就像盲人摸象。
为了解决这些缺点并在不同机构间处理支付,就需要一个中心化的受信任的第三方机构,例如SWIFT负责在商业银行间传递支付消息,中央银行负责处理支付结算,这两者都是受信任的第三方机构。
2、支付的背景知识
下图展示了目前的支付处理流程,这种方案被称为4盒模型,适应于所有的支付体系。CI(中心化设施)包括支付体系和体系提供商:
在一个支付机制中包含三个部分:
- 支付消息发送
- 支付调节
- 通过中央银行结算账户和账本条目进行结算
在商业银行间的支付消息传送通常是由第三方基础设施提供商(CI)来完成的,例如在国际间转账时,这个基础设施就是指SWIFT网络。
CI或者支付体系提供商通常作为所有商业银行的超级代理来运作,它负责计算并调节不同银行间的支付往来,然后将调节后的资金发送到结算银行(大多数情况下是中央银行)。不同银行自己的账本条目必须于CI账本条目一致,这让CI的账本成为所有账本中的超级账本。CI提供了支付调节的最终性。
结算银行(通常是不同国家的中央银行)接收到结算数据并利用结算账户在不同的商业银行间进行资金调拨以匹配发生的变化。结算银行提供了支付的最终性。为了降低自身的风险,结算银行需要所有的成员商业银行在结算账户中保持一定的资金量来满足日常结算要求。
没有一个银行对于资金的持有情况有完整了解,即使是结算银行也做不到。结算银行能够信任的唯一账户就是每家商业银行的结算账户。下图展示了在一个国家内转账过程中每个账本的情况,在跨境转账时也适用同样的原则:
3、基于区块链的账本复制方案
本方案将区块链账本映射为银行现有账本的虚拟账本,这样银行只需要很小的变动,可以利用现有的基础设施,向其他银行的支付通过SWIFT处理,向同一银行的支付转换为区块链交易并提交给分布式账本:
在上图中,每个银行都保留有账本的全部修改历史。因此,没有一个银行可以重复消费或进行欺诈。进入银行自身内部账本的交易都是通过虚拟账本,该虚拟账本作为一个黑盒子,由所有相关机构维护。这可以让每个银行都看到确切的有效账户余额以便确认或拒绝支付,而无需通过SWIFT或其他中心化的机制。
4、为什么使用区块链
在上面的方案中,我们使用区块链的原因在于:
- 没有单一的中心化数据库,数据可以在所有银行间复制
- 架构避免了对已输入数据的修改,你没有办法修改区块链上的数据
- 区块链中包含了商业实体创建的交易,这些区块实际上代替了SWIFT网络的确认
- 数据的每个副本都通过区块链协议同步,具有内在的安全性
- 可以随着规模扩大添加更多的机构