dApp設(shè)計模式區(qū)塊鏈
去中心化應(yīng)用(dApp)生態(tài)是區(qū)塊鏈能否走向主流人群的關(guān)鍵。在作者看來,dApp是一種應(yīng)用程序設(shè)計模式,它通過在對等節(jié)點網(wǎng)絡(luò)上分發(fā)關(guān)鍵組件來增強現(xiàn)代web應(yīng)用程序。要想讓現(xiàn)實世界卷入代幣經(jīng)濟(jì),需要找到兩者結(jié)合的方式。而目前來說,其中重要的入口就是去中心化的應(yīng)用程序。
去中心化應(yīng)用(dApp)生態(tài)是區(qū)塊鏈能否走向主流人群的關(guān)鍵。在作者看來,dApp是一種應(yīng)用程序設(shè)計模式,它通過在對等節(jié)點網(wǎng)絡(luò)上分發(fā)關(guān)鍵組件來增強現(xiàn)代web應(yīng)用程序。要想讓現(xiàn)實世界卷入代幣經(jīng)濟(jì),需要找到兩者結(jié)合的方式。而目前來說,其中重要的入口就是去中心化的應(yīng)用程序。本文作者M(jìn)ike Roth,Radar Relay CTO,文章來源于medium.com,由藍(lán)狐筆記社群“Leo”翻譯。
什么是去中心化應(yīng)用(dApp)?
去中心化應(yīng)用的定義是動態(tài)的,它會隨著去中心化生態(tài)系統(tǒng)的成熟和命名慣例及定義等因素而發(fā)生變化。
我們認(rèn)為去中心化應(yīng)用是一種應(yīng)用程序的設(shè)計模式,它通過在對等節(jié)點網(wǎng)絡(luò)上分發(fā)關(guān)鍵組件來增強現(xiàn)代web應(yīng)用程序。
去中心化不是二元的,它有一個范圍。設(shè)計良好的dApp利用現(xiàn)有的web應(yīng)用程序基礎(chǔ)和分發(fā)應(yīng)用程序的關(guān)鍵組件,可降低風(fēng)險,確保優(yōu)秀的用戶體驗。
在Radar Relay 中,我們依靠0X協(xié)議和web3存儲用戶的交易意圖,同時無須訪問用戶的個人信息或代幣。與此同時,我們利用現(xiàn)代web應(yīng)用程序基礎(chǔ)架構(gòu)(如kubernetes)來實現(xiàn)可靠的web服務(wù)器基礎(chǔ)架構(gòu)。這樣的架構(gòu)降低在私有服務(wù)器上存儲敏感信息的風(fēng)險,同時保持現(xiàn)代web應(yīng)用程序的效率和用戶體驗。
現(xiàn)代web應(yīng)用程序
現(xiàn)代web app基礎(chǔ)設(shè)施
要了解dApp的發(fā)展方向,先來了解現(xiàn)代web應(yīng)用程序很有必要。
數(shù)十年的技術(shù)進(jìn)步帶來一些創(chuàng)新,包括互聯(lián)網(wǎng)協(xié)議套件、web服務(wù)提供商(AWS、GCP、Azure)、標(biāo)記和編程語言(HTML、CSS、Javascript)等。
所有這些基礎(chǔ)技術(shù)允許應(yīng)用在幾秒或更短時間內(nèi)加載,擁有漂亮的用戶界面,為用戶提供前所未有的信息和工具訪問。
現(xiàn)代應(yīng)用程序能夠為人類解決不少問題,但并不能解決所有問題。它有一些潛在的缺點。而dApp的設(shè)計模式就是對這些缺點作出的反應(yīng),也就是說,dApp很重要的目的就是要增強目前的web應(yīng)用程序基礎(chǔ)架構(gòu)。
去中心化應(yīng)用(dApp)的主要目標(biāo)
減輕單點故障(SPOF)
分布式數(shù)據(jù)(緩解SPOF)
現(xiàn)代web應(yīng)用程序依賴的基礎(chǔ)設(shè)施,其中存在單點故障的問題。這些單點故障包括服務(wù)器基礎(chǔ)設(shè)施、代碼庫、數(shù)據(jù)庫等。隨著高可用性和可靠的基礎(chǔ)設(shè)施服務(wù)商(GCP和AWS等)出現(xiàn),減輕單點故障方面取得進(jìn)展,但強如亞馬遜,也會出現(xiàn)2018年初的停運,很難避免停機。
dApp通過在多個對等節(jié)點網(wǎng)絡(luò)上存儲數(shù)據(jù)或基礎(chǔ)架構(gòu)的關(guān)鍵組件來緩解這些問題。如果網(wǎng)絡(luò)中的每個參與者都擁有數(shù)據(jù)副本,則數(shù)據(jù)很難丟失。
減少對中心機構(gòu)的依賴
“在軟件中,業(yè)務(wù)邏輯是程序的一部分,它編碼確定如何創(chuàng)建、存儲和更改數(shù)據(jù)的現(xiàn)實業(yè)務(wù)規(guī)則?!睒I(yè)務(wù)邏輯本質(zhì)上是一組合約,規(guī)定業(yè)務(wù)對象如相互交互、并定義用戶或其他對象如何訪問和更新對象。
在傳統(tǒng)的web應(yīng)用程序中,這些業(yè)務(wù)邏輯合約是在可變的軟件中實現(xiàn)。軟件在初始創(chuàng)建后可以進(jìn)行修改,同時也在不能保證防篡改和可審計的私有服務(wù)器上運行。
而分布式賬本則提供了一種在可以防篡改、不可變、完全可審計的程序中構(gòu)建和執(zhí)行業(yè)務(wù)邏輯的方法——智能合約。使用智能合約的dApp的用戶都可以驗證智能合約中的實現(xiàn)邏輯,包括檢查邏輯交互的輸入、執(zhí)行狀態(tài)和輸出。智能合約無法隨意修改,可以減少對中心化機構(gòu)的信任。
提高安全性
鑒于上述兩點,可以通過減輕當(dāng)前應(yīng)用程序架構(gòu)中的常見風(fēng)險來提高應(yīng)用程序的安全性。更具體地說,通過引入客戶端加密,dApp在將某些類型的信息發(fā)送到應(yīng)用程序的服務(wù)器之前對其進(jìn)行保護(hù)或加密。用戶可以使用其加密密鑰直接訪問數(shù)據(jù),而無需通過數(shù)據(jù)網(wǎng)關(guān)(如公司的服務(wù)器或API)。
利用網(wǎng)絡(luò)效應(yīng)
現(xiàn)代web應(yīng)用程序能夠利用網(wǎng)絡(luò)效應(yīng)創(chuàng)建有粘性的服務(wù),同時試圖盡可能地獲取最大的市場份額。一個很好的案例是OAuth或“Login with X”。Google和Facebook可以提供一個連貫的跨產(chǎn)品服務(wù),但也會受其用戶群范圍和存儲在其私有服務(wù)器中信息的限制。
dApp則可以利用公開賬本和分布式存儲作為事實來源。最終,它可以提供與網(wǎng)絡(luò)中的所有資源參與者成正比的身份/認(rèn)證,許可規(guī)則和數(shù)據(jù)訪問。
密碼學(xué)和分布式賬本
目前正在使用的一些技術(shù)構(gòu)成了dApp生態(tài)系統(tǒng)的一些基礎(chǔ)構(gòu)建塊,可以讓dApp能夠?qū)崿F(xiàn)其主要目標(biāo)。
dApp技術(shù)
分布式數(shù)據(jù)存儲,它是無須信任的數(shù)據(jù)存儲。數(shù)據(jù)存儲解決方案,如分布式賬本(區(qū)塊鏈)、IPFS(星際文件系統(tǒng))、Swarm,它們可以在多個節(jié)點上存儲數(shù)據(jù)。
分布式業(yè)務(wù)邏輯,它是無須信任的執(zhí)行業(yè)務(wù)邏輯。之前提到的以太坊智能合約之類的技術(shù)可以讓業(yè)務(wù)邏輯在分布式賬本上執(zhí)行。
客戶端加密,主要是為終端用戶加密。區(qū)塊鏈錢包,以太坊Clef和Parity-UI將加密功能移植到客戶端。這讓用戶能夠?qū)?shù)據(jù)發(fā)送到應(yīng)用程序的服務(wù)器之前對其進(jìn)行加密或簽名。它還支持與分布式存儲解決方案和分布式賬本之間的交互。
總言之,我們把dApp看作為一種新的設(shè)計模式。這種模式使用最好的現(xiàn)代應(yīng)用程序設(shè)計,并通過區(qū)塊鏈和點對點技術(shù)進(jìn)行加強。隨著思想、資源、創(chuàng)新進(jìn)入這個領(lǐng)域,未來它會成為歷史上最具活力的生態(tài)系統(tǒng)之一,從而推動代幣經(jīng)濟(jì)體系的形成。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補充。