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