以太坊Dapp怎么赚钱

在区块链上做DApp(去中心化应用)还赚得到钱吗?

对于这个问题,可以回想一下互联网泡沫的情况:当时融资数亿美金的.com公司比比皆是,但最终活下来的却是那几家踏踏实实在应用互联网技术的公司——Amazon、Google、Netflix、PayPal。现在这几家赚到大钱的公司市值少则数百亿美元、多则数千亿美元,它们所创造出来的财富,比那些泡沫公司被蒸发掉的融资额,多了不知道多少倍。

所以,币圈的喧嚣,终究是沉淀不下来的。而在区块链上真正能沉淀下来东西,一定是那些处于媒体视野之外、目前还不显山不露水的应用和创意。假以时日,它们终将生长成为价值上千亿美元的未来巨头,正如移动时代发展起来的今日头条、美团、滴滴、Uber、Airbnb一样。

而要讨论区块链上的DApp,特别关于它们挣钱的方式将会如何变化?用来挣钱的代码又将有哪些不同?Georgios Konstantopoulos在Medium上给出了一份很好的分析。不过,他的分析还是基于移动应用的赚钱方式,至于在区块链上管不管用,我们看看内容就知道了。

移动应用是怎样赚钱的?
广告

简而言之,广告商会向内容提供商和技术公司(开发人员)付钱来进行广告的制作和投放。消费者反过来(无论他们是否认为)受到广告的影响,消费广告商的产品。

免费增值服务

App Store在以前发布的App版本都会分‘Lite’版、‘Regular’版和‘Pro’版本。用户会先试用该产品提供的服务,如果喜欢的话,就会购买完整版本的应用程序。

免费增值:一种商业模式,在互联网服务中极为常见,服务商会提供免费的基础服务,但其中的高级功能或特性则需要付费使用。

Spotify,Slack或Onedrive等公司都采用了这种商业模式,然后通过购买付费订阅的用户获得收入。

通过真实货币在游戏内购买物品的游戏App也是这种免费增值模式。

而免费MMORPG(大型多人在线角色扮演)游戏则利用了所谓的“免费限制”。比如魔兽世界中的免费玩家最高等级只能升到20级,游戏的其他区域会对免费玩家进行限制。这类游戏的最精彩的内容是为“付费玩家”游戏玩家保留的。

他山之石可以攻玉。看明白了传统App赚钱的方法,相信你对怎么用DApp赚钱应该也有了些想法。现在我们就来看看有哪些方式吧。

免责声明:以下所有示例在对功能实现进行说明时都进行了简化。我们对开发时的商业逻辑做出了一定的假设,并且在创建一套智能合约时也没有采取任何严格的安全措施。 在您将代码推向产品之前,希望可以始终进行全面的安全审核!

理论推测:DApp赚钱的六大法门
1、发起Crowdsale并发行通证

(译注:Crowdsale,在以太坊区块链上直接向朋友或用户发起的众筹,无需第三方平台)

我们在之前的文章中已经讨论过,开发者可以通过由通证支持的众包来引导项目。

