什幺是DApp

新手Dec 01, 2022
DApp 全稱 Decentralized Application ,即去中心化應用。 DApp 是一個與傳統互聯網行業中的 App(應用程序)相對應的概念,也是區塊鏈世界中各種服務(如 DeFi、NFT 等)的實際提供者。諸多 DApps 與各大公鏈以及其他項目共衕構成了紛繁復雜的區塊鏈生態。
什幺是DApp

從比特幣到以太坊:DApp 的起源

2009 年 1 月 3 日,芬蘭首都赫爾辛基,中本聰在一檯小型服務器上挖取了比特幣系統的創世區塊,由此開創出了一個迅速生長、不斷演變的加密世界。比特幣系統是基於“分布式賬本”技術而建立的,比特幣的本質實際上就是這種“分布式賬本”上所記錄的餘額( 即UXTO,未花費的交易支出 )。比特幣無疑是一個天才的構想,但它的應用卻有一定局限。基於 UXTO 的腳本語言衹能支持較為簡單的交易,這使得比特幣網絡難以實現更為復雜的實用邏輯,這種不足使得比特幣至今也衹能作為儲藏價值的“數字黃金”,而難以得到更為廣泛的應用。

以太坊與智能合約

受到比特幣啓發, 2014 年, Vitalik Buterin 在比特幣雜誌上發錶了《以太坊:一個下一代加密貨幣和去中心化應用平檯》一文,文中首次提出了通用型合約等技術,試圖從基礎協議出發創造一個具有更為廣泛應用的區塊鏈系統,這也就是我們現在所看到的智能公鏈霸主——以太坊。

在項目白皮書中, Vitalik 提到:“以太坊的目標就是提供一個帶有內置的成熟的圖靈完備語言的區塊鏈,用這種語言可以創建合約來編碼任意狀態轉換功能,用戶衹要簡單地用幾行代碼來實現邏輯,就能夠創建以上提及的所有系統以及許多我們還想象不到的其它系統。”簡單來說,這也就是打造一個能夠運行智能合約以及去中心化應用(DApp)的平檯。

智能合約如衕人與人、人與機器之間的一種“強製執行的約定”,一旦合約達成了某種預先設置好的條件,智能合約便會執行。因此,可以將智能合約視作一個“可靠的中間人”。以太坊內置專用編程語言Solidity,開發者能夠借此創建智能合約,實現區塊鏈上數字資產的轉移。智能合約是以太坊最為重要的創新,也是以太坊龐大生態系統的基石。相比比特幣的交易腳本而言,以太坊的智能合約是圖靈完備的,這意味著以太坊在理論上能實現任何可能的計算,從而具有無限的可能。

以太坊虛擬機與DApp

如果說比特幣的本質是一個具有一定腳本處理功能的“分布式賬本”,那幺以太坊可能更接近於一個“分布式狀態機”。在以太坊中,賬戶被分為兩類,一類是由普通用戶使用私鑰控製的外部賬戶(Externally Owned Account),一類則是內部儲存有合約代碼(Contract Account),沒有對應私鑰,故而不屬於任何人的合約賬戶。

整個以太坊網絡的狀態,就是一個包括網絡所有賬戶及其餘額等的狀態,以及相關狀態改變規則的大型數據結構(Merkle Patricia Tree)。隨著新的區塊不斷添加到鏈上,以太坊的狀態也不斷改變。因此,可以將以太坊視作一檯“分布式的公共計算機”(以太坊虛擬機),而諸多DApp就是這檯計算機上安裝的各種軟件程序。

在以太坊上, DApp 本質上就是一組智能合約,其中每個智能合約都有自己的合約地址。合約代碼完成後,無法自動運行,而是需要外部賬戶對合約賬戶發起交易才能啓動。在智能合約的基礎上,開發者們可以使用官方工具輕鬆開發 DApp ,並將之運行於以太坊虛擬機上。由於以太坊虛擬機的運算能力有限,用戶需要使用以太幣作為系統的“燃料”(Gas fee),才能驅動 DApp 和虛擬機的運行。

DApp生態爆發

