什麼是DApp?多角度清晰認識Dapp

可能是因爲幣圈還處於發展的早期,還可能是幣圈去中心化而沒有權威的原因,幣圈的絕大多數概念定義都不是非常清晰的。Dapp也一樣,各有各的定義。Dapp,從字面意思是:去中心化應用。D是decentralized,即去中心化。app是application,即應用,和我們常用的手機app是一樣的概念。

從用戶下載和使用角度來看dapp。

App最常見的就是在手機端下載使用,還有些App是以插件的形式在瀏覽器上使用,在MacOS和win10上也會有App。
Dapp也可以運行在多種平臺上。

目前用戶最常用的dapp是運行在加密數字貨幣錢包裏。用戶首先要下載錢包,dapp是由開發者和錢包商合作,呈現在錢包的界面上。用戶通過錢包作爲dapp的入口。

Dapp的第二大運行平臺是瀏覽器。在瀏覽器上有數字貨幣錢包,以插件形式存在。比如被廣泛使用的MetaMask狐狸錢包。用戶可以通過MetaMask來加載Dapp。

還有一些Dapp本身就是一個網站,這也有以一個網頁形式存在的錢包。網頁錢包和插件錢包的最大區別是,插件錢包可以離線使用,但網頁錢包是無法離線的。用戶無論使用什麼方式進入Dapp,都是需要使用錢包。這有點像是微信的小程序。

用戶基本的使用過程是這樣的,用戶和dapp的交互行爲是用戶發送一筆包含特殊信息的交易(這些特殊信息就是由dapp定義的),dapp通過用戶界面,來方便使用構造交易;交易構造好後,交給錢包私鑰簽名;簽名後,廣播交易到區塊鏈。

用戶的交易提交到區塊鏈後,dapp會監聽用戶的地址,在用戶界面上顯示區塊鏈處理後的結果。

用戶使用Dapp就是Dapp的用戶界面協助用戶構造交易,交易提交給錢包簽名,錢包廣播交易,Dapp監聽區塊鏈,給用戶反饋結果。這是帶錢包的Dapp,目前大多數人認爲Dapp就應該是這樣。

還有一部分人認爲,Dapp還可以是不帶錢包的。比如區塊鏈瀏覽器就是一個Dapp,用戶通過瀏覽器輸入特定的地址,然後瀏覽器反饋給用戶一些數據。這個過程不需要簽名交易。區塊瀏覽器作爲一個Dapp的作用就是幫用戶解析交易信息。

從產品設計原理角度來定義dapp。

和常規的app採用的服務器和客戶端不一樣,dapp增加了區塊鏈端。一般dapp也會有服務器,服務器一般會運行區塊鏈的全節點,以保持對區塊鏈的交互。

從設計角度說,Dapp=服務器+智能合約(區塊鏈端)+客戶端。

從執行任務角度來分,客戶端負責發交易,智能合約負責執行交易,服務器負責解析交易。我這裏說的是核心任務,在實際運行當中,各個部分會有多種任務。有些Dapp設計沒有服務器,這就是純粹的點對點的用戶之間藉助區塊鏈來交互。

從計算機運行原理角度來定義dapp

任何程序都需要消耗三種資源,存儲、計算和帶寬。Dapp也一樣。

Dapp一般會將數據存在區塊鏈上。交易肯定是要在區塊鏈上的。幣圈很主流的看法是,真正的Dapp數據都應該是來自區塊鏈。
但事實上,大量的Dapp都是需要鏈外數據才能運行。

Dapp的計算,一般會在服務器和區塊鏈上。智能合約承載了最重要的計算任務,這部分是由區塊鏈上的節點完成的。智能合約完成核心的計算是保證Dapp不可作弊的最重要設計。

計算可以認爲是加工數據的算法。Dapp常規的算法設計是設計成智能合約。有些Dapp會將算法代碼開源,並存儲在區塊鏈上公開,但算法的實際運算需要服務器來完成,區塊鏈並不執行計算任務。像去中心化的交易所,就是由服務器加智能合約來完成計算。

以太坊,EOS上的Dapp,基本上計算都是智能合約來完成。Dappreview上收錄的Dapp也基本上是這一類。
BCH和BSV這一類UTXO式的區塊鏈,計算任務基本上是由服務器來完成。

Dapp的數據傳輸一般是藉助區塊鏈網絡來完成。

從去中心化和中心化視角來看Dapp。

Dapp嚴格來說都是去中心化的,但基本上所有的dapp都會有運營的主體,基本上是一家公司在運營。嚴格的去中心化的dapp是不會倒閉的。我們可以從會不會倒閉來看Dapp。

數據100%是存儲在區塊鏈上的Dapp,很難倒閉。哪怕是運營主體倒閉了,但其他人可以撿起來接着做下去。就像區塊鏈瀏覽器(如果你認爲它是Dapp的話),就是典型的不會倒閉的Dapp。

一般來說,我們可以將不會倒閉的Dapp,定義成某種協議,協議是永恆的。

現在存在的大部分Dapp都會倒閉的,就是中心化的。主要是因爲,有很多核心的數據或計算在鏈外,只要運營主體不去經營了,別人無法延續這些數據和計算。

但中心化的Dapp並不是要否認其價值,因爲藉助了區塊鏈,可以在防作弊上做到很好,更公平。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章