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