自以太坊智能合約誕生以來, DApps 數量不斷增多,覆蓋領域也在不斷擴展。在以太坊白皮書中, Vitalik 設想了以太坊技術的三類應用:非金融應用(Non-financial)、半金融應用(Semi-financial)以及金融應用(Financial)。非金融應用包括在綫投票、去中心化治理等;半金融應用如智能懸賞支付等;而以太坊的金融應用(即DeFi)可能是影響力最大的,以太坊提供了靈活可靠的合約方法,能夠建立協議原生代幣、金融衍生品、對沖合約等應用。

儘管以太坊是 DApp 生態最為豐富的頭號公鏈噹之無愧,但它也麵臨著網絡擁堵、性能不足、手續費過高等問題。後來,隨著新一代高性能智能公鏈的誕生,如 EOS、Solana、Flow 等,這些公鏈上也都建立起了各自的 DApp 生態。目前, DApps 應用的主要類別有游戲、DeFi 、NFT 藏品、Social-Fi 等,而游戲類 DApp 無論在總數量上、還是在 UAW (獨立活躍錢包數)上都占據著顯著優勢,而 DeFi (如 Dex、借貸等)類應用則在交易額上遙遙領先。

在諸如 DAppRadar、DAppReview 等數據網站上,可以查看各大區塊鏈上各類 DApp 的活躍用戶數、交易量等數據。截至 2022 年 11 月,僅 DappRadar 上收錄的 DApp 數量就已經達到了 12,000 個以上。


圖:DAppRadar

DApp的組成與特點

DApp 與傳統互聯網中的 App 有諸多相似之處,DApp 與區塊鏈的關系也類似於 App與 IOS 或 Android 等操作系統的關系,正如 App 運行在各種操作系統上,DApp 運行在區塊鏈上。對於用戶來說,通過瀏覽器使用一個 DApp 的感受可能和使用一個 Web 2 時代的 SaaS 軟件沒有什幺差別。一個完整的 App 具有後端(業務模塊)、數據庫(儲存模塊)、前端(用戶界麵)三層結構,而一個典型的 DApp 也由相似功能的三個部分組成。

業務模塊:智能合約

智能合約是實現 DApp 業務邏輯的程序基礎。智能合約儲存於區塊鏈上的合約地址中,輸入的數據會在各個合約地址之間流轉傳遞,根據預設的邏輯實現 DApp 的功能,並引發整個虛擬機的狀態轉變。不過與傳統 App 不衕的是,智能合約也會儲存 DApp 噹前的狀態,這也是區塊鏈本身所具有的性質。

儲存模塊:數據儲存

無論是 App 還是 DApp,其運行過程的本質都是數據流動的過程。數據從儲存模塊流動到業務模塊進行處理,再通過前端與用戶進行交互。App 的數據一般儲存在中心化的服務器中,DApp 的數據可以完全儲存於鏈上,但出於效率和成本的考慮,許多 DApps 會將數據儲存於鏈下,比如 IPFS 這樣的分布式儲存服務中,而衹在區塊鏈上儲存重要的業務模塊數據。

用戶界麵:前端交互

前端是 DApp 與用戶進行交互的接口,一般用戶可以通過訪問前端便捷地使用智能合約代碼,而無需掌握復雜的編程知識。在前端方麵,DApp 與 App 差異不大,兩者都是通過 HTML、JavaScript 等一般技術開發的。不過由於使用 DApp 需要與區塊鏈上的智能合約進行交互,前端需要提供支持錢包應用(如 Metamask)的程序接口,以支持簽名等服務。


圖:以太坊 DApp 架構 來源:The Architecture of a Web3 Application

相較傳統 App 而言,DApp 往往具有如下特點:

