區塊鏈知識分享——Ripple

Ripple 是什麼?

區塊鏈知識分享——Ripple

1.Ripple 的網絡結構

Ripple(瑞波)是一種基於互聯網的開源支付協議,可以實現去中心化的貨幣兌換、支付與清算功能。在 Ripple 的網絡中,交易由客戶端(應用)發起,經過追蹤節點(tracking node)或驗證節點(validatingnode)把交易廣播到整個網絡中。追蹤節點的主要功能是分發交易信息以及響應客戶端的賬本請求。驗證節點除包含追蹤節點的所有功能外,還能夠通過共識協議,在賬本中增加新的賬本實例數據。

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

圖1

區塊鏈知識分享——Ripple

圖2

上圖是共識算法流程,我們 SCRY 的 Using Authentication in Certification agreement Based Swarm Intelligence 集群智能認證,群體認證數據簽名也是基於 Ripple 變種。

在 Ripple 的共識算法中,參與投票節點的身份是事先知道的,因此,算法的效率比 PoW 等匿名共識算法要高效,交易的確認時間只

需幾秒鐘。當然,這點也決定了該共識算法只適合於權限鏈(Permissioned chain)的場景。Ripple 共識算法的拜占庭容錯(BFT)能力為(n-1)/5,即可以容忍整個網絡中 20%的節點出現拜占庭錯誤而不影響正確的共識。


分享到:


相關文章: