您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
迎接DApp大时代的到来
 
作者:TigerWallet
  1645  次浏览      16
 2020-3-5
 
编辑推荐:
本文讲解什么是DApp,DApp典型案例,DApp技术要点,DApp展望等希望对您有所帮助
本文来自于简书,由火龙果软件Delores编辑、推荐。

定义

DApp是Decentralized Application的缩写,中文名叫去中心化应用,去中心化主要是因为它是把核心逻辑和数据放在区块链上的应用。

特征

后端运行在区块链上:从系统结构的角度看,DApp的后端运行在去中心化的点对点网络上,传统互联网应用的后端运行在中心化的服务器上。

核心逻辑或者数据上链:应用的数据必须加密后存储在公开的区块链上。

无中心化控制:该应用必须能够根据用户的反馈及技术要求进行升级,且应用升级必须由大部分用户达成共识之后方可进行。

应用开源:一个真正的DApp应用必须完全开源。

DApp vs App

App = Fronted + Server

DApp = Fronted + Contracts

传统的App相当于前端界面加上一个中心化的服务器,而DApp相当于前端界面加上去中心化的智能合约,后台逻辑放在区块链上,无须服务器。

DApp和Web3

对于老的互联网人来说,都知道整个Web技术的发展经历几个阶段:

1. Web1.0

主要以内容发布为主。以门户网站,美国的雅虎,中国的传统三大门户:新浪,搜狐,网易,为主。通过编辑人员采编内容,放在网站上,供网民阅读。

2. Web2.0

在2005年前后,涌现了大量的新的互联网应用,比如:博客,SNS,RSS订阅,书签网站,照片分享,视频分享等各种。他们的特点主要在于可以UGC(用户产生内容),人与人之间的互动。当时统称为web2.0。一时各种新网站,新应用层出不穷。技术上有称之为Ajax,非常流行。现在的互联网巨头很多都是那个时候发展起来的,比如:

YouTube,FaceBook,优酷等。

过了05年的大发展之后,Web3.0在哪里?虽然有各种提法,但业内一直没有达成共识。后续的时代属于App。移动互联网的发展,让Android和iOS两大生态,独步天下,Web技术转移到H5,没有太多新的东西产生。

直到区块链出现,特别是以太坊,他本质是一个超级计算机,很多数据和逻辑直接放在链上,完全的serverless。只需要通过一些接口访问链上数据即可。

而且区别于传统互联网的信息传递,在区块链叫价值的传递。这样就有人依据这些技术特性,重新定义了基于价值传递的Web3.0。以太坊的很多接口也被定义成web3.js, web3.py等。

但我们要谨记:DApp不仅仅是Web DApp,还有基于App的DApp。

什么不是DApp

在一些传统游戏里面,商家会把比特币作为游戏获胜的奖励,或者作为充值的入口而已。但这并不能称之为DApp,因为它不符合数据上链的特征。所有的游戏数据还是存储在商家的服务器上,而不是区块链上。

02

DApp典型案例

这部分内容我们将从以下几个方面展开:

Satoshi Dice

CryptoKitties

P3D/F3D

NeoWorld

Satoshi Dice

玩法及介绍

DApp游戏最早可以追溯到2012年诞生的Satoshi Dice(中本聪骰子),这是一款以比特币作为投注筹码的博彩小游戏。该游戏通过给几个不同的转账地址设置不同的赔率,在用户向这些地址转账的时候监听所产生的Transaction Hash,进而产生一组0到65536之间的随机数,作为玩家是赢还是输的判定数字。

多年来,这款游戏都是BTC的第一大应用,高峰时期甚至占据了BTC网络一半的交易量。2013年7月18日,“中本聪骰子”网站的创始人Erik Voorhees在当天宣布,“中本聪骰子”已以?126315?枚比特币的价格售出,根据当时的比特币价格计算约等于1100万美元。该游戏早期是支持BTC的,现在转为支持BCH。

实现机制

每天系统会生成一个秘钥,直到下个秘钥产生之前不对外公开,只公开秘钥的哈希值,并记录在链上。

这个hash加上玩家的每一次下注的transaction 哈希值,执行512位SHA2哈希。

哈希出的前四个字段,16进制,0-65536之间的数字,作为玩家是赢是输的判定数字。

等最终秘钥公开后,玩家可以通过秘钥和hash值去验证结果是否被操作过。从而保证下注结果的公平性。

有程序根据结果去结算。

Satoshi Dice启示

开区块链博彩之先河:做过棋牌游戏或者是随机性游戏的人都知道,这一类游戏最关键的在于随机生成器(发牌器)有没有被人控制,而中本聪骰子利用区块链技术很好地解决了这一问题。

