V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xarthur
V2EX  ›  区块链

DApp 是什么?

  •  
  •   xarthur · 2021-04-11 12:24:43 +08:00 · 3697 次点击
    这是一个创建于 1326 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文链接

    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 一般还需要安装钱包插件,对于不理解插件是什么的用户会很麻烦。

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

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

    但不知道是什么问题的答案。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1185 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:26 · PVG 02:26 · LAX 10:26 · JFK 13:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.