首页 >  区块链技术 >  正文
什么是DAPP?如何开发一个区块链新项目?
发布日期:2023-05-26

经过这几年移动互联网以及智能手机的普及,相信几乎所有人都知道了什么是APP(Application的简称)。 时间转眼迈入区块链时代, 一个新的名词DAPP(Decentralized Application)出现了。时常看到走在技术前沿的开发者在问:什么是DAPP? 如何开发一个DAPP? 为什么要开发DAPP而不是APP? 本文及接下来的一系列文章将会对DAPP的概念、优势以及如何开发DAPP进行详细的探讨。本篇主要讨论一些DAPP的基本概念。

什么是DAPP?如何开发一个区块链新项目?

一、什么是DAPP

根据David Johnston在文章DavidJohnstonCEO/DecentralizedApplications里的定义,只有当满足以下所有条件时,一个应用才可以称之为DAPP。

应用必须完全开源、自治并且没有一个实体控制着该应用的大部分代币(Token)。该应用必须能够根据市场的反馈及技术要求进行升级,但是升级必须由应用的用户达成共识之后才可以进行;

应用的数据必须加密后存储在公开的区块链上;

应用必须拥有代币机制(可以使用已存在的代币或者新发行一种内置代币),矿工或者应用维护节点需要得到代币奖励;

应用代币的产生必须依据标准的加密算法,有价值的节点可以根据该算法获取应用的代币奖励。

根据以上的标准,比特币、Asch都算是DAPP,以Bitcoin为例:

比特币的代码完全开源且不受中心组织的控制,所有比特币的交易等信息都可以在区块链上查到;

比特币的代币奖励机制有预先内置的加密算法决定,无法修改。矿工由于维护比特币节点的安全和稳定获取奖励;

所有比特币区块链上数据的修改都要经过大多数用户的认可(共识)。

什么是DAPP?如何开发一个区块链新项目?

所以比特币是一个DAPP,Asch是一个DAPP,而基于Asch开发的[CCTIME](CCTime 加密货币时讯)也是一个DAPP。不同的是,有些DAPP扮演了操作系统的角色(比如Ethereum、Asch),基于这些平台可以很容易的开发出特定需求的DAPP,而有些DAPP(比如CCTIME)则是具体的应用。但它们都满足上面的标准。

二、DAPP的核心要素

你可以从零开始,自己创造一个完整的区块链系统并开发自己的应用。这相当于开发一个新的区块链项目,比较费事费力且对个人能力要求较高。如果你只是一个普通的开发者想基于区块链开发自己的应用,那选择一个成熟的区块链应用开发平台就好了。这些平台一般会提供完善的接口以及开发工具,你只需要操心业务逻辑及其实现就好了。关于区块链的底层部分,这些平台都会帮你处理好。

1. 开发平台

目前最流行的开发平台是Ethereum:Ethereum是目前全球除了比特币以外第二大的区块链项目,它就像一台遍及全世界的分布式计算机,你只需要把你的应用部署在Ethereum上,应用的运行就可以由所有的Ethereum节点来保证了。应用的运行需要支付手续费(GAS)。缺点是需要学习一门新的语言Solidity。

另外一个建议就是基于笔者所在团队开发的Asch(中文名叫做阿希)。只要掌握JavaScript,就可以基于Asch开发DAPP。 Asch采用的是侧链架构,每一个DAPP就是一套侧链。侧链可以有独立的区块链和节点网络。不同的DAPP之间互相不会影响。不同于Ethereum, Asch系统上DAPP数量的增加不会增加主链的负担,是一套更加先进的机制。

2. 共识机制

共识机制决定了运行DAPP的各节点如何达成共识及获取奖励,目前最常用的共识机制有POW、POS以及DPOS等。POW依据计算资源分配奖励,目前Bitcoin、Ethereum都采用了这种机制(不过Ethereum后面可能要迁移到POS)。Asch采用的是经过PBFT优化后的DPOS机制,核心系统是由 101 个委托人节点组成,委托人是被社区选举的可信账户,得票最高的 101 个委托人负责生产区块。得票排名未进入前 101 名的账户被称为候选人,当他们将来获得足够多的选票并进入前 101 名后,将成为正式的委托人。基于阿希开发的DAPP默认采用这种共识机制,不过开发者可以自己修改并决定使用哪种共识机制。

3. 代币分发

一般DAPP都会内置代币(Token), 而想让更多用户参与到DAPP的维护与使用中的话,就需要考虑好如何把代币分发到用户手中。目前最常见的有以下几种方案:

挖矿:以Bitcoin为例,任何拥有计算资源的人都可以加入到Bitcoin的挖矿中来,通过挖矿奖励来获取新的Bitcoin。

ICO: 可以简单理解为众筹。通过收集市面上已经成熟的其他代币,根据一定比例兑换为本DAPP内的代币来完成。Ethereum就是按照 1BTC/2000ETH的比例通过ICO众筹到了很多BTC作为起始资金。这种分发方式在国内已被禁止。

空投: 将代币免费分发到用户手中。持有其他代币的用户只需要完成一个简单的绑定流程,就可以得到代币。最近的案例有CCTIME空投,具体方式可参考[CCTIME官网](CCTime 加密货币时讯)。

什么是DAPP?如何开发一个区块链新项目?

私募:这个就跟找投资一样,依个人能力而定了。

三、DAPP的生命周期

DAPP的生命周期分为三个重要的阶段:

1. 撰写白皮书

编写白皮书是DAPP开发的第一步,它描述了DAPP的技术原理、解决的问题和特点等。白皮书是DAPP开发的基石,社区的反馈也可以在后期的更新中得到体现。

2. 分发代币

分发代币是DAPP开发的重要环节之一,可以采用上一章节所描述的代币分发机制。

3. 开发DAPP,逐步进化完善

DAPP发布后,健康发展的DAPP将吸引更多拥有各种技能的用户加入到社区,共同维护DAPP的发展。随着社区的壮大,早期开发者在社区中所占的比重逐渐减小,DAPP的发展交由社区整体进行运营和更新。比特币和比特股等项目已经证明,去中心化的社区可以推动项目的持续发展。

什么是DAPP?如何开发一个区块链新项目?

四、为什么要开发一个DAPP?

目前,社会对DAPP开发的关注刚刚开始,在市场上还难以看到流行的DAPP应用。但随着区块链技术的发展,传统的C/S模式可能会被颠覆,开发者也不必再购买云服务器部署自己的应用。区块链开发平台为开发者提供了一个基于全球服务器,7*24不间断服务的应用平台,使得应用部署到区块链上变得轻而易举。此外,DAPP代币机制的存在,也使得开发者能够更容易地基于代币获得价值回报。我们相信,在不久的将来,DAPP将超越传统APP,在人们的社会生活中扮演越来越重要的角色。

大家觉得怎么样呢?欢迎在评论区留言,让我们一起探讨。同时,记得点赞哦!

获取了解“区块链DAPP系统”最新详细方案关注私信!

(关注我带你走进商业领域,商业模式设计、源码定制开发、本文编辑刘-lrjj003)

什么是DAPP?如何开发一个区块链新项目?