DApp 不依賴於中心化的服務器,而是依賴於區塊鏈,運行於去中心化的虛擬機上。這是 DApp 最為本質的特點,也給予了 DApp 顯著的優缺點。

  • 優點一:永不停機。對於普通 App 而言,一旦中心化服務器發生故障,程序就會徹底無法使用;但對於 DApp 而言,單個節點宕機並不會影響程序在區塊鏈上的運行。由於智能合約一旦上鏈就不會停止運行,因此,DApp 的運營成本往往比傳統 App 更低。

  • 優點二:無需許可。與 DApp 交互衹需通過錢包地址,而無需曏申請一般金融賬戶一樣,必須交付完整的個人信息才能使用,不僅不必透露個人隱私,還大幅降低門檻,任何衹要有加密貨幣錢包的人都能輕易訪問大多數的 DApps。

  • 優點三:Code is Law。區塊鏈的不可篡改特性,讓 DApp 大部分依賴智能合約的代碼邏輯運作,因此一旦完成上鏈,除非開發者保留更改權限,基本上是無法進行修改的;且應用一旦被部署至區塊鏈上,就會永久存在,理論上無法限定世界上的任何人的訪問。

  • 缺點一:受可拓展性限製,DApp 運作效率低。受到去中心化的限製,DApp 的運行效率一般比傳統 App 更低,甚至可能因為區塊鏈擁堵而暫時無法使用。

  • 缺點二:理論上所有需要上鏈的行為都需要支付費用。由於區塊鏈虛擬機處理能力有限,用戶與 Dapp 交互,需曏網絡支付一定量的 gas fee,對於習慣了傳統免費 App 的用戶,一時將難以接受。

  • 缺點三:智能合約維護難度高。智能合約代碼一旦上鏈就難以進行修改,這使得 DApp 的開發、維護難度更高,一旦代碼出現紕漏也難以及時修復。

DApp的代碼往往是開源的

由於區塊鏈是去中心化的,DApp 的代碼需要供所有社區成員公開訪問。這也給了用戶自行進行代碼分析、判斷項目潛力的機會。

通證機製

DApp 的功能往往是借由各種通證實現的,可以是對應區塊鏈的通證(如ETH),也可能是 DApp 自行發行的通證(如UNI)。

DApp發展的瓶頸

儘管 DApp 生態正在如火如荼地發展,但相較 Web2 時代的世界級應用而言,DApp 的總體影響力仍然較為有限。而 DApp 生態落地的過程中,可能麵臨著如下瓶頸:

用戶規模與學習門檻

在日活方麵,UAW 能夠超過 1 萬的 DApps 基本不超過 100 個,最為流行的 DApp 每日也約衹能獲得數十萬獨立地址,這在 Web2 領域動輒上億的日活麵前顯得相形見絀。

對於用戶而言,使用 DApp 仍然需要掌握錢包、區塊鏈等基礎實施,從 Web2 應用切換到提供對應功能的 DApp 需要付出學習成本。而 DApp 所承諾的抗審查、隱私性等特性,暫時也難以顯現出其真正的價值,這使得 DApp 仍然屬於加密極客圈子裏的小眾產品,而難以獲得更大規模的一般用戶。

產品迭代與安全風險

在 Web2 時代,產品往往遵循“小步快跑,快速迭代”的開發法則,以此搶先獲取用戶,並在運營中不斷提高產品質量。而對於 DApp 來說,合約代碼一旦上綫就難以更改,若是上綫後代碼出現重大漏洞,更會給整個生態帶來無法消除的嚴重影響。為此,項目方必須在 DApp 上綫前就做好產品設計和代碼審計,規避一切可能問題。

區塊鏈基礎設施

目前的頭號智能公鏈以太坊存在效率過低、費用過高的問題,相較 VISA 高達 24000 的 TPS,以太坊僅約 15 的 TPS 難以滿足其成為“全球結算層”的願景。未來區塊鏈能否真正突破不可能三角,達成效率、安全性與去中心化三者之間的平衡,仍然需要時間的檢驗。

結語

DApp 是下一代互聯網即 Web3 的關鍵,可能為信息產業帶來嶄新的業態。從使用上來說,DApp 的體驗往往與 Web2 時代的應用十分接近,但 DApp 實際上具有抗審查、隱私性強的顯著特點。

此外,使用 DApp 需要連接錢包應用,因此與用戶的個人財產息息相關。在將錢包連接到 DApp 前,需要仔細判斷 DApp 的安全性,最好選擇有可靠機構代碼審計的 DApp,以避免發生財產損失。

作者: Edward
譯者: Piper
文章審校: Hugo, Cedric, Ashley
* 投資有風險,入市須謹慎。本文不作為Gate.io提供的投資理財建議或其他任何類型的建議。
* 在未提及Gate.io的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io有權追究其法律責任。

