去中心化應(yīng)用程序的技術(shù)堆棧Dash Platform介紹
在達世幣歐洲會議上,有關(guān)團隊曾做過主題為Dash Platform的演示并得到了反饋。對此,我們希望能通過這篇文章來分享另行推出Platform Chain的理由。
平臺概述
在初始階段,我們將提供:
· 驅(qū)動器,包括面向文檔的數(shù)據(jù)庫,用于存儲和查詢元數(shù)據(jù);
· 身份,即用戶、應(yīng)用程序和其它實體的唯一身份認證;
· Dash Platform名稱服務(wù),含去中心化和升級版的DNS;
· 去中心化的應(yīng)用程序,即與平臺通信的去中心化HTTP API。
將來,我們將引入用戶與應(yīng)用程序之間的通信協(xié)議、付款申請、驅(qū)動數(shù)據(jù)的訪問規(guī)則等等。不過,我們還沒有完成有關(guān)未來服務(wù)的列表的最終定義。
為了托管和運營上述服務(wù),Dash Platform僅在主節(jié)點網(wǎng)絡(luò)上運行。與使用整個達世幣網(wǎng)絡(luò)相比,這是一個更具可擴展性的服務(wù)方案。這是因為主節(jié)點自帶獎勵機制,能保障高質(zhì)量的服務(wù)。為了處理和存儲全球平臺數(shù)據(jù)集Platform State,Dash Platform需要一個拜占庭容錯共識協(xié)議。這一公式協(xié)議確保仲裁鏈(即主節(jié)點中的子集)能以無需信任的方式驗證和處理數(shù)據(jù)。
舉個例子,假設(shè)我們擁有一個Dash Platform應(yīng)用程序,例如memo.dash、去中心化的推特克隆或https://memo.cash的達世幣模擬程序。那么,為了創(chuàng)建新的備忘錄并更新應(yīng)用程序的狀態(tài)(即Platform State的子集),我們就需要借助去中心化應(yīng)用程序接口并根據(jù)該備忘錄創(chuàng)建狀態(tài)切換,然后再將其發(fā)送至平臺。平臺則處理狀態(tài)切換并更新應(yīng)用程序狀態(tài)。一旦完成,該平臺將完成如下操作:
· 在主節(jié)點仲裁鏈上公告狀態(tài)切換;
· 根據(jù)平臺共識規(guī)則使用仲裁鏈驗證;
· 將相關(guān)數(shù)據(jù)記錄在區(qū)塊鏈上;
· 在狀態(tài)切換完成時(并在區(qū)塊鏈上確認后)更新Platform State。
就如何以最佳方式記錄和完成狀態(tài)切換的問題而言,我們提出了兩個潛在的解決方案:一是使用現(xiàn)有的區(qū)塊鏈,二是為平臺引入新的區(qū)塊鏈。
不同方案的比較
在利用現(xiàn)有區(qū)塊鏈的情況下,我們會面臨如下問題:
1. 效率低下的資源利用
由于狀態(tài)切換僅在主節(jié)點上進行,因此,使用現(xiàn)有的區(qū)塊鏈意味著額外占用磁盤空間并增加整個網(wǎng)絡(luò)的網(wǎng)絡(luò)負載。這是因為我們需要礦工完成處理并將狀態(tài)切換更新到區(qū)塊鏈上。這意味著這些區(qū)塊將在整個網(wǎng)絡(luò)中傳播并存儲在所有的全節(jié)點上。
2. 狀態(tài)切換費用不明或增加
在涉及礦工的情況下,負責處理和存儲數(shù)據(jù)的主節(jié)點和礦工都將收取狀態(tài)切換的相關(guān)費用。由于現(xiàn)有區(qū)塊鏈的費用可能會因交易規(guī)模和區(qū)塊容量等因素而不同,因此此類費用充滿了不確定性。對于希望采用Dash Platform的企業(yè)和開發(fā)人員而言,他們更青睞費用明確的服務(wù)方案,以便做出預(yù)算和規(guī)劃。
3. 輕型客戶端的低效率的數(shù)據(jù)驗證
諸如SPV等輕型客戶端的平臺數(shù)據(jù)驗證將變得復(fù)雜且低效。僅以memo.dash.為例,如果這個客戶端要想驗證備忘錄存在于Platform State上且沒有遭到惡意篡改,那么用戶就必須下載每份備忘錄的區(qū)塊頭、可信樹證明與狀態(tài)切換。
4. 因區(qū)塊確認時長而造成的糟糕的用戶體驗
2.5分鐘的區(qū)塊間隔時間對用戶來說是不可接受的。假設(shè)用戶創(chuàng)建了一個備忘錄,那么他們將需要等待幾分鐘才能看到它出現(xiàn)在應(yīng)用程序中。期間的等待是為了在區(qū)塊鏈上確認狀態(tài)切換。盡管我們可以通過類似即時發(fā)送功能的過程鎖定狀態(tài)切換,但卻不能保證礦工會將其放入下一個區(qū)塊(或任何特定的區(qū)塊)當中。
5.現(xiàn)有的區(qū)塊鏈變得更復(fù)雜且面臨更高的風險
在現(xiàn)有的區(qū)塊鏈中引入狀態(tài)切換和平臺的其它功能后,區(qū)塊鏈將進一步復(fù)雜化,而系統(tǒng)的最關(guān)鍵的性能——支付功能出錯或遭攻擊的風險也會提高。
而如果我們采用另一個解決方案,為Dash Platform引入新的區(qū)塊鏈,我們將解決上述問題。
1. 高效的資源利用
在主節(jié)點網(wǎng)絡(luò)上另外運行Platform Chain將減少網(wǎng)絡(luò)的整體負載和現(xiàn)有區(qū)塊鏈的規(guī)模。
2.低廉且明確的狀態(tài)切換費用
在不涉及礦工的情況下,僅需向主節(jié)點支付狀態(tài)切換費用。這減少了使用Dash Platform所需的成本并簡化了計算過程。換言之,狀態(tài)切換的費用僅取決于數(shù)據(jù)大小和數(shù)據(jù)處理操作的復(fù)雜性。由于成本是預(yù)先設(shè)定的,企業(yè)和開發(fā)人員可以在將相關(guān)費用發(fā)送到去中心化應(yīng)用程序接口之前進行準確的計算。
3.輕型客戶端的便捷的數(shù)據(jù)驗證
為了便于輕型客戶端驗證數(shù)據(jù),我們將Platform State存儲為可信樹森林(即多層得可信樹的平方),并將可信樹根保存在區(qū)塊標題中。回到我們之前的示例,如果要驗證memo.dash中的任何備注,用戶只需要獲得可信樹證明和仲裁鏈簽名的最后一個區(qū)塊頭即可。這種以狀態(tài)為中心的方法使輕型客戶端的驗證比傳統(tǒng)的SPV還要簡單。此外,開設(shè)新的區(qū)塊鏈還降低了區(qū)塊的重要性,這意味著我們無需擔心區(qū)塊鏈數(shù)據(jù)碎片,而只需保留最新的區(qū)塊。
4.更快捷的狀態(tài)切換和更好的用戶體驗
在另行運行區(qū)塊鏈的同時,我們將執(zhí)行符合平臺要求的共識協(xié)議。盡管不再使用工作量證明,我們依然可以依靠自帶獎勵機制的主節(jié)點并建立以服務(wù)量證明為基礎(chǔ)的共識機制。如果主節(jié)點不提供服務(wù)或行為不當,那么它們將會受到相應(yīng)的懲罰。因此,利用主節(jié)點仲裁進行區(qū)塊提議和驗證有助于將區(qū)塊間隔降低至幾秒鐘并確保絕對的確定性。因為無需處理區(qū)塊鏈重組的問題,因此這將簡化Platform State和Drive。
5.降低核心功能所面臨的風險
另行引入新的區(qū)塊鏈意味著Dash Platform會與當前的達世幣功能分離開來,而新的區(qū)塊鏈將成為第二個層級。由于新的區(qū)塊鏈不會影響到現(xiàn)有的區(qū)塊鏈,因此,即便Dash Platform出現(xiàn)什么問題,它也不會影響到現(xiàn)有的區(qū)塊鏈及其支付功能。
結(jié)論
最終,我們決定引入新的區(qū)塊鏈,從而實現(xiàn)提供最佳用戶體現(xiàn)的目標。這一操作不僅讓Dash Platform的應(yīng)用無異于非加密數(shù)字貨幣應(yīng)用程序,同時也保留了區(qū)塊鏈的安全優(yōu)勢。Platform Chain的出現(xiàn)是為了實現(xiàn)優(yōu)化版用戶體驗所需的交易速度并支持系統(tǒng)的網(wǎng)絡(luò)及存儲的擴容性。 Dash Platform與現(xiàn)有區(qū)塊鏈的獨立運行還將簡化達世幣生態(tài)體系的架構(gòu)。綜合來看,多重優(yōu)勢使得引入新的區(qū)塊鏈成為了顯而易見的最佳選擇。