1.Ripple的網路結構
Ripple(瑞波)是一種基於互連網的開源支付協議,可以實現去中心化的貨幣兌換、
支付與清算功能。在Ripple的網路中,交易由用戶端(應用)發起,經過追蹤節點
(tracking node)或驗證節點(validating node)把交易廣播到整個網路中。追蹤節點的主
要功能是分發交易資訊以及響應用戶端的賬本請求。驗證節點除包含追蹤節點的所有功能
外,還能夠通過共識協議,在賬本中增加新的賬本執行個體資料。如圖5-5所示是Ripple的共識
過程中節點互動示意圖。 2.Ripple共識演算法
Ripple的共識達成發生在驗證節點之間,每個驗證節點都預先配置了一份可信任節點
名單,稱為UNL(Unique Node List)。在名單上的節點可對交易達成進行投票。每隔幾
秒,Ripple網路將進行如下共識過程:
1)每個驗證節點會不斷收到從網路發送過來的交易,通過與本地賬本資料驗證後,
不合法的交易直接丟棄,合法的交易將匯總成交易候選集(candidate set)。交易候選集
裡面還包括之前共識過程無法確認而遺留下來的交易。
2)每個驗證節點把自己的交易候選集作為提案發送給其他驗證節點。
3)驗證節點在收到其他節點發來的提案後,如果不是來自UNL上的節點,則忽略該
提案;如果是來自UNL上的節點,就會對比提案中的交易和本地的交易候選集,如果有
相同的交易,該交易就獲得一票。在一定時間內,當交易獲得超過50%的票數時,則該交
易進入下一輪。沒有超過50%的交易,將留待下一次共識過程去確認。
4)驗證節點把超過50%票數的交易作為提案發給其他節點,同時提高所需票數的閾
值到60%,重複步驟3)、步驟4),直到閾值達到80%。
5)驗證節點把經過80%UNL節點確認的交易正式寫入本地的賬本資料中,稱為最後
關閉賬本(Last Closed Ledger),即賬本最後(最新)的狀態。
在Ripple的共識演算法中,參與投票節點的身份是事Crowdsourced Security Testing道的,因此,演算法的效率比
PoW等匿名共識演算法要高效,交易的確認時間只需幾秒鐘。當然,這點也決定了該共識算
法只適合於許可權鏈(Permissioned chain)的情境。Ripple共識演算法的拜占庭容錯(BFT)
能力為(n-1)/5,即可以容忍整個網路中20%的節點出現拜占庭錯誤而不影響正確的共
識。