去中心化应用(DApp)

去中心化应用(DApp)是一种可以自主运行的应用程序,通常通过使用智能合约,运行在去中心化计算、区块链或其他分布式账本系统上。与传统应用程序一样,DApp 为用户提供某种功能或效用。然而,与传统应用程序不同,DApp 无需人工干预即可运行,并且不属于任何一个实体,而是通过分发代表所有权的代币来实现。这些代币根据程序算法分发给系统用户,分散了对 DApp 的所有权和控制。由于没有任何一个实体控制系统,因此该应用程序是去中心化的。

去中心化应用已通过分布式账本技术(DLT)而普及,例如以太坊或 Cardano 区块链等公共区块链,DApp 就是基于这些区块链构建的。

DApp 分为众多类别:交易所、商业、赌博、游戏、金融、开发、存储、钱包、治理、财产、身份、媒体、社交、安全、能源、保险、健康等。

定义 编辑

要将一个应用程序视为 DApp,必须满足一系列标准。传统上,去中心化应用程序的定义要求 DApp 是开源的。也就是说,应用程序在没有控制大多数应用程序相关代币的中央实体的情况下自主运行。DApp 还具有一个公共的、去中心化的区块链,该区块链用于应用程序来保存数据的加密记录,包括历史交易。

虽然传统 DApp 通常是开源的,但随着加密货币行业的演变,完全闭源和部分闭源的 DApp 也出现了。截至2019年,只有 15.7% 的 DApp 是完全开源的,而 25% 的 DApp 是闭源的。换句话说,具有公开可用代码的 DApp 的比例低于没有公开可用代码的 DApp 的比例。开源 DApp 通常比闭源 DApp 具有更高的交易量。

比特币作为第一种加密货币,就是一个 DApp 的例子[1]

用法 编辑

DApp 可以根据它们是否在自己的区块链上运行或在另一个 DApp 的区块链上运行进行分类。

智能合约 编辑

主条目:智能合约

智能合约由开发人员用来维护区块链上的数据并执行操作。可以为单个 DApp 开发多个智能合约来处理更复杂的操作。超过 75% 的 DApp 由单个智能合约支持,其余的则使用多个智能合约[2]

由于部署和执行 DApp 的智能合约的成本,DApp 会产生 Gas 费用,即支付给区块链验证者的费用。DApp 的函数所需的 Gas 量取决于其智能合约的复杂性。在以太坊区块链上运行的复杂 DApp 的智能合约可能会因为成本过高而无法部署,从而导致更低的吞吐量和更长的执行等待时间。

操作 编辑

DApp 使用共识机制来建立网络共识。建立共识的两种最常见机制是工作量证明(PoW)权益证明(PoS)

工作量证明利用计算能力通过挖掘过程建立共识。比特币使用工作量证明机制。权益证明是一种共识机制,通过验证者持有股份和对应用程序的百分比所有权来支持 DApp[3]

DApp 通过三种主要机制分发其代币:挖矿、筹款和开发。在挖矿中,代币根据预定算法作为奖励分发给通过验证交易来保护网络的矿工。代币也可以通过筹款来分发,即在 DApp 的初始开发阶段,以换取资金的形式分发代币,就像首次代币发行(ICO)一样。最后,开发机制通过预定时间表分发为开发 DApp 而预留的代币。

任何 DApp 的形成和发展始终包含三个主要步骤:发布 DApp 的白皮书、分发初始代币和分配信用权。首先,发布白皮书,描述 DApp 的协议、功能和实现。然后,将所需的软件和脚本提供给支持网络验证和筹款的矿工和利益相关者。作为回报,他们将获得系统分发的初始代币。最后,随着越来越多的参与者加入网络,无论是通过使用 DApp 还是通过为 DApp 的开发做出贡献,代币所有权会稀释,系统变得更加去中心化。

特性 编辑

DApp 的后端代码运行在去中心化的点对点网络上,与传统应用程序的后端代码运行在集中式服务器上不同。DApp 可以使用任何可以调用其后端的语言编写前端代码和用户界面。

DApp 已被用于去中心化金融(DeFi),其中 DApp 在区块链上执行金融功能。像 Aave 协议这样的点对点交易验证的去中心化金融协议有望颠覆集中式金融并降低成本。