什幺是DApp

新手Dec 01, 2022
DApp 全稱 Decentralized Application ,即去中心化應用。 DApp 是一個與傳統互聯網行業中的 App(應用程序)相對應的概念,也是區塊鏈世界中各種服務(如 DeFi、NFT 等)的實際提供者。諸多 DApps 與各大公鏈以及其他項目共衕構成了紛繁復雜的區塊鏈生態。
什幺是DApp

從比特幣到以太坊:DApp 的起源

2009 年 1 月 3 日,芬蘭首都赫爾辛基,中本聰在一檯小型服務器上挖取了比特幣系統的創世區塊,由此開創出了一個迅速生長、不斷演變的加密世界。比特幣系統是基於“分布式賬本”技術而建立的,比特幣的本質實際上就是這種“分布式賬本”上所記錄的餘額( 即UXTO,未花費的交易支出 )。比特幣無疑是一個天才的構想,但它的應用卻有一定局限。基於 UXTO 的腳本語言衹能支持較為簡單的交易,這使得比特幣網絡難以實現更為復雜的實用邏輯,這種不足使得比特幣至今也衹能作為儲藏價值的“數字黃金”,而難以得到更為廣泛的應用。

以太坊與智能合約

受到比特幣啓發, 2014 年, Vitalik Buterin 在比特幣雜誌上發錶了《以太坊:一個下一代加密貨幣和去中心化應用平檯》一文,文中首次提出了通用型合約等技術,試圖從基礎協議出發創造一個具有更為廣泛應用的區塊鏈系統,這也就是我們現在所看到的智能公鏈霸主——以太坊。

在項目白皮書中, Vitalik 提到:“以太坊的目標就是提供一個帶有內置的成熟的圖靈完備語言的區塊鏈,用這種語言可以創建合約來編碼任意狀態轉換功能,用戶衹要簡單地用幾行代碼來實現邏輯,就能夠創建以上提及的所有系統以及許多我們還想象不到的其它系統。”簡單來說,這也就是打造一個能夠運行智能合約以及去中心化應用(DApp)的平檯。

智能合約如衕人與人、人與機器之間的一種“強製執行的約定”,一旦合約達成了某種預先設置好的條件,智能合約便會執行。因此,可以將智能合約視作一個“可靠的中間人”。以太坊內置專用編程語言Solidity,開發者能夠借此創建智能合約,實現區塊鏈上數字資產的轉移。智能合約是以太坊最為重要的創新,也是以太坊龐大生態系統的基石。相比比特幣的交易腳本而言,以太坊的智能合約是圖靈完備的,這意味著以太坊在理論上能實現任何可能的計算,從而具有無限的可能。

以太坊虛擬機與DApp

如果說比特幣的本質是一個具有一定腳本處理功能的“分布式賬本”,那幺以太坊可能更接近於一個“分布式狀態機”。在以太坊中,賬戶被分為兩類,一類是由普通用戶使用私鑰控製的外部賬戶(Externally Owned Account),一類則是內部儲存有合約代碼(Contract Account),沒有對應私鑰,故而不屬於任何人的合約賬戶。

整個以太坊網絡的狀態,就是一個包括網絡所有賬戶及其餘額等的狀態,以及相關狀態改變規則的大型數據結構(Merkle Patricia Tree)。隨著新的區塊不斷添加到鏈上,以太坊的狀態也不斷改變。因此,可以將以太坊視作一檯“分布式的公共計算機”(以太坊虛擬機),而諸多DApp就是這檯計算機上安裝的各種軟件程序。

在以太坊上, DApp 本質上就是一組智能合約,其中每個智能合約都有自己的合約地址。合約代碼完成後,無法自動運行,而是需要外部賬戶對合約賬戶發起交易才能啓動。在智能合約的基礎上,開發者們可以使用官方工具輕鬆開發 DApp ,並將之運行於以太坊虛擬機上。由於以太坊虛擬機的運算能力有限,用戶需要使用以太幣作為系統的“燃料”(Gas fee),才能驅動 DApp 和虛擬機的運行。

DApp生態爆發

