去中心化應用,或者叫DAPP,是一種不依賴于中心化服務器的應用。相反,DAPP使用像是區(qū)塊鏈和預言機這些Web3技術,來實現(xiàn)自己的邏輯和后臺功能,具備不可篡改和安全的特性。 去中心化應用是什么?搭建v(punk2558) 與傳統(tǒng)的App在中心化服務器運行后端代碼不同的是,DAPP的后端代碼是運行在區(qū)塊鏈上的。當然,DAPP的前端代碼和UI可以使用任何語言開發(fā),可以部署在任何服務器上與后端邏輯相交互。 由于將后端邏輯置于高度安全、防篡改的智能合約中,DAPP享有許多傳統(tǒng)Web2系統(tǒng)無法獲得的優(yōu)勢: 因為DAPP可以通過安全性很高且不可篡改的智能合約來承載后端邏輯,所以DAPP有很多Web2系統(tǒng)中沒有的優(yōu)勢: 不會宕機 隱私性更強 抗操縱 在最小信任環(huán)境下執(zhí)行邏輯 然而,這些優(yōu)勢也帶來了對應的缺點。因為代碼是部署在區(qū)塊鏈上,這些邏輯默認是無法修改的,所以DAPP的維護難度比較高。除此以外,因為代碼是運行在分布式網(wǎng)絡中,而不是中心化服務器,所以性能會比較低。另外,由于用戶需要有Web3錢包并且通過有足夠的加密資產來支付手續(xù)費,所以用戶體驗也會下降。 DAPP組件 DAPP的組件會有三個不同的類型:智能合約,前端邏輯(UI)和數(shù)據(jù)存儲。 智能合約 智能合約存儲了DAPP的業(yè)務邏輯和當前的狀態(tài),這個是DAPP和傳統(tǒng)網(wǎng)絡應用的最大區(qū)別,也正是因為這一點讓DAPP具備了以上提到過的優(yōu)勢。 前端/UI 盡管后端邏輯需要開發(fā)者完成智能合約代碼,并把它部署在區(qū)塊鏈上,但是在前端,開發(fā)者還是使用標準的網(wǎng)絡技術,比如HTML和javascript,因此開發(fā)者可以使用自己熟悉的工具,庫和框架。客戶端的UI通常通過Web3.js和Ether.js與智能合約交互。像是對信息進行簽名并且發(fā)送給智能合約這些操作,通常是通過瀏覽器的Web3錢包MetaMask完成。 數(shù)據(jù)存儲 大多數(shù)應用需要存儲數(shù)據(jù),但是因為區(qū)塊鏈分布式的特點,在鏈上存儲大量的數(shù)據(jù)效率很低,而且非常貴。這也是為什么許多DAPP需要使用IPFS或者Filecoin這樣的鏈下存儲服務來存儲數(shù)據(jù),只讓區(qū)塊鏈存儲重要的業(yè)務邏輯和狀態(tài)。 當然你也可以選擇傳統(tǒng)的云存儲服務,然而還是有很多開發(fā)者選擇分布式存儲,因為區(qū)塊鏈應用可以提供最小信任的特性。 |