DApp 是什么?

2021-04-11 12:24:43 +08:00
 xarthur

原文链接

DApp 也就是「 Decentralized Application 」的简称,按照很多营销号的说法是一个跨时代的技术。但是这东西其实远没有他们说的这么跨时代。这篇文章会从技术角度介绍一下什么是 DApp,以及它涉及到了哪些相关的技术,及其现阶段的问题有哪些,算是对我前段时间研究的一个小总结。另外本文不涉及到任何的投资建议,任何时候关于虚拟货币的投资都应该小心谨慎。本文是我前段时间研究的一个小总结。

DApp 其实指的不是一个单一的技术,它是一系列技术的综合体,整体架构可以用下图来表示。

在这张图中,展现了一个基于 IPFS 网络的 DApp 的架构。

可以看到其实整个 DApp 最为核心的部分是个前端的「单页应用( single page application )」。这个也是用户可以直接接触的部分。在 DApp 的架构中,页面会通过一个 IPFS 的网关呈现(当然其实不一定要 IPFS,其他的技术比如 Hypercore 也行,当然如果有 BT 的网关,也是可以的(笑),只是目前 IPFS 用的比较多而已)。这里 IPFS 网关的主要作用就是通过去中心化的方式来提供前端需要的资源(比如 JS 、CSS 、HTML 、图片等)。这部分通讯等方式和传统的网页没什么区别,就是普通的 HTTP 协议。

当然一般情况下,你是会希望你的 DApp 是可以和区块链进行操作的。比如查询余额之类的事情。这个时候你就需要一个接口,来进行链上操作,也就是上图提供的区块链网关。这个网关的作用和 IPFS 网关类似,只是这里提供的是区块链操作的相关接口。目前来看,真正实用的公链(其实差不多只有以太坊)的网关用的是 JSON-RPC 协议通讯,但这里要用什么样子的协议都行,看你用的区块链网关支持哪些协议。

最后一部分是和用户钱包的交互,一般会要求用户装一个钱包插件,这样你就可以通过钱包提供 API 进行交互了,这个要看具体钱包的要求,不同的钱包可能会有不同的初始化方式,具体要看他们的文档。比如这里就是 MetaMask 的文档。

好处

最大的好处在理想情况下(也就是用户用自己的 IPFS 节点和自己的区块链网关),这套技术是彻底的去中心化的,不需要某台服务器来提供服务。自然而然也享受到这些技术带来的好处,比如减少了单点失效的危险、高匿名、抗审查等。

不足

但是这套系统结构还是面临了很多的不足,首先就是网关问题,大部分用户都无法提供上图提到的两种网关,其中 IPFS 的网关还可能自己搭建,但是区块链的网关让普通用户自己搭建会非常困难。这导致了,目前来说这两个网关还是非常中心化的,并没有体现出中心化的优势。

另外一个非常大的问题就是区块链的性能还是不行,吞吐量非常小而且不是可水平扩展( Scale-out )的。这导致上链的操作,可能有很长的延时和需要付很多的手续费。

另外用户要想使用 DApp 一般还需要安装钱包插件,对于不理解插件是什么的用户会很麻烦。

3465 次点击
所在节点    区块链
16 条回复
passon
2021-04-11 14:44:30 +08:00
👍
haibing
2021-04-11 14:58:11 +08:00
目前公链有币安的 BSC,波卡,解决了 eth 拥堵的问题.
AkashicRecords
2021-04-11 16:30:40 +08:00
现在 DApp 有没有比较好的能够实现“一定程度的监管”的方法?对 DApp 很感兴趣,但是一直觉得完全无法审查带来的盗版、不良信息等问题不利于它在社交和文件分享等方面的发展
learningman
2021-04-11 16:54:18 +08:00
@AkashicRecords 能审查那不就不"free"了吗,不可能的
xarthur
2021-04-11 17:09:26 +08:00
@AkashicRecords HTTP 协议也从来没有解决过盗版等问题。我们日常还是在用它。
BT 协议从来没有解决过盗版问题,我们还是一直在用它。
kksco
2021-04-11 20:24:13 +08:00
感觉协议实验室技术还是没的说的,造了这么多基建的轮子。但是感觉 fil 的泡沫该去去了
xarthur
2021-04-11 20:46:15 +08:00
@kksco 这个我就不知道了(
不过我个人观点,整个区块链行业还有很多技术上根本性的问题没有解决。
AkashicRecords
2021-04-11 21:21:40 +08:00
@xarthur #5 可是正是因为 BT 协议的盗版问题而争议不断,国外对 BT 下载盗版资源还会有所惩罚。现在存活的站都是 PT 站了,某种程度上又是具有一定中心化的。不知道能不能修改 scuttlebutt 的 pub 的机制,起到部分的中心化的作用
AkashicRecords
2021-04-11 21:24:24 +08:00
@learningman #4 滥用审查有害,适当使用审查有益。即便是约翰·弥尔顿在《论出版自由》里面也没有彻底否定一切审查。
xarthur
2021-04-11 21:49:48 +08:00
@AkashicRecords 这种协议性的技术本来就不太会考虑审查的事。
就我个人而言我也是看重了它们这种抗审查的性质,不觉得没审查是什么坏事,甚至是个好事。
learningman
2021-04-11 21:49:48 +08:00
@AkashicRecords #9 在 v2ex,反对一切审查不是主流吗
每次一提到审查,就有人出来阴阳怪气
xarthur
2021-04-11 21:54:48 +08:00
@AkashicRecords 如果你不需要抗审查的话,传统网络模型其实更理想啊。更快、更稳定,而且用户也容易接受,就没必要用 DApp 之类的啊😂
AkashicRecords
2021-04-12 00:38:56 +08:00
@xarthur #12 唉,想要用 DApp 做个小项目;用传统网络模型就没有创新性了😔(问就是要求“具有创新性”),但是苦于 DApp 没有能适合公然讨论的应用场景,除了之前看到有基于 IPFS 的开源代码共享平台觉得还可以,别的都比较尴尬。

另一方面,区块链技术就是这个问题,技术肯定是一个优秀的技术,但是如何使用是个问题——这个可能要等好多年,就和单向陷门函数的提出很早,但是用在公钥加密体制的时候就很晚了。
fcfangcc
2021-04-12 09:56:56 +08:00
我们做的一个 dapp,之前因为 infura 挂了,整个应用都打不开了
fcfangcc
2021-04-12 09:58:26 +08:00
上次挂了之后就觉得这玩意儿还是高度依赖中心化的网关。既然这样,还不如传统 app,至少保证后台可用性可以掌握在自己手里。infura 挂了之后只能等他恢复
zmxnv123
2021-04-12 10:20:09 +08:00
我们都知道区块链是答案。

但不知道是什么问题的答案。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/769854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX