0

0

什么是去中心化应用程序 (dApp)?一文通俗解释中心化应用程序 (dApp)

冰火之心

冰火之心

发布时间:2025-09-01 10:41:02

|

326人浏览过

|

来源于php中文网

原创

在理解去中心化应用程序(dApp)之前,我们有必要先了解我们日常接触的绝大多数应用程序,它们被称为中心化应用程序。我们手机上使用的社交媒体、购物平台、银行应用等,都属于中心化应用。这类应用的特点是其所有的数据和运营逻辑都储存在由某个公司或组织控制的中心服务器上。

什么是去中心化应用程序 (dapp)?一文通俗解释中心化应用程序 (dapp) - php中文网

这个中心化的实体拥有绝对的控制权,可以管理用户数据、修改服务规则,甚至在必要时关停服务。用户的每一次互动,都是在向这个中心服务器发送请求并接收其返回的数据。

去中心化应用程序,顾名思义,其运行方式与中心化应用截然不同。它不是在单一的中心服务器上运行,而是在一个分布式的、点对点的网络上运行,例如区块链网络。dApp 的后端代码,即所谓的智能合约(Smart Contract),被部署在区块链上,由网络中的众多节点共同维护和执行。这意味着没有任何单一实体能够完全控制这个应用程序,它的运行规则由代码决定,一旦部署便难以更改。

dApp 的核心构成要素

1、后端逻辑(智能合约):dApp 的核心业务逻辑由智能合约编写而成。这些合约是自动执行的协议,其条款直接写入代码中。它们运行在区块链上,确保了操作的自动化、可验证和强制执行。例如,一个去中心化金融(DeFi)应用的借贷逻辑,就是通过智能合约来自动处理抵押、借款和清算等流程的。

2、前端用户界面:dApp 的前端部分与传统应用非常相似,可以使用诸如 HTML、CSS 和 JavaScript 等标准技术来开发。用户通过这个熟悉的界面与 dApp 进行交互。前端代码会调用后端的智能合约函数,以完成用户的请求。

3、数据存储与通信:dApp 的所有状态变更和交易数据都被记录在底层的区块链上。这种存储方式使得数据具有不可篡改且公开透明的特性。用户与 dApp 的交互通常需要一个加密钱苞(如 MetaMask),这个钱苞作为用户在去中心化世界中的身份凭证和交互工具

什么是去中心化应用程序 (dApp)?一文通俗解释中心化应用程序 (dApp) - php中文网

中心化应用与 dApp 的关键区别

1、所有权与控制权:中心化应用中,开发公司拥有对应用和用户数据的最终控制权。公司可以单方面更改规则、审查内容或封禁账户。在 dApp 中,规则由代码(智能合约)定义,控制权分散在网络参与者手中,这赋予了它强大的抗审查性

2、透明度:中心化应用的后端代码和数据库是私有的,用户无法得知其内部运作的具体细节。dApp 的智能合约代码通常是开源的,任何人都可以审查代码逻辑,并且所有的交易记录都在区块链上公开可查,提供了极高的透明度。

3、运行稳定性:中心化应用依赖于中心服务器,假使服务器出现故障或受到攻击,整个服务便可能中断。dApp 运行在成千上万个节点组成的网络上,不存在单点故障风险。只要区块链网络本身在运行,dApp 就能持续提供服务。

4、用户数据自主权:在许多中心化平台,用户数据被公司收集、使用甚至出售。dApp 的设计理念倾向于让用户掌控自己的数据。用户通过私钥管理自己的资产和身份,无需将个人敏感信息托管给第三方机构。

dApp 的运行机制探究

1、发起交互:用户在 dApp 的前端界面上执行一个操作,例如进行一笔转账或是在一个去中心化治理平台投票。这个操作会触发一个与智能合约交互的请求。

2、钱苞签名:用户的加密钱苞会弹出请求,要求用户确认并签署这笔交易。签名过程使用了用户的私钥,这相当于在去中心化网络中确认了用户的身份和意图。这个过程是用户通过加密钱苞与区块链进行交互的关键一步。

3、交易广播:签名后的交易被广播到整个区块链网络中。网络中的节点(矿工或验证者)会接收到这笔交易。

4、共识与执行:网络节点根据共识机制(如工作量证明 PoW 或权益证明 PoS)来验证这笔交易的有效性,并执行智能合约中相应的函数。交易被打包进一个新的区块中。

5、状态更新:当包含该交易的新区块被成功添加到区块链上之后,dApp 的状态就发生了永久性的改变。这个改变会同步到网络中的所有节点,并且 dApp 的前端界面也会相应地更新,向用户展示最新的结果。

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

539

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

372

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

727

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

470

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

391

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

989

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

653

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

541

2023.09.20

俄罗斯搜索引擎Yandex最新官方入口网址
俄罗斯搜索引擎Yandex最新官方入口网址

Yandex官方入口网址是https://yandex.com;用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2025.12.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.7万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.7万人学习

CSS教程
CSS教程

共754课时 | 17.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号