Phantom:分散式儲存套件

買賣虛擬貨幣
本文針對 Phantom 進行了入門介紹。Phantom 是一款統一的技術套件,作為平臺用於在分散式系統中託管內容。本文詳述了 Shift 採用的一般技術方法,並透過定義 Shift 試圖使用 Plantom解決的問題以及描述不同技術解決問題的方法進行展開說明。1. 問題定義當今世界,對資訊自由潛在威脅最大的莫過於網際網路運營商本身。伺服器主機、政府以及 ISPs(網際網路服務供應商)控制網路並能夠透過關閉伺服器、列入黑名單以及接管 DNS(域名系統)限制內容訪問。現有技術尚不成熟,無法阻止這些權威機構及其對網際網路進行的攻擊。IPFS(星際檔案系統)(Benet, 2014) 等技術已蓄勢待發,將被用於創造新型分散式網際網路,降低審查制度造成的威脅。2. 問題闡述2.1 網路中立性與網際網路服務供應商ISPs 是當今幾乎所有終端使用者接入網際網路的單一入口點。這些機構通常是私有商業實體,為其客戶提供連線服務。ISPs 短期內不會消失 – 他們對網際網路自由的確造成了顯而易見的威脅。ISPs 操控終端使用者行為的一個例項發生於本世紀初。Comcast 針對 BitTorrent(檔案分享)使用者實施了流量控制 (to Marlene H. Dortch, 2008; Eckersley, 2007),阻止他們訪問所選內容,即使該內容是免費獲取的內容。此次針對付費客戶的攻擊行為應視為違反了網路中立性、以及無論來源,所有內容和應用均應可訪問的原則。
網路中立性從最初就作為網際網路管理的不成文概念。資訊自由被認為是促進代表全人類利益的技術進步的根本需要。網路中立性的另一個潛在威脅來自於 ISP,ISP 能遮蔽、限制或阻礙其不接受的內容的訪問。ISPs 可能選擇對內容的高階訪問收取更昂貴的費用。雖然一般不太可能繞開ISP,但是內容供應商可以使用新型技術將內容去中心化,並以一種 ISPs 無法輕易進行審查的方式進行傳播。2.2 政府機構政府作為一個整體,在網際網路上可進行執法、反恐和情報收集。鑑於這些權力和責任,政府機構還透過司法體系被賦予諸多對網際網路控制的權利。例如,在美國,具備正當搜尋令 FBI 便能關閉網站或服務 (Search.usa.gov, 2018), 以便更有效地審查該網站。在某些情況下,政府機構會賦予網站新的任務,廣撒網以掌握更多的證據。雖然這種型別的接管通常只適用嚴重的犯罪活動(絲綢之路、非法服務),但是仍然對個人自由造成了直接攻擊 (Martin, 2013)。在政策領域,存在政府攻擊網際網路的其他例項。2017 年 9 月,西班牙政府扣押了 ”.cat” 的頂級域名供應商 (Morris, 2017),有效授權他們對該擴充套件下運營的 DNS 實施完全控制。此外,政府開始強制審查支援加泰羅尼亞公投的網站,並最終阻止投票點提交投票。政府審查對今天的網際網路來說是一個顯而易見且現實存在的危險。新型網際網路要獲得發展,必須改進這些問題、保持資訊的自由流通。2.3 集中式伺服器託管伺服器供應商和運營商,如亞馬遜和微軟,提供系統用以託管網站或其他應用。通常,這些供應商過於熱衷同政府機構合作以及配合他們對服務終端的要求 (Raphael, 2009; Chen, 2017)。此外,它們在網際網路生態系統中充當著集中式力量。2017 年初,亞馬遜 S3 東部服務中斷,成千上萬的網站受到影響 (Amazon, 2018)。在這次中斷故障中,許多大型網站完全無法訪問,大型網際網路埠停止執行。
隨著網際網路的規模持續擴大,這些供應商將聚集更多需要託管的使用者,這種情況必將會更加頻繁地發生。使用一些新型技術,如 IPFS,可能緩解這一問題,但是將網站引入 IPFS 並呈現給大眾的基礎設施並沒有得到廣泛普及。3. 解決方案要解決網路的集中化和審查問題,必須具備一個可以刪除或降低單點失效的系統或軟體層。網路上存在著各種各樣的失效節點 – 伺服器主機、DNS(域名服務)供應商以及網際網路的 WAN (廣域網)連線性。很遺憾,解決 WAN 連線性超出了本文件的研究範圍,但是伺服器託管和 DNS 問題可透過使用 Shift 開發的名為 Phantom 的軟體套件得到緩解。Phantom 是一款分層應用程式,為搭建分佈化提供技術堆疊。Phantom 為許多網站審查源提供解決方案。顧名思義,Phantom 上託管的服務可以從一個主機上消失,但是仍可從網路中的另一主機進行訪問。Phantom 透過完善 IPFS 主幹來建立 Shift 網路的儲存層。終端使用者能夠使用基於區塊鏈的空間租賃系統提交檔案進行長期儲存。網站運營者能夠使用 Hydra 來呈現資源從而使 Shift 儲存叢集服務其整個網站,並使用 Jenga 保持內容活躍,如果內容被審查,Jenga 會動態地更新發現的資源。這一技術套件打造出無縫式終端使用者體驗,且不輕易被審查。儲存層1. 星際檔案系統
Phantom 儲存層包含一項名為星際檔案系統的自由獲取技術。IPFS 是一種點對點的超媒體分佈協議 (Benet, 2014),作為主幹為眾多分散式儲存應用服務。它為用於實現適合於服務網路應用和其他型別內容的分散式檔案系統提供了有據可查的協議。據描述,IPFS 沒有中心失效點,完全點對點,意味著任何使用者都能參加到系統中來。這一檔案系統協議不依賴任何中央機關進行運營監管。IPFS 已做好準備,創造一個新型的、免於審查的分散式網際網路基礎設施。2. 實施 – Shift 儲存叢集IPFS 基礎設施的預設狀態表現為全球共享網路。這在驗證資料完整性,可用性和自定義實現細節(如獲得用於執行儲存節點的令牌獎勵)時可能會導致問題。鑑於此原因,Shift 執行了一個私有叢集。儲存節點使用自定義群秘鑰,確保能夠只與使用相同秘鑰的其他節點對話。這還能夠防止Shift 節點被用於託管和傳輸在 Shift 網路之外新增的內容,能夠增強可靠性和效能。為了永久儲存資料,IPFS 實施了識別概念。識別內容意味著可以永久獲取(或直至未識別)內容。預設情況下,識別僅適用於未被識別的單個點,但是這意味著如果裝置離線,內容可能丟失。解決問題的方法是使用 IPFS 叢集:運營 IPFS 後臺程式的子網路(或私網),僅包含 Shift 點。Shift 叢集作為包裝器在 IPFS 後臺程式周圍執行。它使終端使用者能夠一起連線到一組 IPFS節點,這樣內容就能在組內進行儲存和複製。叢集挑選負責人負責跟蹤哪個位置有可用的內容。Shift 叢集提供 IPFS 使用的模組叢集系統。這一叢集系統同 IPFS 後臺程式協同實現以下任務:
1. 識別、未識別、再識別傳送到點的內容2. 為通訊提供 HTTP API3. 堅持並遵循叢集共識4. 複製因子5. 檔案儲存與檢索這些功能共同提供了一個可擴充套件的分散式儲存系統,該系統完全獨立於公共 IPFS 網路執行。這對於允許使用者在系統內插入和儲存內容至關重要。
2.1 檔案識別在 IPFS 執行期間,未使用的檔案在一段時間內自然會被清理。為了實現永久儲存,檔案必須在系統內被識別。識別能夠防止垃圾蒐集程式過早地刪除專案,確保專案始終在叢集內可用。2.2 HTTP APIIPFS 提供了一套內部命令和功能,與網路互聯互通。同一套功能集會映象到 HTTP API,允許外部軟體與系統相互作用。這些功能使 Phantom 與 IPFS 能夠進行遠端通訊,而無需終端客戶加入叢集。2.3 共識IPFS 叢集需要節點間達成共識,以確保所有儲存的資訊保持同步。這對已識別內容來說尤為重要,必須永久儲存。一個節點挑選作為負責人並依此執行,直至離線或挑選出新的負責人。
2.4 複製因子Shift 託管叢集當前配置為:將每條內容複製到冗餘節點以防止資料丟失。這意味著每個檔案在主位置外的多個其他位置均有備份。如果其中一個備份位置不可用,叢集將自動複製內容到其他節點。這樣就可以擴充套件網路,因為資料不需要被複制到每一個節點。2.5 檔案儲存與檢索一旦資料在系統內得到識別,參與節點接收傳輸資料,儲存節點將該資料保留在叢集內。當該資料的請求從服務節點到達儲存節點時,儲存節點將資料提供給服務節點,服務節點會快取資料以防止重複檢索相同資料。新的服務節點可以加入並從儲存節點提供資料。可透過加密雜湊從系統檢索檔案。這些雜湊在檔案被插入系統時產生並儲存以供後續使用。這對於使用區塊鏈儲存檔案來說特別重要,因為這一雜湊能提供識別符,將檔案地址連結至付費儲存的交易。3. 服務層
Phantom 提供了一個在儲存層服務之上執行的服務層。這些服務包括 HAProxy 和 Jenga。服務層的主要功能是將 Phantom 連線至” 舊世界” 的網際網路協議,例如 DNS,併為儲存層提供流量管理。3.1 HAProxyPhantom 包括 HAProxy,為 IPFS 及其叢集的 API 端點提供離散定址和流量管理。除了管理後端流量,HAProxy 還能管理系統的任何前端請求。它利用 SSL 提供客戶和伺服器間的加密通訊。還負責處理所有傳入請求,將其轉發至後臺裝置或叢集。有了 HAProxy 作為防禦,只有白名單中的請求才能被目標應用執行。所有禁止請求都將被拒絕。3.2 Jenga因為目前尚沒有主流瀏覽器天然支援 IPFS,所以需要有一種方法將傳入請求規劃至特定伺服器。
使用谷歌或火狐瀏覽器擴充套件,選擇一個 IPFS 節點服務於瀏覽器中的內容可以解決這個問題,但並不理想,因為終端使用者不應必須安裝第三方軟體才能訪問 Phantom 託管的網站。另一個可行的解決方案是使用內部負載平衡器,但這也存在問題。首要問題是集中化。如果負載平衡器失效,所有對 Phantom 的請求均會失效。第二個問題出現在吞吐量或效能問題上,例如當系統不得不擴大規模以處理更多流量時,系統會被要求支援整個 Phantom 網路的吞吐量,這對一個全球範圍內的檔案儲存系統來說並不可行。Jenga 透過提供可擴充套件的解決方案解決了這兩個問題,該解決方案無需為終端使用者檢視內容安裝任何附加軟體。Jenga 是一款 DNS 監控解決方案,Jenga 是一款 DNS 監控解決方案,可以觀察頂級 DNS 條目以進行更改並記錄這些更改。當發現與 IPFS 叢集相關的更改時,Jenga 會更新叢集中的所有儲存節點。透過維護所有節點的持續通訊,Jenga 可以就健康的 DNS 狀態達成共識,隨後從系統中驅逐不合格的節點。這就防止攻擊者加入叢集並注入不適當 DNS 條目,將 DDoS(分散式拒絕服務)攻擊向量從系統中刪除。Jenga 僅依賴於 DNS 記錄便搭建起分散式網路和傳統網路之間的橋樑。Jenga 基於系統中存放的記錄建立了動態網路定址系統,促進了從一個節點到數千個節點的流量分級。這一功能對終端使用者是透明的,無需外部互動操作。作為基礎階段,Jenga 能夠使系統解決一些中心失效點:DNS審查和流量控制。為使 Jenga 發揮其功能,必須要求與所有 IPFS 叢集中的已連線點保持連線。如果偵測到叢集中出現更改,Jenga 便會使用最新資訊更新 DNS。如果節點表現異常或離線,Jenga 將採取行動,將對等點的分配 CNAME 記錄刪除,進而將其逐出叢集。對等點能夠在糾正錯誤並向 Jenga報告健康狀況後重新加入系統。
當外部參與者的要求被傳送至閘道器,叢集會挑選一個對等點向呼叫者提供資料。這一過程透過整個叢集的資料複製無縫完成。為了使新網站加入系統,運營商必須為指向閘道器的域名提供 CNAME 記錄。如果運營商不想使用閘道器,可以建立指向自己閘道器的 DNS 記錄。資料仍將從叢集進行傳輸,但是該站點將錯失Phantom 閘道器的一些優勢,其主要優勢是保證所有可用於服務的健康節點都被利用。安全區塊鏈在分散式系統中,內容安全為重中之重。任何傳入的資料在傳出時都必須未經篡改,且客戶需要能夠信任其真實性。Phantom 利用區塊鏈技術保證系統內部的不變性和真實性,因為不可證偽的賬本能夠消除許多信任相關的問題。1. 股份授權證明Shift 被描述為經過股份授權證明保障的分散式區塊鏈。挑選出的 101(數字 N 目前是 101)個代表元作為系統的保管人。這些代表元每 27 秒(區塊時間)就會在其分配槽內產生區塊,併為 Shift的網路託管平臺提供交易終結的賬本。除了跟蹤賬戶餘額和註冊狀態,它還能提供私人和公共秘鑰間的加密連結系統。
系統中的每個使用者能夠擁有並使用一個或多個私鑰,這些私鑰可被用於提供該系統內的代幣所有權。這一點在與託管 Phantom 的區塊鏈結合時尤為重要。使用者需要從 Shift 區塊鏈向 Phantom側鏈傳送一些代幣。2. Phantom 側鏈側鏈是與主鏈共存的區塊鏈。在這種情況下,Phantom 將有一個與 Shift 主鏈勾連的側鏈,該主鏈為 Phantom 提供了標記化的主幹。在 Phantom 側鏈範圍內,有一個獨立賬本會跟蹤終端使用者的代幣餘額。這些代幣為使用者提供了在 IPFS 群集內識別或取消識別內容的功能,並可以交換代幣以長期儲存檔案。為了支援系統,終端使用者能夠作為節點運營商加入系統,並將剩餘空間租賃給尋求儲存的使用者。2.1 交易型別在現有的由 Shift 提供的系統上,側鏈將實行平臺特定的新功能。新功能對 Shift 內的交易型別概念進行了擴充套件,並將創造一組新的交易型別供在側鏈中使用。
型別 10 – 儲存請求終端使用者或系統需要將內容儲存於叢集內。為此,使用者會提交請求實現叢集內的安全儲存。當接收到側鏈並確認進入區塊鏈時,使用者將被分配到系統內的儲存。該儲存將使使用者能夠將檔案插入系統。型別 11 – 返還儲存在某種情況下,使用者可能不再需要使用儲存。這時,使用者將提交此類請求以解鎖代幣。交易確認後,使用者將收到系統退回的代幣。型別 12 – 提供儲存為使系統正確執行,必須向系統提供儲存。擁有超量儲存的使用者能透過提交請求將儲存(包括新增的儲存量)提供給網路,並且必須有權益證明支援請求。
型別 13 – 撤回儲存正如型別 11,使用者可能想要退回代幣,進行業務結算並向網路提供儲存。使用者需要向網路提交請求,一旦確認,鎖定代幣連同儲存委託將一同被退回給使用者。3. 外部互動作用 – 部署Phantom 透過 Shift 主鏈應用介面進行部署。為了使運營商部署 Phantom 供自己使用,運營商需要執行 Shift 主鏈的副本。另外,運營商需要使用 Phantom 介面上傳他們自己的檔案,或使用提供的 APIs 套件插入新內容。Phantom 的自我部署對於終端使用者與系統進行互動不是必需的。表示層與許多分層應用一樣,終端使用者與頂層或表示層相互作用。在 Phantom 中,表示層由 Hydra 組成,並與儲存和服務層協同工作。
1. Hydra – 內容管理系統內容管理系統是一種網路應用,用於釋出文件和網站內容,無需技術知識。終端使用者能夠提交純文字,軟體將呈現一致的佈局。具有動態內容且經常更新的網站離開 CMS 很難執行。為了克服IPFS 的一些侷限性,例如無法執行一些常見的伺服器端語言寫入的軟體以及對許多資料庫系統缺乏支援等,自定義 CMS 因此得以建立。自定義 CMS 被稱為 Hydra,是一項作為 IPFS 上建立的 CMS 執行的新技術。Hydra 同 Phantom檔案管理器協同工作,目前能夠處理大部分常見任務,例如新增、修改以及刪除內容。基礎功能設定將滿足大多數使用者服務需求,開放原始碼庫能夠讓開發商自定義並根據各自需求完善軟體。Hydra 寫入可延展到終端客戶並且其程式碼庫為模組式設計。例如,一個網頁和部落格擁有相同的繪製引擎,但是可能採用不同架構。透過明確一些配置項,使用 Node.js 以程式設計形式建立新模組。結果檔案能夠只透過 IPFS 提供,所有轉列均發生在客戶端。前端和後端元件獨立分開。這使得開發人員能夠使用他們首選的框架,例如 Vue、React 或Angular。資料檔案和模組結構被寫入 JSON 檔案,可連同外部系統,如 Wordpress API 一起使用。2. Phantom UI – 檔案管理器
Phantom 使用者介面配備智慧檔案管理介面,使終端使用者能夠檢視並修改系統管理的內容。終端使用者透過使用 Shift 賬戶跟蹤各自的內容。內容提交請求與此賬戶配對,使用者可以從任何系統進行訪問。這使得網路可以在檔案發表後將檔案和檔案更改呈現出來。使用者能夠以典型現代作業系統相同的方式管理儲存內容。每一位使用者採取的操作都將被傳播到叢集。介面提供高階程式碼編輯器,所有常用檔案型別擁有完整的語法高亮顯示。IPFS 為每一個資料檔案建立了獨一無二的雜湊,能夠防止託管或上傳同一內容。這一功能簡化了上傳過程,因為可以在提交前識別重複檔案。此外,這一功能使系統有效執行並減少終端使用者和運營商的寬頻使用。Phantom UI 包含 DNS 嚮導程式,用於透過使用 Shift 託管儲存叢集控制託管域名的定址。這一功能可以消除要求內容提交者託管其系統而導致的單一故障點。Phantom 使用 Jenga 填充健康節點列表,該節點列表將為請求的域提供內容。3. 內容檢索儲存在系統中的資料是在內容級別而不是位置級別進行的。這一新方法具備很多優點。主要優點是資料位置不再相關,允許許多節點呈現相同的資訊,並且當資料發生改變時,會產生新的雜湊。
將這些優點結合起來建立一個 merkle 雜湊(根)和一個子資料夾或檔案的相對路徑,檔案系統將變得更加智慧。網站地址透過 URL 定址,內容透過雜湊取得。域名解析系統使用可變雜湊。終端使用者可使用私鑰結合不可變雜湊更新可變雜湊。這一功能不要求域名記錄更新就能做到內容更新。安全層在任何系統中,安全性都是重中之重。對於一個分散式系統而言,安全是建立穩定性以及建立執行信任的基礎必要因素。1. Shift 叢集安全叢集在 Phantom 內起到非常重要的作用。在叢集內,有多個用於託管的鑑別交換機制。這樣的部署是為了保證叢集安全免受攻擊以及本文件未涉及的其他威脅。
鑑定的第一層在區塊鏈層完成。使用者將需要在區塊鏈上傳送型別 12 交易,註冊委託的儲存量,來完成註冊程式。一旦這一步完成,使用者便能夠在 Phantom 上註冊為叢集參與者並完成加入程式。在第二層,要求使用者使用用於註冊區塊鏈的私鑰以及儲存叢集的加密加入秘鑰啟動應用。隨後,應用將在區塊內搜尋關聯儲存委託並確認其合法性。然後,應用將註冊 Phantom,解碼發行的秘鑰並允許使用者加入叢集。1.1 防止超額認購為防止超額認購,叢集和區塊鏈承諾的儲存配額會被系統嚴密監控。當儲存可用性低時,加入和服務資料的激勵就更多,因為希望向叢集中插入資料的使用者將支付更高的費用以使用叢集。一段時間後,使用者對持續儲存量的需求和運營商的供應量應該均衡。運營商將在設定時間框架內提供儲存,在合約到期前允許在任何時間更新或新增。如果運營商在委託的時間框架終止前停止操作,他們將失去股權。這要求運營商保持較高的執行時間以維持系統執行。每一個區塊鏈叢集運營商都將有固定小時數的離線時間。如上所述,運營商操作不當會受到懲罰。資金減少是一個極大的威懾,足以應對運營商行為不當的情況。使用者行為不當還包括超額訂購或網路泛洪。此類不當行為會導致股份資金的暫時凍結。
惡意使用者行為的處理方法是限制其在一定時間內向系統提交內容的數量。使用者在此期間能夠完成一定數量交易,在超過限制數量後,他們發起交易的成本開始大幅增加。2. 資料保密進入系統的內容的安全性同保護系統安全本身同樣重要。使用者在提交儲存前有機會加密任何資料。然而,必須注意,任何加密的內容都只能透過金鑰來讀取。因此,使用者在加密內容時必須保持謹慎並恰當保護其秘鑰。在 Phantom 中,使用者向特定的收件人加密內容,而不是靠記憶加密。Phantom 可以提供一份公鑰列表,用於建立包含解密金鑰的加密訊息,加密訊息僅有接收方的私鑰才能解密。3. 非法內容在分散式系統中,非法內容總是作繭自縛。對 Phantom 來說,將不允許託管嚴重非法的內容。如果發現使用者向系統注入非法內容,他們將會面臨失去股份的風險並可能刪除該內容。系統只會維護識別的內容,未識別內容將被迅速清除。這一點至關重要,因為在這種情況下,運營商的權利必須受到使用者的保護。
結論Phantom 是世界上第一個由區塊鏈支援的分散儲存應用程式之一。它在 Shift 區塊鏈之上作為鏈和分散式應用程式實施。透過利用 IPFS 和叢集,Jenga 和 Hydra,Phantom 為網路託管和內容交付提供了一個審查抵制平臺。更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;