什么是DApps?对于一些人来说,区块链已成为一种被过度炒作的技术和流行语,它与错失百万富翁的机会有关,或者与那些在厨房里喋喋不休的谈论它将如何改变世界的同事有关。基于区块链的应用程序非常重要,因为它们解决了现在企业和最终用户面临的问题:隐私、数据安全性以及与之共享数据的人员。
关于区块链技术的一个普遍误解是,它意味着要取代传统货币,虽然这可能是少数人的目标,但它只是区块链应用的一个用例。
什么是DApps?
DApps是分散式应用程序的缩写。这些应用程序实际上不应该对最终用户进行区分。关于DApps的重要之处在于后端是如何处理数据的。DApps在区块链上运行,其中最著名的区块链之一是以太坊网络。这允许开发人员构建自己的应用程序,甚至在他们之上创建自己的区块链代币(这些代币可用于通过ICO筹集资金,或作为货币支付维护网络的人)。要将应用程序视为DApp,必须满足几个要求:◆应用程序是开源的,这意味着代码是公开可见的,开发人员可以创建分支或编辑代码。◆应用程序的数据不是托管在本地(内部部署)或独立的云服务器上,而是在安全的计算机网络上分散运行,这些计算机可以由云服务器和运行该软件的单个PC组成。◆应用程序具有数量有限的区块链代币(例如以太币是以太坊网络的代币)。这需要一对加密密钥来签署交易,以便将数据存储在区块链中。
DApp分散式应用程序是怎么工作的?
从各方面来看,DApps不应该都被认为是应用程序。它们可以是网页、桌面应用程序或移动应用程序,只需像任何其他应用程序一样运行就可以。应用程序的数据不托管在本地或云服务器上,而是托管维护相同分类帐的节点网络,也就是一个区块链网络。不幸的是,为了正确解释DApps如何工作,它意味着深入研究区块链的功能。对于那些不是技术背景的人来说,这很快就会变得深奥。因此,在解释这是如何工作的过程中,不会过度技术化。区块链是一种点对点网络,其目的是维护一个记录数据的开放式分类账,可以将其视为电子表格。在每个节点上的网络中存在相同的分类帐副本,这意味着同一分类帐有数千个副本(任何兼容的计算机都可以运行该软件并成为节点)。这就是不可变性的来源,所有节点的分类账必须相同。如果一个分类帐存在差异,则该记录将失效。为了获得有关节点的信息,大多数情况下,矿工将验证交易,然后将其发送到网络。这可能是资源密集型过程,需要大量的计算能力,因此矿工由发起交易的用户为其努力支付代币。出于这个原因,DApps要求用户拥有一个钱包,其中包含与该特定区块链相关的代币。例如,在以太坊网络上运行的DApp通常会使用以太币。这是对区块链的过度简化,并且有许多不同的区块链可以以不同的方式工作(只要它们遵守上面提到的规则:开源、用区块链代币分散)。
DApp有什么好处?
要理解为什么人们对DApps感到兴奋,首先让我们来研究一些应用程序如何工作的问题。例如,一个社交网络,数百万人正在与该网站进行交互,并且为了让用户看到其他用户的评论、帖子、喜欢等,必须将数据保存在网络上的某个地方,以便可以保留此操作。没有人想让自己发表的评论消失。因此,这些交互都存储在集中式服务器上,站点所有者和主机负责保护、备份和管理该数据的传播。维护服务器的成本很高。他们需要硬件、员工、电力等。由于很多网站对最终用户免费,企业可能会向广告商开放你的数据,然后广告商可以用他们的产品定位你,这样网站就可以支付成本。在DApp中,没有存储数据的集中式服务器。相反,它被保存到区块链中。这样,就没有任何组织负责保护最终用户数据。没有组织需要支付员工工资、维护服务器或其他管理费用。由于没有涉及运营网络的组织,因此销售用户数据以降低成本的动机就少了。由于数据存储在区块链中,因此非常安全。通常,区块链需要超过51%的网络受到同时攻击才能影响存储在分类账上的数据,这不仅操作起来很复杂,而且也会划不来。如前所述,为了满足要求,DApps必须是开源的,这意味着任何人都可以检查代码以查看应用程序的功能。这提供了传统应用程序通常不会提供的透明度。
DApp有哪些障碍?
DApps并非没有缺点。首先,需要有足够数量的节点在网络上运行。因此,如果平台建立在一个小区块链上,有时大多数这些节点实际上是由创建者操作的,所以实际上这并不是分散的。大多数基于区块链的DApps最大的问题之一是学习曲线,它阻止了不太精通计算机的用户使用它们。由于用户需要拥有持有区块链特定代币的钱包,因此用户需要保留所谓的私钥或种子词以访问其钱包并在区块链上签署交易。与标准密码不同,私钥在忘记或丢失时无法重置,也无法更改。通常,私钥是由64个字母数字字符组成的字符串,难以记忆,应该仅在纸上记录,以避免黑客在数字保存时访问它的风险。因此,它并不像输入您的电子邮件和设置密码那么简单,而且会有很多的人因为丢失了私人密钥而被锁在账户外,再也无法访问!DApps面临的另一个问题是,在区块链上可以存储的数据是有限制的,例如,视频文件太大而无法以分散的方式存储,因此仍必须存储在集中式服务器上。
这些问题可以及时克服,并且上述一些问题不存在于像Hyperledger Fabric等这些企业区块链中,后者不需要最终用户维护钱包和支付矿工费用。