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 一般还需要安装钱包插件,对于不理解插件是什么的用户会很麻烦。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.