基于地址的账户系统:没有用户系统,所有的账户系统都是基于比特币的账户地址来进行交易。

随机数生成器在链上,可自证。

半自动结算,不能完全的自动化(没有智能合约):由于比特币本身只是一个简单的项目,所以它不能完全实现自动化结算,还是需要一定的人工进行结算。

Satoshi Dice追随者

在中本聪骰子之后,各类博彩小游戏如雨后春笋一般相继冒出来。比如vDice,Edgless,fair.game,dice2.win等。

( vDice官网 )

vDice:这是一款应用以太坊智能合约技术的骰子游戏应用, 其ICO将给你一个入股区块链骰子游戏庄家资金池的机会, 其非常明显的优势就是游戏中庄家总是占据上风。

Edgless官网

Edgless(EDG):这是一个去中心化赌场, 使用以太坊智能合约,完全公平。随机数由以太坊智能合约生成,完全透明。

( Fair.Game官网 )

Fair.Game:这是全球首个基于区块链技术打造的线上游戏平台,并在全球范围内第一个实现了线上游戏的链上运行。

( dice2.win官网 )

dice2.win:24小时交易量位居第三的dice2.win,也是后起之秀。它对外的宣传推广较少,主页界面也并没有像一般博彩类做的大红大紫使它第一眼看上去具有冲击力,但胜在玩法多样。除了常规的掷骰子猜数字,还加入了猜硬币正反面、猜两个骰子总和的玩法,同时也直接嵌入了Etheroll的玩法。

CryptoKitties

介绍

这是一款基于以太坊平台运行的聚众云吸猫的游戏,用户在游戏中可以养大、买卖并繁育“电子宠物”小猫,每只小猫和繁衍的后代都是独一无二的。

这款游戏于2017年11月上线,V神还特意为此发博点赞,一时间风靡币圈。

到2017年12月3日之前,以太坊排队待处理的交易几乎没有突破5000,但3日开始,待处理交易几乎直线上升,到4日凌晨4点左右已经突破1万,当日下午已经突破1.5万,5日接近凌晨6点触及2万关口,可谓是第一款让以太坊堵死的DApp。在这款游戏中,最贵的猫价值高达600+ETH。

这款游戏最重要的一点是引入了非同质资产ERC721协议,ERC721 用来定义非同质代币,即每个代币都是唯一的。CryptoKitties利用该协议在固定时间产生一只创世猫,两猫可以交配,根据定义的基因数据、遗传算法获取后代猫的特性基因,因而每只小猫和繁衍的后代都是独一无二的,在该协议的运用上做了一个很好的典范。

启示

开启真正的区块链游戏时代:在以太猫之前,区块链游戏基本上都是以博彩为主,以太猫的出现,带火了一系列的养成类游戏。

价值转移有了新的资产类型——ERC721:以前我们说价值转移,一般是转诸如比特币、以太坊、ERC720这样的代币,有了ERC721这类资产之后,很多实物的数字资产可以被映射到链上。

真正的游戏平台——平行游戏世界:在以太坊平台上,游戏和游戏之间可以通过合约进行互调,而不是像传统游戏之间,相互独立且割裂,没有什么联系。

切入游戏数字资产的庞大市场:我们可以把游戏里的核心资产放到区块链上进行交换。拿以太猫来说,我可以脱离以太猫的官网,基于ERC721协议,把我的猫转给你。“道具上链+移动钱包”可以实现两个用户随时随地在线上线下交易。?这和传统网络游戏交易平台5173相比,整个运作模式会更加便捷。

CryptoKitties追随者

以太猫的出现对于区块链游戏的多样性发展来说,具有划时代的意义。随着它的出现,一大批类似的游戏都开始展露头脚。

比如直接模仿以太猫的游戏有以太水浒、莱茨狗等。在以太猫的基础上增加了一些玩法的游戏有以太精灵,以太少女,区块链炉石,以太镇等。

基于我们前面讲到的平行游戏世界这个意义,CryptoCuddles这款游戏就是一个典型案例。它是基于以太猫的猫咪战斗游戏,玩家用自己的以太坊地址登录,游戏就会自动获取到该地址下所有的加密猫咪,角色来自于以太猫,只有战斗逻辑来自于CryptoCuddles本身。 利用这一点,后期我们可以基于老游戏开发一系列的新游戏。

P3D/F3D

P3D介绍

