分散式應用程式

去中心化應用程序（DApp, dApp, Dapp, 或 dapp）是可以自主運行的應用程式，通常通過使用智能合約，在去中心化計算區塊鏈系統上執行。與傳統應用程式一樣，DApp 為其使用者提供一些功能或實用程式。但是，與傳統應用程式不同，DApp 無需人工干預即可執行，也不屬於任何一個實體，而是 DApp 分發代表所有權的代幣。這些代幣根據程式演演算法分配給系統使用者，稀釋了 DApp 的所有權和控制權。在沒有任何一個實體控制系統的情況下，應用程序變得去中心化。

分佈式賬本技術 (DLT) 已經普及化分散式應用程式，例如構建 DApp 的以太坊區塊鏈以及其他公有區塊鏈。

DApp 的無需信任和透明的性質導致在去中心化金融 (DeFi) 空間中利用這些功能取得了更大的發展。

DApp分為17個類別：交易所、遊戲、金融、賭博、開發、存儲、高風險、錢包、治理、財產、身份、媒體、社交、安全、能源、保險和健康。目前使用率最高的是遊戲、金融、社交。

## 定義

為了使應用程式被視為 DApp，必須滿足一系列標準。

去中心化應用程序的傳統定義要求 DApp 是開源的，即應用程式自主執行，無需集中實體控制應用程式的大部分相關代幣。DApps 還有一個公共的、去中心化的區塊鏈，應用程序使用它來保存資料的加密記錄，包括歷史交易。

雖然傳統的 DApp 通常是開放原始碼的，但隨著加密貨幣行業的發展，已經出現了完全封閉原始碼和部分封閉原始碼的 DApp。截至 2019 年，只有 15.7% 的 DApp 是完全開放原始碼的，而 25% 的 DApp 是完全封閉原始碼的。換句話說，與沒有任何程式碼披露的 DApp 相比，應用程式的程式碼及其智能合約完全可用的 DApp 所佔比例較小。開放原始碼的 DApps，其智能合約程式碼公開，通常具有更高的交易量，這表明開放原始碼 DApps 比封閉原始碼 DApps 更受歡迎。完全封閉原始碼和部分封閉原始碼的 DApps 具有隨著加密貨幣行業的發展而出現。截至 2019 年，只有 15.7% 的 DApp 是完全開放原始碼的，而 25% 的 DApp 是完全封閉原始碼的。換句話說，與沒有任何程式碼披露的 DApp 相比，應用程序程式碼及其智能合約完全可用的 DApp 所佔比例較小。

其次，應用程式使用和使用者獎勵所需的令牌（Token）必須由應用程式根據程式演演算法或標準生成。應用程式令牌的某些部分通常在應用程式操作開始時分發。

最後，應用程式的協定必須能夠在應用程式使用者多數同意的情況下進行調整，例如根據市場回饋對應用程式進行改進。

### 比特幣作為 DApp

比特幣是第一個加密貨幣, 是 DApp 的一個例子。

比特幣是開放原始碼的。比特幣區塊鏈上的所有交易都是開放和公開的，應用程式的執行不受任何中心化實體的控制。自應用程式開始以來的每筆比特幣交易都是公開可用且不可變的。比特幣通過對礦工的區塊獎勵來生成自己的比特幣代幣，以保護網路安全。每開採 210,000 個區塊或大約每四年將區塊獎勵減半，以限制對比特幣的通貨膨脹影響，將比特幣的總數量限制在 2100 萬。對比特幣的更改必須通過比特幣的工作量證明機制進行，該機制只能通過比特幣使用者的多數共識來完成。

## 類型

DApp 可以根據是執行在自己的區塊鏈上，還是運行在另一個 DApp 的區塊鏈上來進行分類。通過這種分類，DApp 被分為三種類型。

第一類 DApp 在自己的區塊鏈上執行。比特幣和以太坊等區塊鏈可以歸類為第一類 DApp。

第二類 DApp 是在第一類 DApp 的區塊鏈上運行的協定。這些協議本身俱有其功能所需的令牌（Token）。

第三類 DApp 是使用第二類 DApp 協議運行的協議。與第二類 DApp 類似，第三類 DApp 也具有其功能所需的代幣。

## 智能合約

開發人員使用智能合約來維護區塊鏈上的資料並執行操作。可以為單個 DApp 開發多個智能合約來處理更複雜的操作。超過 75% 的 DApp 由單個智能合約支援，其餘的則使用多個智能合約。

由於部署和執行 DApp 智能合約的成本，DApp 會產生燃氣費（gas fee），即支付給區塊鏈驗證者的費用。DApp 功能所需的 gas 量取決於其合約的複雜性。如果在以太坊區塊鏈上運行的 DApp 的複雜合約花費過多的 gas，則可能無法部署，從而導致吞吐量降低和執行等待時間延長。

## 運作

