1. 程式人生 > >解決分散式資料庫和離線網路中原子性問題的新方法

解決分散式資料庫和離線網路中原子性問題的新方法

當我們在支付網路中進行交易時,我們希望100%確定它將完全完成併到達其最終目的地,因此沒有人會損失他們的錢。為了保證有效性,每個資料庫事務應滿足四個主要標準,形成所謂的ACID模型。交易必須是A-Atomic,C-Consistent,I-Isolate,D-Durable。

我們想談談其中一個特性 - 原子性。原子性意味著資料庫(DB)事務必須遵循“全有或全無”規則。原子事務可以全部執行,也可以根本不執行,對於確保資料一致性至關重要。在本文中,我們將向您介紹在最新的分散式資料庫和離線實現中解決原子性問題的不同方法,如HTLC,HTLA,PM,HTLR,Interledger中的公證人以及Geo協議中的觀察者。

分散式資料庫中使用的常規解決方案提出了一階段,兩階段或三階段提交版本。階段越多,安全級別越高。

三階段提交一步一步的過程

單個數據庫節點中的原子性是在前饋分類帳的幫助下實現的。當用戶請求在DB中反映事務時,該條目首先變為持久,然後將其寫入磁碟分類帳。如果系統在程序中途發生故障,則可以在重新啟動時從磁盤迴滾或還原該事務。

脫鏈網路中的原子事務

Lightning Network和其他脫鏈網路使用各種特定的解決方案,以防止在交易過程中由於某人的過錯而損失資金。

HTLC

最新的解決方案主要使用HTLC(雜湊時間鎖合同)。它允許在預設時間鎖之前呈現原始祕密後花費資金。首先,接收器節點生成祕密並計算其雜湊。然後將雜湊作為HTLC生成的基礎傳送到傳送方節點。傳送方生成合同並將其傳送到node1,即路徑上的下一個節點,該節點使用遞減的時間鎖建立新合同(使用相同的雜湊)。這個新生成的合同由node1通過到node2的路由進一步傳送,node2重複動作並再次減少時間鎖。它一直到接收者簽署資金支出(解鎖支付)使用自己在開始時生成的祕密並從傳送合同的節點接收資金。

圖片標題

HTLA

Interledger是一個開放的協議套件,用於通過各種分類賬進行轉賬。可以使用以下兩種模式之一執行傳輸:通用和原子。在通用模式下,Interledger原子性操作由HTLA提供,HTLA是HTLC修改。
Interledger中不同分類賬的支付方案

下午

Sprite渠道是一個專案,它建議使用新版本的支付渠道來解決與原子性相關的一些Lightning問題。通過新增preimage管理器(PM),HTLC得到了顯著升級。開發人員希望將PM作為HTLC的仲裁者,並將合同到期時的決策委託給任何單個節點到軟體。Sprite渠道應​​具有統一的合約到期時間。如果及時釋出了一個原像,則所有爭議都被接受,因為一方不可能及時釋出原像而另一方不能(雙方都有相同的到期時間)。但是如果在錯誤的時間釋出了原像,那麼就不會有任何支付的爭議。

SpriteChannels中的爭議解決流程

HTLR

Celer Network是一種擴充套件公共區塊鏈並通過離線技術最大化其效能的解決方案。PM已成為雜湊時間鎖定登錄檔(HTLR),主要具有相同的功能。HTLR有兩個依賴端點,IsFinalized和QueryResult,最終可以合併這兩個特性。

公證人

在原子模式下,Interledger使用參與者選擇的公證人來協調轉移。通過公證人進行的付款類似於閃電與HTLC的付款。唯一的區別是,在揭露祕密之前,接收方節點必須將合同轉交給公證人,從他們的一般登記冊中隨機選擇的特殊實體必須投票支付批准。

觀察員

這一角色存在於GEO協議 概念中,該概念提供瞭解決原子性問題的獨特方法。專案團隊正在建立一個分散的點對點脫鏈網路,允許交換資產。如果參與者在進行交易時遇到問題,則觀察員參與其中。觀察者不能影響交易方向並改變其中的任何內容。它們不用於驗證每個事務,僅干擾使用者的請求。

GEO正在使用類似於兩階段提交的框架進行常規交易。所有參與者都簽署了類似付款的準備,如果每個人都有簽名列表,則執行付款。如果參與者宣告檔案不存在,觀察者將在各階段之間採取行動。在這種情況下,觀察者從任何節點獲取簽名列表並將其傳送給所有參與者,或者如果不可能並且交易在適當的時間到期則不執行任何操作。
觀察員在GEO議定書中的工作流程

可以看出,分散網路中的原子性發展受到新概念的驅動:

  • 雜湊時間鎖合同的強度是減少節點離線時的損失以及傳送方和接收方的安全性。問題是資金必須在渠道中凍結,參與者必須經常線上以避免損失。
  • 修改HTLC以獲得HTLA,這使得可以在不同的登錄檔和HTLR中使用HTLC,這解決了節點離線問題。
  • 全新的解決方案是觀察員和公證人。在實施它們時我們應該小心,因為觀察員/公證人的集中可能會損害網路,但是一個適當設計的系統可能會使它們分散。