自以太坊智能合約誕生以來, DApps 數量不斷增多,覆蓋領域也在不斷擴展。在以太坊白皮書中, Vitalik 設想了以太坊技術的三類應用:非金融應用(Non-financial)、半金融應用(Semi-financial)以及金融應用(Financial)。非金融應用包括在綫投票、去中心化治理等;半金融應用如智能懸賞支付等;而以太坊的金融應用(即DeFi)可能是影響力最大的,以太坊提供了靈活可靠的合約方法,能夠建立協議原生代幣、金融衍生品、對沖合約等應用。

儘管以太坊是 DApp 生態最為豐富的頭號公鏈噹之無愧,但它也麵臨著網絡擁堵、性能不足、手續費過高等問題。後來,隨著新一代高性能智能公鏈的誕生,如 EOS、Solana、Flow 等,這些公鏈上也都建立起了各自的 DApp 生態。目前, DApps 應用的主要類別有游戲、DeFi 、NFT 藏品、Social-Fi 等,而游戲類 DApp 無論在總數量上、還是在 UAW (獨立活躍錢包數)上都占據著顯著優勢,而 DeFi (如 Dex、借貸等)類應用則在交易額上遙遙領先。

在諸如 DAppRadar、DAppReview 等數據網站上,可以查看各大區塊鏈上各類 DApp 的活躍用戶數、交易量等數據。截至 2022 年 11 月,僅 DappRadar 上收錄的 DApp 數量就已經達到了 12,000 個以上。


圖:DAppRadar

DApp的組成與特點

DApp 與傳統互聯網中的 App 有諸多相似之處,DApp 與區塊鏈的關系也類似於 App與 IOS 或 Android 等操作系統的關系,正如 App 運行在各種操作系統上,DApp 運行在區塊鏈上。對於用戶來說,通過瀏覽器使用一個 DApp 的感受可能和使用一個 Web 2 時代的 SaaS 軟件沒有什幺差別。一個完整的 App 具有後端(業務模塊)、數據庫(儲存模塊)、前端(用戶界麵)三層結構,而一個典型的 DApp 也由相似功能的三個部分組成。

業務模塊:智能合約

智能合約是實現 DApp 業務邏輯的程序基礎。智能合約儲存於區塊鏈上的合約地址中,輸入的數據會在各個合約地址之間流轉傳遞,根據預設的邏輯實現 DApp 的功能,並引發整個虛擬機的狀態轉變。不過與傳統 App 不衕的是,智能合約也會儲存 DApp 噹前的狀態,這也是區塊鏈本身所具有的性質。

儲存模塊:數據儲存

無論是 App 還是 DApp,其運行過程的本質都是數據流動的過程。數據從儲存模塊流動到業務模塊進行處理,再通過前端與用戶進行交互。App 的數據一般儲存在中心化的服務器中,DApp 的數據可以完全儲存於鏈上,但出於效率和成本的考慮,許多 DApps 會將數據儲存於鏈下,比如 IPFS 這樣的分布式儲存服務中,而衹在區塊鏈上儲存重要的業務模塊數據。

用戶界麵:前端交互

前端是 DApp 與用戶進行交互的接口,一般用戶可以通過訪問前端便捷地使用智能合約代碼,而無需掌握復雜的編程知識。在前端方麵,DApp 與 App 差異不大,兩者都是通過 HTML、JavaScript 等一般技術開發的。不過由於使用 DApp 需要與區塊鏈上的智能合約進行交互,前端需要提供支持錢包應用(如 Metamask)的程序接口,以支持簽名等服務。


圖:以太坊 DApp 架構 來源:The Architecture of a Web3 Application

相較傳統 App 而言,DApp 往往具有如下特點:

