Ripple(瑞波)之交易清算

Ripple能展开的话题很多,包括瑞波币(XRP)、共识机制算法(Consensus Process)、路径算法等等,先撇开复杂的算法不说,先直奔主题,看看交易和清算Ripple怎么玩的,所以本文主要阐述基于一致性账本技术的交易和清算方案。

Ripple是什么?

这个网上资料很多,这里只为后面要讲的主题铺垫一些基本的通俗易懂的解释(几句废话,大咖略过,给个wiki的链接,有兴趣的看原著说明 Ripple Wiki )

简单讲,Ripple是一个去中心化的基于分布式数据库和一致性账本技术(Consensus Ledger)的全球支付网络,来实现支付交易和自动清算。说白了,就是靠即时清算,成本低廉两个明显优势来砸全球电汇SWIFT饭碗的,哈哈。做外贸的小伙伴估计体会最深了。

要实现这一套支付网络,最为关键的一项突破性技术是一致性账本技术。它解决什么问题呢? 大家都知道在中心化支付体系下,比如熟知的中心化体系有中国银联、支付宝,国外的Visa 、Swift电汇等。中心化体系中的每个机构都相信中心处理机构,比如说,Visa成员银行都依赖Visa下发的清分文件为准进行对账和清算。那么没有中心化的体系怎么办呢?这就需要共识机制和一致性分布式账本技术了,通过这项技术,使得大家从相信中心系统变成相信这个算法,而算法保证分布式节点中由谁获得记账权,并同步到其他分布式节点,最终确保全网记账一致。

OK,有小伙伴会问,Ripple和区块链有什么联系呢? 区块链是一个基础技术,Ripple也可以说是一种区块链的应用,具体就是全球跨境支付的一个应用。注意一点,Ripple共识机制算法和区块链(Block Chain)典型算法不一样,这个不作为今天主题,具体后面再阐述。

最后来张图直观的看一下,目前Ripple网络已经连接了很多国家的银行,支持很多币种的支付结算。据不完全统计,渣打银行、UniCredit、Bank of America、RBS、Santander、UBS等国际性大行已经加入。

传统中心化的支付清算方案

在谈Ripple的支付清算方案之前,我们先回顾一下中心化支付结算体系的运作模式,其实所有的中心化的支付系统都差不多,我拿典型的案例-银联来说明。

当我们使用银联标准的银行卡完成一笔支付之后,整个清算环节的流程包括清分和资金划拨两个环节:

- 环节一,Clearing淸分是指对交易日志中记录的成功交易,逐笔计算交易本金及交易费用(手续费、分润等),然后按清算对象汇总轧差形成应收或应付金额。简言之,就是搞清楚今天应该向谁要多少钱?应该给谁多少钱?

清分一般发生在T日日终(比如23:00),银联完成清分后,向各个成员机构下发清分文件,各个成员银行根据中心的清分文件来对账,注意哦,一定要以银联为准。

- 环节二,Settlement资金结算是指通过特定的渠道和方式,完成应收应付资金的转移。简言之,就是明确通过何种渠道,拿回应收款、付出应付款。

银联资金结算对成员银行或收单机构通过央行的大小额支付清算系统完成,一般在T+1日完成结算。

Ripple的支付清算方案

现在我们看一下Ripple方案,方案中最主要有两个核心部件,Ripple Connect 和 Ripple Network。


Ripple Connect

Ripple Connect 是在银行系统中处理ripple支付交易的一个插件模块(是不是有点类似支付前置系统)。在汇款银行和收款银行之间,Ripple Connect 建立了一个信息通道,用于交换KYC/AML,风控信息,手续费,汇率和其他支付相关信息。在交易发起之前,Ripple Connect把这些信息送到交易对手方,需要检查这些信息是否正确,只有确认OK,才能执行交易和清算资金。

Ripple Network

Ripple Network是分布式架构,没有中心处理机器,为保证交易的隐私性,所有的关键信息都是加密的。为了便于理解,我们不妨看下面两张图。

1、这个是交易发起方(付款人银行)的一个部署架构图。


可以很清楚的看到,在发起端银行,Ripple 网络需要在银行的内部网络区域放置如下几个部件,Ripple Connect 、ILP Validation、ILP Ledger 、 FX Connector,统称为Ripple Solution。

- Ripple Connect 上面已经说明;

- ILP Validator 验证机,每个银行可以定制自己的验证机,在交易发起之前,一定需要得到Validation 的确认;

- ILP Ledger 分布式账本,记账使用,怎么记账下面有详述;

