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