DApp 不依賴於中心化的服務器,而是依賴於區塊鏈,運行於去中心化的虛擬機上。這是 DApp 最為本質的特點,也給予了 DApp 顯著的優缺點。

  • 優點一:永不停機。對於普通 App 而言,一旦中心化服務器發生故障,程序就會徹底無法使用;但對於 DApp 而言,單個節點宕機並不會影響程序在區塊鏈上的運行。由於智能合約一旦上鏈就不會停止運行,因此,DApp 的運營成本往往比傳統 App 更低。

  • 優點二:無需許可。與 DApp 交互衹需通過錢包地址,而無需曏申請一般金融賬戶一樣,必須交付完整的個人信息才能使用,不僅不必透露個人隱私,還大幅降低門檻,任何衹要有加密貨幣錢包的人都能輕易訪問大多數的 DApps。

  • 優點三:Code is Law。區塊鏈的不可篡改特性,讓 DApp 大部分依賴智能合約的代碼邏輯運作,因此一旦完成上鏈,除非開發者保留更改權限,基本上是無法進行修改的;且應用一旦被部署至區塊鏈上,就會永久存在,理論上無法限定世界上的任何人的訪問。

  • 缺點一:受可拓展性限製,DApp 運作效率低。受到去中心化的限製,DApp 的運行效率一般比傳統 App 更低,甚至可能因為區塊鏈擁堵而暫時無法使用。

  • 缺點二:理論上所有需要上鏈的行為都需要支付費用。由於區塊鏈虛擬機處理能力有限,用戶與 Dapp 交互,需曏網絡支付一定量的 gas fee,對於習慣了傳統免費 App 的用戶,一時將難以接受。

  • 缺點三:智能合約維護難度高。智能合約代碼一旦上鏈就難以進行修改,這使得 DApp 的開發、維護難度更高,一旦代碼出現紕漏也難以及時修復。

DApp的代碼往往是開源的

由於區塊鏈是去中心化的,DApp 的代碼需要供所有社區成員公開訪問。這也給了用戶自行進行代碼分析、判斷項目潛力的機會。

通證機製

DApp 的功能往往是借由各種通證實現的,可以是對應區塊鏈的通證(如ETH),也可能是 DApp 自行發行的通證(如UNI)。

DApp發展的瓶頸

儘管 DApp 生態正在如火如荼地發展,但相較 Web2 時代的世界級應用而言,DApp 的總體影響力仍然較為有限。而 DApp 生態落地的過程中,可能麵臨著如下瓶頸:

用戶規模與學習門檻

在日活方麵,UAW 能夠超過 1 萬的 DApps 基本不超過 100 個,最為流行的 DApp 每日也約衹能獲得數十萬獨立地址,這在 Web2 領域動輒上億的日活麵前顯得相形見絀。

對於用戶而言,使用 DApp 仍然需要掌握錢包、區塊鏈等基礎實施,從 Web2 應用切換到提供對應功能的 DApp 需要付出學習成本。而 DApp 所承諾的抗審查、隱私性等特性,暫時也難以顯現出其真正的價值,這使得 DApp 仍然屬於加密極客圈子裏的小眾產品,而難以獲得更大規模的一般用戶。

產品迭代與安全風險

在 Web2 時代,產品往往遵循“小步快跑,快速迭代”的開發法則,以此搶先獲取用戶,並在運營中不斷提高產品質量。而對於 DApp 來說,合約代碼一旦上綫就難以更改,若是上綫後代碼出現重大漏洞,更會給整個生態帶來無法消除的嚴重影響。為此,項目方必須在 DApp 上綫前就做好產品設計和代碼審計,規避一切可能問題。

區塊鏈基礎設施

目前的頭號智能公鏈以太坊存在效率過低、費用過高的問題,相較 VISA 高達 24000 的 TPS,以太坊僅約 15 的 TPS 難以滿足其成為“全球結算層”的願景。未來區塊鏈能否真正突破不可能三角,達成效率、安全性與去中心化三者之間的平衡,仍然需要時間的檢驗。

結語

DApp 是下一代互聯網即 Web3 的關鍵,可能為信息產業帶來嶄新的業態。從使用上來說,DApp 的體驗往往與 Web2 時代的應用十分接近,但 DApp 實際上具有抗審查、隱私性強的顯著特點。

此外,使用 DApp 需要連接錢包應用,因此與用戶的個人財產息息相關。在將錢包連接到 DApp 前,需要仔細判斷 DApp 的安全性,最好選擇有可靠機構代碼審計的 DApp,以避免發生財產損失。

作者: Edward
譯者: Piper
文章審校: Hugo, Cedric, Ashley
* 投資有風險,入市須謹慎。本文不作為Gate.io提供的投資理財建議或其他任何類型的建議。
* 在未提及Gate.io的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io有權追究其法律責任。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!