- FX Connector 外汇报价连接器,用于连接外汇行情,需要注意的是,外汇流动性可以由发起行提供,也可以由第三方流动性(Liquidity Provider)提供。

2、下面是交易接受方(受益人银行)的一个部署架构图,接受方只要Ripple Connect和ILP Ledger两个部件就ok了。


How it works?

最重要一块在这里了,我们看看到底流程是怎么转的呢?小伙伴们要开始烧脑了。我们假设Alpha公司要向Beta公司转账100欧元。


交易前准备

为实现一个跨地区跨币种支付,银行需要由他们的外汇交易部门提供流动性,或者由外部的做市商提供流动性。在我们的案例中,我们假设使用外部做市商提供的流动性。

在交易发起之前,流动性提供商需要确保在受益人银行(也就是Beta公司所在的银行)存有对应币种的资金。


每个银行账户需要扩展一个外挂账户(Ripple Suspense Account),这个账户余额映射外部的ILP Ledge(这个账户用来跟踪流动性提供方的资金状态)。流动性提供方(Liquidity Provider)对外挂账户所产生的任何自己变动直接映射到ILP Ledge上的Liquidity Provider. 到了ILP Ledge上,大家就好理解了,这个运行在ripple网络上,一致性就便于控制了!

备注:这个厉害了,直接要求银行优化基础账户体系,之所以能直接settlement就是靠这个外挂账户的关联和映射啊!

在这个案例中,这个流动性提供方在欧元银行中存入了200,000欧元,且将其中的40,000欧元转入到外挂账户Suspense Account,用于这笔交易的流动性支出。如果做市商需要在两个方向做市,则在美元银行账户上也需要头寸,且划入到Suspense Account。这个案例只涉及一个方向,所以仅需在欧元银行上有头寸即可。


一旦Suspense Account有了资金,流动性提供方则把FX报价post给发起银行,在这个案例中,我们假设offer价格为 EUR/USD at 1.1429。

交易(整合了信息流和资金流)

当Alpha公司发起支付,Ripple Connect在双方银行的实例则开始交换信息,这些信息包括Alpha公司和Beta公司为KYC/AML所有需要提供的一切信息。在信息报文CIP/PII字段就是为这些信息提供,且可以被双方银行进行个性化配置。发起银行的Ripple Connect(即美元银行)也需要从受益人银行(欧元银行)获取处理手续费信息,还需要从流动性那边获取外汇价格,这个案例中EUR/USD at 1.1429。

注意:Ripple这里也显示NB的地方了,为了支持银行加入,在AML/KYC上做了很多设计,打消了银行最为顾虑的部分。

发起银行的Ripple Connect综合这些信息,当然也会增加本发起行的手续费,最后呈现出来的是这笔交易的总成本“all-in cost”。假定发起银行手续费为5美元,受益人银行手续费为5欧元,EUR/USD 为 1.1429,那么总的成本差不多为125美元(100欧元*1.1429+5美元+5欧元*1.1429)。一旦Alpha公司接受了这个费用,这笔支付即被发起。美元银行借记了Alpha公司-125美元,收下了5美元的fee,贷记suspense account +120美元。

这些资金(120美金)还没有真正贷记到流动性提供方的账户上,而是在Hold账户中,直到受益人银行向ILP Validator提供了足够post给受益人资金的证明。


此时触发ILP Validator来执行受益人银行把资金存入Hold账户且提供证明。受益人银行把105欧元的资金转入到冻结账户(Hold)中且发送一个收据(receipt)给ILP Validator。收据仅包括加密的资金存入证明,而不包括银行、交易对手或支付其他细节信息。


一旦ILP Validator收到两边银行的资金存入Hold账户的证明,它就开始触发资金清算 settlement - 同时记录两边账本,释放Hold账户资金同时transfer资金。这是一个完全自动化过程,且保证一致性,不会出现差错账。


总结:

从以上的流程可以看到,Ripple Suspense Account主要作用是体现流动性提供方的账户情况,这是非常关键的设计。Ripple Suspense Account和Ripple ILP Ledger的映射关系应该是由InterLedger Protocol规范的,银行接入一定要遵循这个规范。 Ripple ILP Ledger的分布式一致性记账这个是Ripple的基本功能了。所以,大家可以看出,通过这样的设计,Ripple打通了银行基础记账模块,使得无需实际资金的搬运,在短短几分钟内通过信息处理即可实现资金的交割,不能不说是一种创新。

博主QQ: 122209017

阅读更多

更多精彩内容