中心化应用(dApp)生态是区块链能否走向主流人群的关键。在作者看来,dApp是一种应用程序设计模式,它通过在对等节点网络上分发关键组件来增强现代web应用程序。
要想让现实世界卷入代币经济,需要找到两者结合的方式。而目前来说,其中重要的入口就是去中心化的应用程序。
去中心化应用的定义是动态的,它会随着去中心化生态系统的成熟和命名惯例及定义等因素而发生变化。
我们认为去中心化应用是一种应用程序的设计模式,它通过在对等节点网络上分发关键组件来增强现代Web应用程序。
去中心化不是二元的,它有一个范围。设计良好的DApp利用现有的Web应用程序基础和分发应用程序的关键组件,可降低风险,确保优秀的用户体验。
在Radar Relay 中,我们依靠0x协议和Web3存储用户的交易意图,同时无须访问用户的个人信息或通证。与此同时,我们利用现代Web应用程序基础架构(如kubernetes)来实现可靠的Web服务器基础架构。这样的架构降低在私有服务器上存储敏感信息的风险,同时保持现代Web应用程序的效率和用户体验。
现代Web应用程序
现代Web App基础设施
要了解DApp的发展方向,先来了解现代Web应用程序很有必要。
数十年的技术进步带来一些创新,包括互联网协议套件、Web服务提供商(AWS、GCP、Azure)、标记和编程语言(HTML、CSS、Javascript)等。
所有这些基础技术允许应用在几秒或更短时间内加载,拥有漂亮的用户界面,为用户提供前所未有的信息和工具访问。
现代应用程序能够为人类解决不少问题,但并不能解决所有问题。它有一些潜在的缺点。而DApp的设计模式就是对这些缺点作出的反应,也就是说,DApp很重要的目的就是要增强目前的Web应用程序基础架构。
去中心化应用(DApp)的主要目标
减轻单点故障(SPOF)
分布式数据(缓解SPOF)
现代Web应用程序依赖的基础设施,其中存在单点故障的问题。这些单点故障包括服务器基础设施、代码库、数据库等。随着高可用性和可靠的基础设施服务商(GCP和AWS等)出现,减轻单点故障方面取得进展,但强如亚马逊,也会出现2018年初的停运,很难避免停机。
DApp通过在多个对等节点网络上存储数据或基础架构的关键组件来缓解这些问题。如果网络中的每个参与者都拥有数据副本,则数据很难丢失。
减少对中心机构的依赖
“在软件中,业务逻辑是程序的一部分,它编码确定如何创建、存储和更改数据的现实业务规则。”业务逻辑本质上是一组合约,规定业务对象如相互交互、并定义用户或其他对象如何访问和更新对象。
在传统的Web应用程序中,这些业务逻辑合约是在可变的软件中实现。软件在初始创建后可以进行修改,同时也在不能保证防篡改和可审计的私有服务器上运行。
而分布式账本则提供了一种在可以防篡改、不可变、完全可审计的程序中构建和执行业务逻辑的方法——智能合约。使用智能合约的DApp的用户都可以验证智能合约中的实现逻辑,包括检查逻辑交互的输入、执行状态和输出。智能合约无法随意修改,可以减少对中心化机构的信任。
提高安全性
鉴于上述两点,可以通过减轻当前应用程序架构中的常见风险来提高应用程序的安全性。更具体地说,通过引入客户端加密,DApp在将某些类型的信息发送到应用程序的服务器之前对其进行保护或加密。用户可以使用其加密密钥直接访问数据,而无需通过数据网关(如公司的服务器或API)。
利用网络效应
现代Web应用程序能够利用网络效应创建有粘性的服务,同时试图尽可能地获取最大的市场份额。一个很好的案例是OAuth或“Login with X”。Google和Facebook可以提供一个连贯的跨产品服务,但也会受其用户群范围和存储在其私有服务器中信息的限制。
DApp则可以利用公开账本和分布式存储作为事实来源。最终,它可以提供与网络中的所有资源参与者成正比的身份/认证,许可规则和数据访问。
密码学和分布式账本
目前正在使用的一些技术构成了DApp生态系统的一些基础构建块,可以让DApp能够实现其主要目标。
DApp技术
分布式数据存储,它是无须信任的数据存储。数据存储解决方案,如分布式账本(区块链)、IPFS(星际文件系统)、Swarm,它们可以在多个节点上存储数据。
分布式业务逻辑,它是无须信任的执行业务逻辑。之前提到的以太坊智能合约之类的技术可以让业务逻辑在分布式账本上执行。
客户端加密,主要是为终端用户加密。区块链钱包,以太坊Clef和Parity-UI将加密功能移植到客户端。这让用户能够将数据发送到应用程序的服务器之前对其进行加密或签名。它还支持与分布式存储解决方案和分布式账本之间的交互。
总之,我们把DApp看作为一种新的设计模式。这种模式使用最好的现代应用程序设计,并通过区块链和点对点技术进行加强。随着思想、资源、创新进入这个领域,未来它会成为历史上最具活力的生态系统之一,从而推动通证经济体系的形成。
原文题目为《DApp设计模式》本文转自订阅号蓝狐笔记
本文作者Mike Roth,Radar Relay CTO,文章来源于medium.com,由蓝狐笔记社群“Leo”翻译。