在这种情况下,您需要定义通证需求(注,括号内是市场上一些加密货币):

  1. DApp的核心功能(Golem(https://golem.network/ ),Aragon(https://aragon.one/ ),Request(https://request.network/#/ )
  2. 提供访问您的网络(BAT(https://basicattentiontoken.org/ ),Bloom(https://bloom.co/ ))
  3. 将产品的利润分配给通证持有者(TenX,Numerai)

请注意,在这种情况下,你需要小心法规和KYC规则(金融机构账户实名制规则),具体取决于您的通证是否被视为安全通证。

2、收取一定比例的交易费用

Cryptokitties会在每次拍卖成交时收取3.75%的费用。这被证明是一个非常赚钱的收入模式(https://medium.com/@codetractio/a-look-into-cryptokitties-revenue-model-6466b705a998 )。

上周CK的交易量达到了单日800 以太币的峰值。来源:DappRadar.com

一个更普遍的例子是:

  1. A使用您的服务从B处购买东西
  2. Y%的金额会流向服务提供商(您)
  3. 剩余(100-Y)%的金额转到B账户上

这里有一点是需要万分注意的。如果您向最下游的用户收取的服务费用“不公平”,那么就可能会有些人复制您的智能合约并以较低费用或免费发布他们的版本(因为您的合约已经通过验证且开放了源代码,这通常也是以太坊DApps的要求)。

找到合适的收费比例是这其中的关键。但是我们不会在这篇文章中介绍定价模型。

3、对一些高级功能收费

从前面讨论过的免费增值模式中获得灵感,我们可以通过对高级功能收费来实现盈利。现在我们以在CryptoZombies中构建的游戏(https://cryptozombies.io/ )为例:

假设你的CryptoZombie需要10次胜利才能升级,而且随着等级的提高升级难度会越来越高。

从第10级到第11级的升级会比从第1级升级到第2级困难的多。用户需要花费更多的精力来升级他们的僵尸军团。

收益递减规律

在这里你可以实现一个功能,它允许僵尸“跳过”这个困难的阶段直接升级,当然作为代价,用户需要支付一定的以太币。

这样一来,免费玩家仍然能够获得游戏乐趣,但愿意付费的玩家也可以更轻松地跳过这一关卡。

僵尸冷却时间的重置也可以按照一样的思路设计。僵尸通常需要冷却一段时间才能再次战斗,但我们可以设计一个功能,让用户支付一小笔费用就可以跳过冷却时间。

在这里通过DApps获利的方式其实有很多啦。

4、订阅/会员资格

您可以通过添加订阅或会员资格功能到您的合约,以使某些函数只能由订阅者或高级会员进行调用。

订阅的持续方式有两种:

  • 基于时间:让用户可以在一定时间内使用某项功能,比如一个月。
  • 基于实用情况:让用户可以使用某项功能一定的次数。

关于订阅模型,你可以在维基百科上了解更多(https://en.wikipedia.org/wiki/Subscription_business_model )。

5、广告

考虑到我们正在谈论关于DApp本身的广告,这种方法已经不太流行了。 ThousandEtherHomepage(http://thousandetherhomepage.com/ )就是这么做的。您可以在合约中声明若干数组的位置,这些数组位置上会显示DApp前端的像素。如下图所示,这些像素可以被项目用于品牌宣传。

6、接受捐款

如果上述任何内容听起来都太麻烦,你可以随时在你的服务/ DApp中添加自己的加密货币地址,让那些慷慨的用户直接捐助你。

你也可以将eth-button添加到你的网页以进行Metamask集成。

http://eth-button.github.io/eth-button

四大实践:DApp的赚钱代码

首先,提取资金

想要赚钱,DApp首先就需要有一项功能,允许将资金提取到拥有者的账户里。 我们可以这样实现:

该函数会将调用合约的费用转移到所有者(owner)的地址中(使用了非常流行的onlyOwner 修饰符模式)。 如果您不熟悉上面这种关键字的工作方式,那可能还需要先去学一学CryptoZombies.io的课程(编注:CryptoZombie 是一个可以在编游戏的过程中学习智能协议语言的互动教程,在币圈非常流行)。

1、发起Crowdsale并发行Token 官方的以太坊网页(https://ethereum.org/crowdsale )已经对此进行了描述。 为了创建一个安全的众包,建议使用Open Zeppelin创建的审核合约(https://github.com/OpenZeppelin/zeppelin-solidity/tree/master/contracts/crowdsale)。

您可以按照这个指南(https://blog.zeppelin.solutions/how-to-create-token-and-initial-coin-offering-contracts-using-truffle-openzeppelin-1b7a5dae99b6 )或视频(https://www.youtube.com/watch?v=ShW2zQcY4LY )来开发。

2、对一些高级功能收费

完整代码参见:https://ethfiddle.com/O3_2o-oqaZ

在这种情况下,我们可以看到,用户支付1以太币就可以绕过winCount的升级要求。 然后拥有者(owner)就可以调用一开始我们说的withdraw 函数提取资金。

不过要注意的是,以太网的价格未来可能会出现剧烈波动,急剧上涨(或下跌),这会改变你的高级功能的成本。因此,在许多情况下,都有必要添加一个onlyOwner 函数。这会方便你在将来更改成本,否则这个高级功能的定价就可能变得非常昂贵。这也适用于以下所有示例。

3、收取一定比例的交易费用

同样以僵尸游戏为例,当有人想要购买一个僵尸时,这其中10%的金额就会被你抽走,剩余的金额则会被转移到僵尸的原所有者身上。

完整代码参见:https://ethfiddle.com/MuApSyO3jx

为了节省一些瓦斯成本,你可以跳过该函数的第一行,而不是将以太币留在合约中。通过使用之前说的withdraw 函数,你可以在稍后将合约中所有的以太币提取出来。

4、订阅/会员资格

这里有一些实现订阅/会员商业模式的例子:

  1. 终生会员制
  2. 基于时间:用户在一定时间内可以调用这个函数,例如,他们可以支付1个月的访问权限
  3. 基于使用情况:用户可以调用X次该函数

我们将创建一个合约,其中某些函数只能由已被标记为会员的个人调用。

终生会员资格

这只要创建一个简单的布尔类型变量mapping 就行,modifier 会检查这个布尔变量是否为true,然后通过一个函数允许用户按照某种价格成为会员。

完整代码参见:https://ethfiddle.com/LgzLNtIIVF

或者,我们可以使用uint8类型,并为越来越高级的功能设置不同的成员等级:免费用户是第0级,白银会员是第1级,黄金会员是第2级, 等等。然后onlySilver()函数就会检查成员等级是否> = 1。

基于时间的会员/订阅

在这里,我们的将假设订购费用为每天0.005以太币。

完整代码参见:https://ethfiddle.com/Dx1jQlgazK

在这种情况下,当用户调用renewSubscription函数时,如果需要,subscriptionExpiration会初始化为now,然后根据用户支付的费用增加若干天。 onlyMember 修饰符可用于检查当前时间是否已经过期。

基于使用情况的成员资格/按使用次数付费

这里的商业模式相当于用户预先购买函数调用,类似于设定每次调用API的价格。

在这个例子中,用户可以以1以太币的价格购买1000次调用。 每次用户调用具有onlyIfEnoughCalls 修饰符的函数时,在确认它们符合调用条件之后,availableCalls 变量都会递减。

完整代码参见:https://ethfiddle.com/rO0xD9nIl6

在上述所有场景中,只需将相应的only{property} 修饰符添加到任何函数中,然后就可以只由有权访问它的用户调用

结论

在本文中我们讨论并实施了一些商业模式,如果你的目标是通过DApp盈利,你可以将其应用到你的DApp中。

我想强调的是,这篇文章中对每个模型给出的代码都是一个非常基本的实现,应该根据你的具体需求进行调整。

区块链大本营