DApp 使用共識機制在網路上建立共識。建立共識的兩種最常見的機制是工作量證明 (POW) 和權益證明 (POS)。

工作量證明利用計算能力通過挖礦過程建立共識。比特幣使用工作量證明機制。權益證明是一種共識機制，通過驗證者支持 DApp，驗證者通過對應用程式擁有權益和百分比所有權來保護網路。

DApps 通過三種主要機制分發其代幣：挖礦、募款和開發。在挖礦中，代幣按照預先確定的演算法分發，作為對通過交易驗證保護網路安全的礦工的獎勵。代幣也可以通過籌款來分發，在 DApp 的初始開發階段分發代幣以換取資金，就像在初始貨幣（ICO）發行中一樣。最後，開發機制通過預先確定的時間表分配用於開發 DApp 的代幣。

在任何 DApp 的形成和發展過程中，都會發生三個主要步驟：DApp 白皮書的發布、初始代幣的分配和所有權的分配。首先，發佈白皮書，描述 DApp 的協定、特性和實作。然後，向支持網路驗證和募款的礦工和利益相關者提供所需的軟體和腳本。作為交換，他們將獲得系統分發的初始代幣作為獎勵。最後，隨著越來越多的參與者加入網路，無論是通過使用 DApp 還是通過對 DApp 開發的貢獻，代幣所有權都會稀釋，系統變得比較不集中。

## 特徵

DApp 的後端程式碼在分散的點對點網路上運行，而不是後端程式碼在集中式伺服器上執行的典型應用程式。一個 DApp 可以有任何可以呼叫其後端的語言撰寫的前端程式碼和使用者界面。DApps 已用於去中心化金融 (DeFi)，其中 Dapps 在區塊鏈上執行金融功能。

所有 DApp 都有一個識別程式碼，該程式碼只能在特定平臺上執行。並非所有 DApp 都可以在標準網頁瀏覽器上執行。其中一些僅適用於具有自定義程式碼的特殊網站，經過調整以打開某些 DApp。DApp 的性能與其延遲、吞吐量和順序性能有關。比特幣交易驗證系統的設計使得比特幣的平均挖礦時間為 10 分鐘。以太坊每 15 秒減少一筆交易的延遲。相比之下，Visa 每秒處理大約 10,000 筆交易。最近的 DApp 專案，例如 Solana，試圖超過這個速度。

網際網路連接是區塊鏈系統的核心相依性模組，其中包括 DApp。高昂的貨幣成本也是一個障礙。小額貨幣價值的交易可能佔轉移金額的很大一部分。由於網路流量增加，對該服務的更大需求也導致費用增加。這是以太坊的一個問題，這歸因於構建在以太坊區塊鏈上的 DApp 導致的網路流量增加，例如非同質化代幣 (NFT) 使用的那些。交易費用受 DApp 智能合約的複雜性和特定區塊鏈的影響。

## 趨勢

以太坊是擁有最大 DApp 市場的分佈式賬本技術（DLT）。以太坊區塊鏈上的第一個 DApp 於 2016 年 4 月 22 日發布。從 2017 年 5 月開始，正在開發的 DApp 數量以更高的速度增長。2018 年 2 月之後，DApp 每天都在發布。不到五分之一的 DApp 捕獲了以太坊區塊鏈上幾乎所有的 DApp 使用者。大約 5% 的 DApp 捕獲了 80% 的以太坊交易。以太坊上 80% 的 DApp 被少於 1000 名使用者使用。在以太坊上，交易所類 DApp 佔交易量的 61.5%，金融類 DApp 佔 25.6%，賭博類 DApp 佔 5%，高風險類 DApp 佔 4.1%，遊戲佔 2.5%。

DApp 尚未得到廣泛採用。潛在使用者可能不具備能夠有效分析 DApp 與傳統應用程式之間差異的技能或知識，也可能不重視這些差異。主流使用者可能難以獲得這種技能和資訊。此外，DApp 的使用者體驗通常很差，因為它們通常是為了優先考慮功能、維護和穩定性而開發的。

許多 DApp 難以吸引用戶，尤其是在其創始階段，甚至那些最初吸引廣泛流行的 DApp 也難以留住使用者。一個值得注意的例子是 DApp CryptoKitties，它在以太坊網路最流行的時候嚴重減慢了速度。CryptoKitties 和另一個類似的基於遊戲的 DApp Dice Games 此後一直未能吸引到類似的吸引力。

## 範例

- Augur - 預測市場平台
- Cryptokitties - 基於以太坊構建的遊戲. 由於交易處理不足，它減慢了以太坊的速度，並暴露了公共區塊鏈的擴展限制。
- Blockstack - 開發去中心化應用程序的平台。
- Freelance - 智能合約平臺。
- Steemit - 部落格和社交媒體平臺
- Uniswap - 去中心化的加密貨幣交易所