Dapp(去中心化用程序)简介

现今大部分应用程序像是Gmail、Facebook或Twitter等,都是采用Centralized(中心化)架构。中心化应用程序背后都会有一间公司或组织(例如Facebook、Google或Amazon)来进行管理。这些应用程序通常运行在某些特定的电脑上,并且分散在世界各地不同的资料中心。

目前的网络服务大部分都有单一公司或组织提供

Centralized 应用程序问题

现今Centralized 应用程序十分普遍,管理和操作上也非常方便。但也存在一些问题:

  1. Single Points Of Failure(SPOF): 单一节点故障。当系统中某个零件故障会造成整个系统无法正常运作。
  2. 容易被攻击: 因为是中心化的架构,容易成为骇客或有心人士攻击的目标。有一些交易所因为这个原因,而被骇客攻击遭受到巨额的损失。
  3. 昂贵的中介费用: 人与人基本上是不可信任的,所以我们需要一个中立可信的第三方机构帮我们做担保。Paypal或支付宝就是担任这个角色。甚至连银行也属于信任的第三方。所以我们才能利用汇款或转帐的服务将金钱转移给他人。第三方机构为了维持服务通常会收取昂贵的中介费用如转帐手续费。
  4. 丧失个人资料的自主权: 我们在使用网络服务时通常会伴随产生出很多使用者资料(User Data)。这些资料由我们产生但我们却无法使用这些资料。这些资料通常会被服务背后的公司拿去分析利用或着贩售给广告商以获取利利润。

因为Centralized 应用程序有着上述的问题,关于Dapp(去中心化应用程序)的讨论也就随之而起。

 
中心化应用程序架构,易于被攻击且使用者资料还易于被公司贩售获利

去中心化应用程序

Dapp(去中心化应用程序)定义是运行在去中心化网络上的应用程序。去中心化网络指的是Peer-To-Peer(P2P)架构的网络。区块链本身就是P2P网络的架构。在Blockchain网络下的资料具有不可篡改的特性。在P2P的网络中,每一台电脑的地位都一样,且拥有相同的资料和皆能执行Dapp的程序代码。Dapp必须符合以下4项标准:

  • Dapp必须要是完全Open Source和自我管理。任何一个机构都不应该控制大部分的Token。Dapp所有的更动都必须通过社区大家的一致同意才能所变动。
  • Dapp的所有资料和纪录都必须经过加密保存在公开的Blockchain网络上以防止Single Points Of Failure(SPOF)。
  • Dapp必须要使用Cryptographic Token,使用者可以利用Token换取Dapp的服务。所有提供价值贡献的人(ex. miner)都可以获得Token以示奖励。
  • Dapp Token的产生必须经由crytptographic algorithm像是PoW或PoS的方式来得到。

去中心化应用程序解决问题

基于Dapp的特性就可以来解决Centralized 应用程序的问题

  1. P2P网络中只要存有一台以上的电脑运作,在网络上的Dapp便不会中断,也就没有Single Points Of Failure(SPOF)问题。
  2. 资料存在网络中的每一台电脑上,并无一个集中存放的地方,使得骇客难以攻击。除非骇客有能力在一瞬之间同时改变网络中51%电脑的资料(这就是所谓51%算力攻击),但这所需付出的代价太高变得几乎不可能执行。
  3. Blockchain网络具有资料不可篡改的特性,当Dapp布署在Blockchain网络中就不可被篡改。即使是撰写和布署Dapp的人也无法布署完后对Dapp做任何的修改。我们可以放心相信放在Blockchain网络的Dapp,而不需要第三方机构来帮我们做担保。只需要付出少许的手续费用就可以在Blockchain网络上交易。
  4. 因为Open Source和去中介化的特性,第三方机构无法直接获取使用服务中所产生出来的User Data,加上Token机制让我们自己可以选择保留这些User Data或者将User Data卖给广告商来获利,针对User Data能有更高的掌握度。
 
去中心化应用程序架构可以帮我们解决骇客攻击夺回User Data的自主权

去中心化应用程序类型

依照Ethereum white paper所述,主要可以把Dapp分成三种类型:

  • Financial 应用程序 : Dapp只处理金钱方面的问题并协助使用者进行钱包管理和交易。最著名的Dapp就是Bitcoin。
  • Semi-financial 应用程序 :这类Dapp除了处理金钱之外也会处理chain以外的资讯。像是保险方面的Dapp,飞机延误可以自动处理理赔事项( Fizzy )。ICO也算在这个类型之中。
  • Non-financial 应用程序 :最后一种Dapp就完全与处理金钱无关,它们指专注在使用Dapp的特性来解决问题。像是去中心化政府或线上投票系统就属于这个类型。

Blockchain也被称之为Web3.0,因为基于Blockchain架构我们可以在上面开发各式各样的Dapp。下图是网络上有人整理了一下Web2.0和Web3.0服务的对应表格。

Image for post
Image for post
表格可以看到一些已经运行在Web2.0的应用程序所对应在Web3.0的DAAPs

BitTorrent: 非Blockcahin的DAPP

BitTorrent,也就是我们俗称的BT。它是P2P网络架构的档案下载软体,它将档案切割并复制到每一台电脑上面,没有一个中央存放档案的地方。在这个档案分享网络下,每个人都可以去其他的人的电脑把档案下载到自己的电脑。虽然BitTorrent不是这里所定义的Dapp,但它在概念上非常相似。一样是建立在P2P的网络下,没有中心化的机构来管理。差别在于它不是建立在Blockchain的网络且没有Token的机制。其实去中心化应用程序这个概念很早就出现,而我们也真真确确在生活中运用过它,所以Dapp并不是一个遥不可及的概念。

结尾

Blockchain的技术在2008年被提出来。Bitcoin在2009年才有第一个block。这几年人们也发现了Centralized 应用程序的一些问题,Blockchain的出现使得去中心化应用程序可行性大幅增加。有些人会把Blockchain跟早期Web的发展放在一起做比较。Web走了多少岁月到现在已经成为了人们生活不可或缺的养分。而Blockchain呢?Blockchain现在还处在于一个非常早期的阶段,如同Web早期的发展,还有需多问题尚待解决。等到经过几年后,Blockchain技术越发成熟,相信会有更多有趣的Dapp会像雨后春笋般出现在我们生活之中。不是每个应用程序都适合做成Dapp,但未来Dapp肯定会在我们生活中占有一席之地吧!

以上是我对于Dapp(去中心化应用程序的一些理解。若观念或理解有误,也拜托各位大大不吝啬给于纠正。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。