DApp 的性能与其延迟、吞吐量和顺序性能相关。比特币的交易验证系统设计为平均每 10 分钟挖出一个区块。以太坊的平均区块时间为 12 秒,延迟更短。相比之下,Visa 每秒处理约 10,000 笔交易。最近的 DApp 项目,如 Solana,试图超过这一速度。

互联网连接是区块链系统,包括 DApp 的核心依赖。高昂的货币成本也是一个障碍。小额货币价值的交易可能占转移金额的很大比例。对服务的更大需求也导致网络流量增加,从而导致费用增加。这是以太坊的一个问题,归因于以太坊区块链上构建的 DApp(例如用于非同质化代币(NFT)的 DApp)导致的网络流量增加。交易费用受到 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%,游戏 DApp 占据了 2.5%。

DApp 尚未实现广泛采用。潜在用户可能没有能力或知识来有效分析 DApp 和传统应用程序之间的差异,也可能不重视这些差异。主流用户可能难以获得这种技能和信息。此外,DApp 的用户体验通常很差,因为它们通常是为优先考虑功能、维护和稳定性而开发的。

许多 DApp 难以吸引用户,尤其是在其创始阶段,即使那些最初吸引了广泛关注的 DApp 也难以保持这种关注。

一个著名的例子是 DApp CryptoKitties,它在鼎盛时期严重减慢了以太坊网络的速度。CryptoKitties 和另一个类似的游戏类 DApp Dice Games 自此未能吸引类似的关注[4]

应用 编辑

  • Augur:预测市场平台。
  • Axie Infinity:支持“边玩边赚”模式的区块链游戏。
  • CryptoKitties:基于以太坊的游戏。由于交易处理不足,它减慢了以太坊的速度,并暴露了公共区块链的可扩展性限制。
  • Freelance:基于智能合约的平台。
  • Lens Protocol:基于区块链的社交平台。
  • OpenSea:NFT市场。
  • Stacks:用于开发去中心化应用程序的平台。
  • Steemit:博客和社交媒体平台。
  • Uniswap:加密货币交易所。
  • Session:基于区块链的端到端加密消息传递。

组成部分 编辑

  • 前端(Frontend):用户界面部分,通常通过 Web 技术(如 HTML、CSS、JavaScript)构建,类似传统应用。
  • 智能合约(Smart Contract):核心逻辑部分,部署在区块链上,用于处理用户请求和执行规则。
  • 区块链网络(Blockchain Network):DApp 的运行环境,用于存储数据和智能合约。常用区块链:以太坊(Ethereum)、BSC、Solana、Polygon。
  • 分布式存储(Decentralized Storage):用于存储前端文件或大数据,如 IPFSFilecoin
  • 钱包(Wallet):用户与 DApp 交互的工具,用于管理私钥和签名交易,如 MetaMask、Trust Wallet。

分类 编辑

  1. 去中心化金融(DeFi)
    • 提供无需中介的金融服务。
    • 典型例子:Uniswap(去中心化交易所)、Aave(借贷协议)。
  2. NFT 市场
    • 支持用户创建、交易和展示数字艺术品或资产。
    • 典型例子:OpenSea、Rarible。
  3. 游戏和元宇宙(GameFi & Metaverse)
    • 融合区块链的游戏和虚拟世界经济。
    • 典型例子:Axie Infinity、The Sandbox。
  4. 去中心化社交
    • 提供用户数据主权和隐私保护的社交网络。
    • 典型例子:Lens Protocol、DeSo。
  5. 治理与组织(DAO, Decentralized Autonomous Organization)
    • 支持用户通过代币参与治理决策。
    • 典型例子:MakerDAO、Uniswap DAO。
  6. 数据存储与隐私
    • 提供去中心化的数据存储和隐私保护服务。
    • 典型例子:IPFS、Arweave。

技术栈 编辑

  1. 区块链平台:
    • 以太坊(Ethereum):DApp 的主要平台。
    • Solana:支持高性能应用。
    • BSC:成本更低的替代方案。
  2. 开发工具:
    • Truffle:智能合约开发框架。
    • Hardhat:现代以太坊开发环境。
    • Remix:在线开发和调试工具。
  3. 存储技术:
    • IPFS:分布式文件存储。
    • Filecoin:激励驱动的去中心化存储网络。
  4. 交互工具:
    • MetaMask:主流的去中心化钱包。
    • WalletConnect:支持多钱包连接的协议。

参考链接 编辑