待字闺中开发了一门区块链方面的课程:《深入浅出ETH原理与智能合约开发》,马良老师讲授。此简书文集记录我的学习笔记。
课程共8节课。其中,前四课讲ETH原理,后四课讲智能合约。
第五课分为三部分:
- Dapp用例
- 合约结构
- Solidity语法
这篇文章是第五课第一部分的学习笔记:Dapp用例 。
这节课主要讲解了 Dapp 的定义、适用场景和若干例子的简介。
1、Dapp 的定义
Dapp 是一种根植于区块链的应用程序。其最大的特点是需要与区块链进行交互,最核心的状态信息需要存储在区块链中。最核心的逻辑功能要用智能合约实现,其它静态数据可以保存在一个中心式服务器或者一个分布式的存储服务中,如 Swarm / IPFS 。
2、Dapp 的适用场景
- 对等的多方参与的有交易行为的场景,不对等、只有两方、没有交易行为,均没必要使用Dapp。
- 各方之间信任建立在算法/协议之上,信息高度透明,可重复独立的验证结果。
- 历史记录一旦形成就不可更改。
- 具有高可用性/鲁棒性,单点故障不影响整个系统运作。中心化的应用,则有单点故障的风险。
3、Dapp 例子
这里有两个 DAPP 的汇总网站。本小节主要介绍 8 类。
stateofthedapps
dappradar
1. ICO类
这类应用主要是基于ERC20代币规则开发的,数量较多。有名的两个项目是EOS和Lamden。
EOS,可以理解为Enterprise Operation System,即为商用分布式应用设计的一款区块链操作系统。EOS是引入的一种新的区块链架构,旨在实现分布式应用的性能扩展。
现阶段,区块链应用的开发极为复杂昂贵,需要大量人力物力投入,探索区块链解决方案的企业难以顺利制定所需的解决方案。不仅如此,不同区块链之间的信息流动以及数据向新系统迁移都可能导致运筹方面的困难。由于系统间缺乏可操作性,区块链开发对于许多企业仍遥不可及。面对这些问题,Lamden希望利用其最新的企业解决方案使整个流程变得简化。Lamden与其他企业区块链解决方案提供商(比如Hyperledger、Lisk等)有一个最大的不同,那就是Lamden能帮助企业迅速构建起独具一格的现成区块链,内含丰富的智能合约功能,而且不同区块链之间可实现无缝交互。Lamden生态系统由多个工具组成,每个工具都针对当前加密开发的具体问题。
其它ICO类的应用,可访问ERC20 Tokens list
此类应用满足前面提到的适用场景:要做ICO,就得满足平等的多方参与的条件,需要信息高度透明,自动化运行。同时,还要历史不可更改。
2. 游戏类
游戏类采用ERC721代币规则。
ERC20代币,可分割交易。ERC721代币,不可分割,必须以完整的形式存在。
这类应用,最出名的就是加密猫Cryptokitties。
Cryptokitties,聚众云吸猫的游戏,是基于以太坊平台运行的。用户在游戏中可以养大、买卖并繁育“电子宠物”小猫,每只小猫和繁衍的后代都是独一无二的。
其它的例子有Ethrgoo,Decentraland。
这类应用同样满足 DApp 的使用场景:多方,平等,交易,信息高度透明,可重现,信任基于算法,高可用性,记录不可更改。
3. 收藏/拍卖类
采用ERC721代币规则。主要应用于收藏/拍卖,字画,珠宝,房产拍卖。
这类场景,在没有区块链前,中介经常做手脚,牟取私利。使用了区块链技术后,历史不可更改,保证了公平。
4. 博彩类
这类应用主要是用到可验证伪随机数的生成,中心化的应用,随机数不易被信任,庄家易采用对自己有利的随机数。去中心化的应用中,随机数的生成是公开透明的,不易作弊,容易取得各方的信任。
另一类使用场景就抽奖,中心化应用同样也是有上述问题。采用了区块链技术的去中心化应用可有效解决中心化应用存在的问题。一个典型的例子就是公信宝上的币得APP。
币得是一个区块链夺宝项目,它采用区块链技术来获取随机数保证夺宝的公平性公开性。它的夺宝规则如下:
其中,规则中有个词“取余”,指的是做整数除法时,除不尽的余数,比如,14÷3,等于4余2,如果能除尽,余数为0。对应于夺宝游戏,若有5000人次参与,则有0~4999这5000个号码,取余后得出的结果是0~4999中的一个,从而产生幸运号码。
5. 交易所/侧链类
这里提到三个项目:Hawala、 Raiden、 Plasma。
Hawala是一个P2P、去中心化的法币与数字货币交易中心。对这类项目,马老师认为,其交易搓合能力,吞吐量容易受以太坊网络的限制。
Raiden是以太坊中的“闪电网络”,类似于比特币的闪电网络。其做法是将小微交易转到侧链上,提高吞吐量。
Plasma主要是转移ERC20产生的流量,它还能支持智能合约的流量转移。
这两个侧链的项目还在实验的阶段,其稳定性,安全性,还有待于观察。
6. DAO
DAO 是Decentralized Autonomous Organization(分布式自治组织)的简称。它由一系列智能合约组成,主要想法是把现代公司的治理过程全部自动化,尽可能多的由智能合约来实现,减少人的干预,代表长期的发展方向。不幸的是,2016年发生过一起 the DAO 事件。
7. 其它治理类
其它的如电子投票类,非营利组织管理,这些使用场景,也是都符合前文提到的几个要点:多方参与、平等、信息高度透明、记录不可更改等。
8. 广告媒体类
传统的广告有三个弊端:用户被动接受,无收益;广告从投放到发布中间环节太多;用户隐私得不到很好的保护。
BasicAttentionToken 项目正在为解决这些问题而生。它使用Brave浏览器匿名监控用户注意力,使用BAT代币对内容商进行奖励。用户观看广告时会获得BAT代币的奖励。它具有"更多隐私,更少欺诈"的优点。
总结:本节主要介绍DAPP的定义,使用场景,及若干例子。