1. 程式人生 > >Ripple(瑞波)之交易清算

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