DApp是一种互联网应用,其后端在去中心化的点对点网络上行且其源代码是开源的。网络中不存在能够完全控制 DApp的节点。根据DApp的功能不同,使用不同的数据结构来存储应用数据。
    随着区块链技术的蓬勃发展,属于智能合约开发、尤其是Dapp应用的黄金时代已经来临。
    区块链技术将不仅仅应用在金融支付领域,而是将会扩展到目前所有应用范围,诸如去中心化的微博、微信、搜索、租房、选举投票甚至是打车软件都有可能会出现。因为区块链将可以让人类无地域限制的、去信任的方式来进行大规模协作。
    DApp不能依赖于中心化应用,原因是存在单点故障。但是在一些情况下,并无其他办法。例如,如果 DApp想读取一场足球比赛的成绩,它从哪里得到数据呢?尽管 DApp可以依赖另一个 DApp,但是国际足联( FIFA)为什么要创建一个 DApp呢?国际足联不会仅仅因为其他 DApp想要数据,就创建一个提供成绩却没有回报的 DApp。所以在一些情况下, DApp需要从中心化应用中抓取数据。但主要问题是 DApp如何知道从一个域名中抓取的数据有没有被中间人篡改,数据是否还是真实的响应?根据 DApp架构的不同,解决办法也有所不同。例如在以太坊中,智能合约不能直接发出 HTTP请求,为了访问中心化 API,可以使用 Oraclize服务作为中间人。 Oraclize为从中心化服务智能合约中抓取的数据提供 TLSNotary验证。
    修改 bug或者更新 DApp很困难,因为网络中的每一个节点都需要更新其节点软件。
    一些应用要求验证用户身份(即 KYC),却没有中心化的机构来验证用户身份,开发应用时会遇到问题。
    创建去中心化应用比较困难,因为它们应用复杂的协议达成共识,且必须从最开始就自行创建并扩大规模。所以我们不能仅仅实现一个想法,然后不断添加功能,使其规模扩大。
    应用通常独立于第三方 API,以获取或者存储数据。 DApp不能依赖中心化应用 API,但是可以依赖其他 DApp。因为目前 DApp的生态圈还不太大,所以创建起来比较困难。尽管 DApp理论上可以依赖其他 DApp,但在实践中紧密融合 DApp仍比较困难。
    使用区块链技术(DApp)解决行业痛点
    DAPP用户体验不会跟现有APP有任何区别,但是由于区块链特有的数据确权、价值传递功能,可以消除很多影响用户体验、提升开发难度的因素。
    1、用户实名认证流程变更。哪怕第三方授权登录,对于网贷等需要实名认证的场景依然需要用户提交各种资料,繁琐且需要专人审核,管理成本高。DAPP场景下,如果公链内支持数据共享,那么开发者只需要完成数据匹配,就可以从其他生态内的开发者处共享到用户实名资料,同时只需要支付Token即可;同时对用户而言,这也算是POD(Proof of Data)挖矿模式,同样有收益,算是合作共赢。
    2、交易安全性提升。随着交易大爆炸的出现,交易效率的需求日渐提升。原来基于金融中介(例如银行、VISA等)的交易处理方式效率低,信用生产成本高。百度“票据诈骗”,看多头抵押、双花支付的例子有多少?为了降低这种风险,现在需要投入大量的风控成本进行审核但收效甚微。而基于UTXO(Unspent Transaction Output)的区块链技术可以简单解决这个问题,而不需要对现有业务流程做任何变动升级。
    3、行业生产关系的变更。区块链的数据确权、价值网络的两个属性可以变更现在的互联网生产关系,促使行业类应用出现,用户不用再为选择焦虑症发愁。典型的例子就是互联网视频。版权成本高昂导致腾讯、爱奇艺、搜狐只能付出极高的成本打击盗版、而用户追剧则需要在不同的平台购买VIP账号。当年的“火花电视”将各个平台的电视剧做到一站式观看,但是私自添加广告,影响版权方利益,最后被禁就是例子。 如果基于区块链技术,剧集可以被版权方确权,用户不管通过任何渠道观看剧集,其支付的费用都可以Token化,然后由区块链基于价值网络分配给版权方、渠道方。在同生态内,盗版的问题被解决(比如B站UGC上传等),版权争夺成本下降,开发者专注于用户体验的提升,获取用户的方式也从版权壁垒变成社群运营,体验比拼。真正的互联网运营时代将会到来。
    4、项目运维成本降低。项目的运维成本往往高于开发成本。我们评估资源阈值的依据是预计最大流量,如果评估太低,则容易宕机,太高则浪费严重。例如:大多数产品应该都面临过运营活动带来的高并发问题,一次营销爆服务器的现象屡见不鲜,而添置服务器所带来的成本浪费则令人头疼。目前几个开发中的底层链(例如EOS、Elastos)的资源分配模型基于用户持有Token的数量,这就意味着我们可以在某个活动开始前临时性购买Token(资源),并在日常运维中将其释放(卖出)。极大减少了运维成本。
    5、技术开发成本降低。目前项目开发通常会评估四个版本:iOS、Android、小程序、Web。理论上DAPP类似小程序,设计思想是无需安装,用完即走,所有的计算都在线上完成,本地禁止创建进程,系统自动创建或查找本地、周边、链内的其他微服务。由于目前还没有实际案例甚至DEMO,因此这条仅仅是推测。目前看到的白皮书中,Elastos(亦来云)的设计思想基本如此,希望在2018年能看到落地应用。