规则:p3d是一个由智能合约创造的erc 20的token,可以理解成项目方的股份。Keys初始价格是0.0000001ETH。每当你买一个Keys,价格上涨到0.00000001ETH。每当你卖一个Keys,价格下降到0.00000001ETH。每次交易,都有10%的交易额分配给整个平台的已有的Keys持有者。即buy多花10%,sell少花10%,transfer回收10%。当一个用户的Keys数到达5以后,他会获得一个特殊的地址,成为超级节点。当有人通过这个地址购买的时候,该用户能够获得直接获得33%的交易费,即推荐费。

从本质上来说,P3D相当于一个无限深度的交易所,这意味着只要你持有Keys,你将持续不断的赚取eth,直到你抛售,收益比例按持有量计算。其次,P3D本质上是母盘+生态的玩法。P3D是母盘,F3D,F3D Long,F3D Quick以及后续推出的其它游戏作为生态来不断填充母盘的内容。这种玩法值得很多做公链的人来借鉴,而不仅仅只把它当作一个资金盘游戏来研究。

F3D介绍

F3D是一个量化模拟资金盘的游戏,通过拉盘等手段激发大家恐慌性买入,并且通过空投的方式设置一些小奖池,最刺激人心的当然是最后一棒的大奖设置。

P3D/F3D启示

真正纯粹的区块链游戏:完全去中心化

--永动机:游戏一旦开始就不会停下。

--无admin,owner控制

--有限的多签名控制:调用接口需要多重签名,好几个人以前控制才能实现

链上推广员机制:任何通过推广链接加入的新用户,其为游戏贡献的ETH投入的10%便会发放给你,且推荐奖励机制是层层穿透的。因而,即便玩家不参与购买“Key”,只要能找到愿意加入的玩家,并怂恿他们购买,一样可以获得超高的收益,在游戏中获得快乐。

这对整个区块链游戏的推广机制来说,是一个巨大的进步。以前的博彩游戏因为没有用户系统,很难设置推广机制。但是P3D/F3D通过合约的方式很好地解决了这个难点。

自动化的利益分配:这是属于区块链上最有价值的一点。通过自动化分配,无论奖金池里的资金有多么诱人,系统只会按照智能合约写定的规则来进行分配。游戏相关的智能合约代码完全公开,游戏开发人员对游戏没有修改和作弊的权限,这对团队内外的利益分配和协作来说,每个人都可以看到实时进展和收益,大大提高了便捷性和公平性。

F3D技术研究

逻辑分拆:F3D合约大概有四五千行代码,算是比较复杂的体系了,我们可以拆分一下代码背后的逻辑。

统一的推广员体系:这是我前面极力推荐的一个亮点,非常值得研究。

多签名玩法:这一设置非常适合比较松散的团队,在关键环节运用多签名的方式进行控制,而不是一个人拍板就可以决定。

代码破解:它的部分代码不是开源的,我们可以利用一些手段进行破解,也有很多值得研究的地方。

Airdrop薅羊毛:我们可以针对这个漏洞深入研究两件事情,一是研究薅羊毛的合约代码如何写,二是如果我们自己做一个F3D的游戏,如何避免让别人薅羊毛?

第一轮大奖的骚操作:获奖者在自己极有可能成为中奖者时,利用一些高额手续费的神秘交易,吸引矿池优先打包,占满后续区块,从而使得其他玩家购买 key 的交易无法被正常打包,最终加速游戏结束,并极大地提高自己的中奖概率。从原理上讲,这是可以破解的。

P3D/F3D追随者

P3D追随者

(Zethr.io )

Zethr.io:它和P3D一样,也是做了一个母盘,但是有所不同的是,它让用户根据风险、偏好自行选择收益类型,基于这个母盘,在外部又做了很多游戏,游戏通过母盘的代币进行下注,而不是通过eth进行下注,代币合约是ERC233合约,而不是ERC230合约,整个的设计还是比较有趣的。

F3D追随者

LastWinner:这是首款完全去中心化的类Fomo3D游戏DAPP,完全基于以太坊智能合约原生开发。只要下载安装App就可参与游戏。不过想玩这个游戏,想充钱一定要有邀请码,没有邀请码无法进入。一旦成为一个推广员,就可以生成邀请卡,截图并分享给朋友或者从其他渠道参与的玩家,并叮嘱他们在注册游戏账户时填写您的邀请码。任何通过邀请码注册的玩家,游戏投入的ETH,将获得其中10%。如果邀请的玩家也注册为推广员,那么他邀请的玩家在游戏中投入ETH,也将获得其中3%。这一推广员机制是极具粘性的,将会从下级和下下级玩家中持续获得推广收益。

除了LW,F3D还有不计其数的各种山寨仿盘,此处我们不做罗列。此外还有EOS仿盘,它把F3D的玩法整套搬到了EOS上,不过它具备下注不用花钱的优势。

