什么是DAPP,一文读懂DAPP

当前位置:主页 > 百科 > 技术 > >
作者:佚名 时间:2018-07-23 17:54 阅读:3
新闻导读:
三、DAPP开发相关问题 我们对DAPP开发特点、架构分析和技术流程等问题作一简要说明。 (一)DAPP开发特点 DAPP与APP在很多地方如用户操作界面上是很相似的,但其特点很明显。 一是生态结构变化。区块链的数据确权、价值网络属性可以变更现在的互联网价值生态

三、DAPP开发相关问题

我们对DAPP开发特点、架构分析和技术流程等问题作一简要说明。

(一)DAPP开发特点

DAPP与APP在很多地方如用户操作界面上是很相似的,但其特点很明显。

一是生态结构变化。区块链的数据确权、价值网络属性可以变更现在的互联网价值生态,区块链使得一些原来的权威中介失去意义。比如目前版权成本高昂导致作者等需要付出极高的成本打击盗版,对很多侵权行为往往只能不了了之。如果基于区块链技术,则作者与读者双方的联系变得更直接,作品可以被版权方确权,用户可以通过直接通过token向作者支付的费用。在此生态内盗版的问题通过技术手段被解决,版权争夺成本下降,作者专注于写作。

二是交易模式更新。在传统的非区块链状态下的交易,对交易主体的资信、交易对象的可交易状态,以及交易条件等的审核都需要耗费大量的成本,比如目前基于金融中介(例如银行、VISA等)的交易处理方式效率低,信用生产成本相对高,而且相互之间对数据还互不信任互不兼容。而基于区块链技术,就可能在不对现有业务流程做大的变动升级的情况下,通过基于区块链形成的可信账本就解决了这些问题。

三是数据共享方便。中心化的APP场景下要实现不同应用之间的数据共享是比较麻烦的。但在DAPP场景下一般公链内的应用都会支持包括用户身份在内的数据共享(比如亦来云的DID侧链)。那么对其他DAPP的开发者而言,可以从其他生态内的开发者处共享到用户实名资料,在根据哈希值匹配获取数据时只需要支付Token即可;而对用户而言,这也算是POD(Proof of Data)挖矿模式,可以说实现了数据归自己支配和收益。

四是颠覆设计思路。目前互联网产品设计思路是不断推出新版本,这个传统方式可能在DAPP应用开发中会有问题或者说至少不那么顺畅。简单来说,现有的APP都基于自有服务器,重大问题迭代强行刷新版本即可,但DAPP基于分布式的区块链网络,一旦提交上线出现核心bug很难迭代。拿以太坊为例,一旦发生这类bug,只能以硬分叉解决,这就是DAPP与现有APP设计思想的不同,在MVP1.0的调研阶段,一定要确认核心机制不出意外。

(二)DAPP设计分析

我们不妨先结合一个具体的例子如大宗商品国际贸易的区块链化项目来说明多中心化应用架构设计过程。从某种程度来说,多中心化应用都是对中心化服务的改造,那么在开发应用模型时首先要考虑的问题就是,所设计的多中心化应用要取代或者说改良的是中心化服务的哪一个方面?比如大宗商品交易通常金额比较大,交易的信任成本非常高,体现在需要对交易主体资信审核,作为交易对象的仓单真伪、质押、重复交易等权利状态审核,对支付方式等交易方式审核等多个方面。那么在这个场景里多中心化应用需要解决的是作为资产确认及交易确认的信息记载公信力问题。为了提高这种记载的公信力,需要将原来中心化记账形式改造成为多中心化记账。那么如何改造呢?记账还是要记的,但是任何单独的主体都难以信任,因此就采用竞争性地提供工作量来记账。那么至此方案就很明确,大宗商品国际贸易实际交易操作中,通过进行资产上链,将交易过程和交易结果信息进行区块链化,然后通过多中心化记账来解决传统交易模式的信任成本。

一般而言,在考虑一个多中心化应用的架构时要解决几个方面的问题,包括多中心化的对象问题、多中心化的方法问题、多中心化的约束机制问题,以及多中心化应用的技术实现问题。

一是多中心化的对象是什么?即在这个中心化对象中,其起作用的是计算能力,还是

存储能力,还是数据?甚至还有其他方面?

二是如何实现多中心化?即是将中介自动化还是中介竞争化?这二者的区分有时候很清楚,有时候可能会混合在一起。

三是实现多中心化约束机制是什么?所谓多中心化应用的约束机制,主要是指在实现多中心化应用时要有机制能够约束多中心化参与各方特别是主要和关键参与方,确保达到理想中的效果。比如在中介竞争化中,调停具有相当的自由裁量权,因此将信誉作为一种约束机制就成为必要。在中介自动化中,多中心化资产支付如果不能与资产的控制权不可分割性联系在一起,即支付即产生资产转移,那么链上资产的转移的产易风险还是比较大的,因此资产支付与资产控制的技术对接是中介自动化中的关键。

四是多中心化应用的技术实现问题。因为开发一个DAPP应用而重新去开发一条链很可能是不必要的,在目前的大多数性能稳定可靠的公链上即可方便地实现主要的区块技术方案,而作为多中心化应用而言其重心应该是如何实现其个性化业务逻辑,因此需要用什么样的基础公链也成为多中心化应用的一个重要环节。公链选择主要从方便应用调用智能合约、账本的记录方式、社区治理模式等方面是否与所开发的应用的业务逻辑相契合。

(二)DAPP技术流程

如何开发DAPP?大体包括选择基础主链、开发模式与语言选择两个方面。

1、基础主链。如前所述,开发DAPP之前需要选定一个主链,这就有点像做软件开发之

前先要选一个应用平台,如是选择苹果iOS或者android,亦或简单点做一个H5的手机网站。开发DAPP应用平台即通常说的基础主链的选择还是比较多的,目前主流的就有以太坊ETH、亦来云ELA、EOS等等。

选择开发主链主要是看有利于DAPP运行和对开发者友好,主链的开发环境与主链开发

者社区要相对成熟,社区关注度高,人多就是教程多、工具多,各种心得攻略就多;二是代码维护团队的接口更新维护快。

2、开发模式与语言选择。目前有三种DAPP模式,一是全节点客户端,离线同步全部数

据,无需专门服务器支持;二是快速全节点客户端;三是轻钱包前后台模式。热门开发语言有C++、solidity(类似JavaScript的一种语言)、go、C++。

文章来源: 数字时代Dapp应用社区

免责申明:雷电财经所刊发文章除注明来源外,均为雷电财经社群会员投稿,不代表雷电财经官方立场。雷电财经本着分享的理念呈现给广大网友,转载请注明来源。如您对本文存在异议,或不巧侵犯了您的合法权益,请通过邮件联系我们。
1
3