最近一直在思考如何做一款DApp产品,顾名思义,DApp是采用区块链底层技术搭建的去中心化应用程序,有着与传统应用程序(App)不同的特性。
所以,首先回顾一下区块链有哪些特性:
特点一:分布式数据库
区块链上的每一方都可以访问整个数据库及其完整的历史记录。 没有单一方控制数据或信息。 每一方都可以直接验证其交易合作伙伴的记录,而无需中间人。这确保了交易数据的公开透明,基于这一特性,适合做对过往交易可追溯、公信力透明可查的产品。
特点二:对等传输
通信直接在对等体之间发生,而不是通过中心节点。 每个节点存储并转发信息到所有其他节点。这个特性可以理解为P2P,端到端信息或价值传输,方便快捷,适合个体之间的转账交易。
特点三: 透明的匿名性
任何有权访问系统的用户都可以看到每个事务及其关联值。 区块链上的每个节点或用户都有一个唯一的30以上的字母、数字组成的地址,用于标识自身。 用户可以选择保持匿名或向他人提供其身份证明。这里排除掉门罗币、DASH币等专注于隐私的加密货币。所谓透明,是指一个账户在区块链网络上的一切交易行为都是可查的,公开透明;所谓匿名,是指只要这个账户不与现实世界的身份产生关联,那就很难验证此账户的真实身份,确保了匿名性。这一特性,特别适合对隐私有高要求的产品。
特点四:记录的不可逆性
一旦在数据库中输入事务并更新了帐户,则不能更改记录,因为它们链接到它们之前的每个交易记录(因此称为“链”)。也就是所谓的不可篡改性,数据一旦生成并上链便无法修改,现实世界中,哪些事物有这个需求呢?突然想到考试这个场景,考试完毕,试卷内容上链保证无法修改。
特点五:计算逻辑
分类帐本的数字性质意味着区块链交易可以关联到计算逻辑、本质上是可编程的。 因此,用户可以设置自动触发节点之间交易的算法和规则。这一点即智能合约,现在我反而觉得这不是区块链的特性,因为所有的程序都可以看成是智能合约,都是按照既定的规则来运行的,不管是中心化的还是去中心化的。
DApp产品设计需要结合以上几个区块链特有的性质,同时需要考虑现在的APP存在的痛点,是否靠DApp能够解决,如果DApp带来的体验不能明显优于APP(有人说要优于100倍),那么用户就不会从APP迁移到DApp,迁移成本是重要影响因素。只有获益大于成本,用户才会接受。
以上是设计一款DApp产品需要考虑的因素,继续摸索中。