NeoWorld

介绍

NeoWorld是一个基于区块链技术的多人联网虚拟世界,也是一个由全球用户共同协作创建的3D空间。在NeoWorld的世界,用户创造价值,用户收获财富。

根据官网的介绍,官方总结了这款游戏的四大特点,分别是:通政经济的创新试验,全球首款MMO-BSG,自创、自有、自治的平台,第三代的游戏商业模式。

NeoWorld启示

NeoWorld相当于Minecraft(我的世界)这款游戏的区块链版本。

Minecraft是一个关于方块与冒险的沙盒游戏,在游戏中不存在规定的路径、也没有任何玩法的限制,适合所有类型的玩家。在这个无比自由的世界内,你能够获得比想象中更多的乐趣。生存探索的爱好者可以在游戏内成为冒险家,收集资源、建筑家园、抵御怪物、发现宝藏……既可以一个人去探索充满挑战的未知世界,也可以邀请好友并肩作战。这款游戏在中小学生这个群体中非常受欢迎。

游戏中的这些设置,实质上相当于建立了一个新的虚拟世界,将物理世界的东西映射到数字世界中,称得上是大型游戏的高阶形态。

DApp技术要点

这部分内容我们将从以下几个方面展开:

链的选择

交互端的选择

纯粹 vs 混杂

(DApp框架示意图)

链的选择

基础公链:即具有不依赖第三方、通过自身分布式节点进行网络数据存储、验证、传递和交流的区块链平台。具有去中心化、系统开放性、自治性、信息不可篡改、匿名性等特点。

游戏链:针对游戏这个应用场景,定制的一条公链。

侧链:以比特币为例,侧链是可以让比特币安全地从比特币主链转移到其他区块链,又可以从其他区块链安全地返回比特币主链的一种协议。

基础公链

如图所示,基础公链中,拿以太坊和EOS对比,以太坊具备开发工具较完善,开发人员众多,生态丰富的优势。而EOS最大被人诟病的地方在DPOS的机制。EOS为了提高性能,在安全性上做了牺牲,尤其是「矿机」被称之为节点,需要投票出来才能挖矿。很多人诟病可能会形成联盟垄断。目前创建一个EOS账号大概需要20-30块钱,开户成本较高,开发工具尚不丰富。

但是EOS的出块速度可以达到亚秒速度,且无交易费用。相比以太坊的交易成本和易拥堵的特点来说,这是其两大优势。

游戏链

GCS:GameChainSystem,GCS游戏链是游戏行业底层公链,基于石墨烯2.0技术,它的网络出块速度比BTC和ETH更快,能更快完成网络广播,更适用于游戏行业、支付行业等高实时性要求的行业。

BCX:Cocos。在它的白皮书中发现,它的终极目标是做一条游戏基础链,同时提供给开发者一整套开发环境进行调试和发布。他们将区块链游戏分为四个阶段:第一阶段,使用 token 作为游戏金币的结算;第二阶段,游戏金币和道具的去中介化、去代理交易;第三阶段,关键规则上链运行;第四阶段,游戏整体上链运行。Cocos-BCX已经实现前三个阶段的全部功能,正在尝试第四阶段的解决方案。

Egretia Blockchain:白鹭。作为一家致力于HTML5引擎技术工具研发,推动移动游戏服务生态全面发展,白鹭科技已成为全球最大的HTML5移动技术及服务提供商,核心产品白鹭引擎(Egret Engine)占据国内超七成HTML5游戏引擎市场份额,拥有20万+遍布于全球的开发者。

laya.one:从技术方案上看,LAYA.ONE既是现有技术的继承者,又是史无前例的开拓者。LAYA.ONE在继承区块链已有DPOS共识算法的同时,还融合了传统游戏成熟的分布式大型网络方案。

Unity插件资产上链:利用区块链的去中心化特点和Unity引擎的覆盖广度,Enjin Coin和Unity达成合作。双方将为开发者提供相应的技术支持。合作建立后,使用Unity引擎的开发者将可以通过Enjin的SDK来制作相关的区块链游戏内容。比如将游戏内道具/资产上链等。

我们可以重点关注一下BCX最近做的几件事情。

BCX-NHAS-1808非同质资产定义和流通标准

改进的原子事务机制

便于迭代的合约系统

支持多交易所深度共享的去中心道具交易系统(去中心挂单)

LUA智能合约

以及基于世界观系统的道具资产铸造、穿越和嵌套方案

侧链

接下来我们讲一下侧链,在讲侧链之前,我们需要先弄清楚以太坊的扩展方案。

