巴比特专栏 | 多角度清晰认识Dapp
币安收购DappReview的新闻,占领了币圈热点。可能是因为币圈还处于发展的早期,还可能是币圈去中心化而没有权威的原因,币圈的绝大多数概念定义都不是非常清晰的。Dapp也一样,各有各的定义。
Dapp,从字面意思是:去中心化应用。D是decentralized,即去中心化。app是application,即应用,和我们常用的手机app是一样的概念。
我们先从用户下载和使用角度来看dapp。
App最常见的就是在手机端下载使用,还有些App是以插件的形式在浏览器上使用,在MacOS和win10上也会有App。
Dapp也可以运行在多种平台上。
目前用户最常用的dapp是运行在加密数字货币钱包里,如bitpie、imtoken等。用户首先要下载钱包,dapp是由开发者和钱包商合作,呈现在钱包的界面上。用户通过钱包作为dapp的入口。
Dapp的第二大运行平台是浏览器。在浏览器上有数字货币钱包,以插件形式存在。比如被广泛使用的MetaMask狐狸钱包。用户可以通过MetaMask来加载Dapp。
还有一些Dapp本身就是一个网站,这也有以一个网页形式存在的钱包。
网页钱包和插件钱包的最大区别是,插件钱包可以离线使用,但网页钱包是无法离线的。
用户无论使用什么方式进入Dapp,都是需要使用钱包。这有点像是微信的小程序。
用户基本的使用过程是这样的,用户和dapp的交互行为是用户发送一笔包含特殊信息的交易(这些特殊信息就是由dapp定义的),dapp通过用户界面,来方便使用构造交易;交易构造好后,交给钱包私钥签名;签名后,广播交易到区块链。
用户的交易提交到区块链后,dapp会监听用户的地址,在用户界面上显示区块链处理后的结果。
用户使用Dapp就是Dapp的用户界面协助用户构造交易,交易提交给钱包签名,钱包广播交易,Dapp监听区块链,给用户反馈结果。
这是带钱包的Dapp,目前大多数人认为Dapp就应该是这样。
还有一部分人认为,Dapp还可以是不带钱包的。比如区块链浏览器就是一个Dapp,用户通过浏览器输入特定的地址,然后浏览器反馈给用户一些数据。这个过程不需要签名交易。区块浏览器作为一个Dapp的作用就是帮用户解析交易信息。
我们再从产品设计原理角度来定义dapp。
和常规的app采用的服务器和客户端不一样,dapp增加了区块链端。一般dapp也会有服务器,服务器一般会运行区块链的全节点,以保持对区块链的交互。
从设计角度说,Dapp=服务器+智能合约(区块链端)+客户端。
从执行任务角度来分,客户端负责发交易,智能合约负责执行交易,服务器负责解析交易。我这里说的是核心任务,在实际运行当中,各个部分会有多种任务。
有些Dapp设计没有服务器,这就是纯粹的点对点的用户之间借助区块链来交互。
第三,我们从计算机运行原理角度来定义dapp。
任何程序都需要消耗三种资源,存储、计算和带宽。Dapp也一样。
Dapp一般会将数据存在区块链上。交易肯定是要在区块链上的。币圈很主流的看法是,真正的Dapp数据都应该是来自区块链。
但事实上,大量的Dapp都是需要链外数据才能运行。
Dapp的计算,一般会在服务器和区块链上。智能合约承载了最重要的计算任务,这部分是由区块链上的节点完成的。智能合约完成核心的计算是保证Dapp不可作弊的最重要设计。
计算可以认为是加工数据的算法。Dapp常规的算法设计是设计成智能合约。有些Dapp会将算法代码开源,并存储在区块链上公开,但算法的实际运算需要服务器来完成,区块链并不执行计算任务。像去中心化的交易所,就是由服务器加智能合约来完成计算。
以太坊,EOS上的Dapp,基本上计算都是智能合约来完成。Dappreview上收录的Dapp也基本上是这一类。
BCH和BSV这一类UTXO式的区块链,计算任务基本上是由服务器来完成。
Dapp的数据传输一般是借助区块链网络来完成。
第四,从去中心化和中心化视角来看Dapp。
Dapp严格来说都是去中心化的,但基本上所有的dapp都会有运营的主体,基本上是一家公司在运营。严格的去中心化的dapp是不会倒闭的。我们可以从会不会倒闭来看Dapp。
数据100%是存储在区块链上的Dapp,很难倒闭。哪怕是运营主体倒闭了,但其他人可以捡起来接着做下去。就像区块链浏览器(如果你认为它是Dapp的话),就是典型的不会倒闭的Dapp。
一般来说,我们可以将不会倒闭的Dapp,定义成某种协议,协议是永恒的。
现在存在的大部分Dapp都会倒闭的,就是中心化的。主要是因为,有很多核心的数据或计算在链外,只要运营主体不去经营了,别人无法延续这些数据和计算。
但中心化的Dapp并不是要否认其价值,因为借助了区块链,可以在防作弊上做到很好,更公平。
币圈太喜欢搞新概念了,学起来确实累。
作者:黄世亮
欢迎关注微信公众号:闪电HSL, H13116885
欢迎打赏BTM:bm1qefc720au672awrgazgw5c3kx7etr5kejju02p7