我们都知道,POW的全网共识导致TPS受限于单节点的处理能力(15笔/秒)。因为节点的能力不能无限提高,需要保证小算力的机器也能接入网络。在这种条件下,我们的解决方案有二:

一层:sharding,分片,并行处理。片数x15 tps

二层:offchain, 以太坊只做核心业务,其他业务隔离。方案有:状态通道,Plasma,Truebit

loom network

如图所示,loom network本质上就是一个二层解决方案。它的核心产品是一款SDK,可以让开发者快速构建自己的区块链,而无需了解区块链基础架构。

Loom SDK会生成一个我们称之为DApp链的产物,将每个DApp运行在它自己的以太坊侧链上。DApp链可以使用其他共识规则集(如DPoS)来优化高可扩展性。用以太坊作为基础层意味着基于DApp链的资产(如ERC20和ERC721代币)将会有以太坊的安全保证,尤其是当由Plasma支持时。这种方案非常适合用来做大型游戏,利用主链来做资产的交易,把逻辑向的东西全部放在子链上。

交互端的选择

如图所示,交互端可选Web端和App端,我通过对比总结了两种方式的优势和劣势。总的来看,最终是基于Web还是基于App来做,需要综合各种因素来全面考虑。

纯粹 vs 混杂

Backend

理论上来讲,一个最纯粹的区块链游戏应该是所有的东西都保存在区块链上,但是这个其实不太现实。尤其是针对后端来说,如果逻辑太复杂,比如说做一个大型游戏,可能需要写十万行代码,那如果保存在链上,就需要写十万行的合约,这样一来调试、部署合约的工作量就非常巨大,且链上可能也无法支撑这么大的数据量。

基于这一现状,我们的选择可以是把一些核心的资产和逻辑放在链上。比如把一些非同质资产、随机发牌器放到链上。

Front

前端可以基于Web也可以基于App。

基于web:传统托管 vs IPFS。IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。

基于App:基于App的DApp。

DApp展望

(DAppReview网站上的排行榜)

进入DAppReview这个网站,我们可以看到这样一张图,上面是排名前20的DApp应用。

排名第一的IDEX是一个去中心化交易所,虽然目前的交易量和用户体验不算太好,但是因为去中心化的定位,用户的资产都存储在自己的账上,所以相对更加安全。

DApp现状

根据这张图显示的信息来看,目前DApp应用总量不足1K,日活最高2K,大多数都是市场、游戏、抽奖领域,类型比较单一。

DApp发展的障碍因素

通过这一现状,我们可以总结一下DApp发展的障碍因素,大致可以归为这么几点:

用户进入门槛高

梯子,入金:交易所从中国撤出后,新用户必须学会科学上网,学会怎么买币

存量用户少:整个市场不太景气

基础公链不成熟

ETH/EOS都有各自不足之处

开发工具不完善

苹果:DApp发展的最大障碍之一,DApp应用上线App Store难度太大

DApp优势

天生国际化:DApp应用的使用无国界

协作简单,分利便捷:不像传统银行手续流程繁多

可初步盈利

以太猫团队

Dice2.win日入20ETH

GodsUnchained:人均付费4000+

针对公链定制的DApp

未来展望

在应用市场、App Store出现之前,想做一个国际化的app非常困难,因为缺少分发渠道,也不知道怎么收费。App Store出现之后,这两大难题得到了很好的解决,但是全球还是有很大一部分人是没有银行账户的,这个基础设施依旧不完善。

如果做区块链的应用,开户、管理成本就会低得多,每个人很快就可以拥有一个区块链账户。只要以太坊可以转帐,你就可以立马获取应用的收益。跟传统收益方式相比,大大提高了便捷性。

推荐阅读:我们正进入一个可以从世界七十亿人民每人身上赚一分钱的伟大时代。

我们正在做

TigerWallet对web版DApp的闭环支持

基于U3D的插件,支持以太坊平台的DApp开发

节点网关

EOS生态预研

与君共勉

过去人们把钱存到银行,银行家就成了世界上最有权势的人。

现在人们把钱存到协议里,程序员即将成为世界上最有权势的人。

程序员的快乐时代来了!

   
1645 次浏览       16
 
相关文章

iOS应用安全开发,你不知道的那些事术
Web安全之SQL注入攻击
移动APP安全在渗透测试中的应用
从Google备份互联网看“数据安全”
 
相关文档

web安全设计与防护
互联网海量内容安全处理技术
黑客攻击与防范技术
WEB黑盒安全检测
 
相关课程

WEB网站与应用安全原理与实践
web应用安全架构设计
创建安全的J2EE Web应用代码
信息安全问题与防范