BCH可能会走出与众不同的DAPP之路


现在各类DAPP发展的如火如荼,其中最热闹的当属ETH和EOS了。那么BCH应该怎么发展DAPP呢?

DAPP的定义      

DApp是DecentralizedApplication的缩写,译为:去中心化的应用程序。但是我认为DAPP应该分成狭义和广义两类:

1  狭义的DApp是需要满足完全开源并且是自治的应用程序。DApp一经部署完毕,便不可更改。应用的升级必须由大部分用户达成共识之后才可以进行升级。所有的数据必须进行加密存储在去中心化的区块链应用平台上。其次DApp必须要有token机制。

DApp能够进行容错,不会出现单点故障。它们没有中心化的机构能够进行干扰。不会出现某些数据的删除或者修改。甚至不能被关闭。由于数据都是进行的加密存储,不会出现类似于FaceBook,Google之类的用户数据泄露事件。

2  广义的DAPP就没那么严格了,只要是用到区块链技术,并且保证运行结果公开公正的就可以成为广义的DAPP。

现在很多DAPP都是半中心化的,关键的数据上链,一些无关紧要的数据以及运算等放在中心化服务器上进行,这样既保证了公正又兼顾了效率。

BCH的短板

现在ETH或者EOS上运行了大量的DAPP,因为这类公链都是使用的帐户制记账,可以很轻松的开发有状态的智能合约。而BCH记账是采用的UTXO制,这种机制的好处是可以处理极高的交易量,坏处就是无法开发有状态的智能合约。UTXO的特性决定了脚本的状态要么是“未花费”,要么是“已花费”,没法变成其他状态。

狭义DAPP的不足之处

虽然狭义DAPP很高大上,但是本身是存在一些不足的:

1     性能低下。因为狭义DAPP所有的运算都在链上进行,这就导致了性能非常低下,之前以太猫火爆的时候一度堵死ETH网络就是经典的案例。

2     大量代码存在漏洞。虽然中心化的服务有跑路的风险,但是DAPP的代码风险也不小,很多实力不强的DAPP开发团队,在产品开发好之后就丢到链上了,没有经过严格的代码审计。一旦代码里面的漏洞被人利用,因为狭义DAPP完全去中心化的特性,会导致极其严重的损失。

2016年6月17日,黑客发起针对The DAO智能合约多个漏洞的攻击,其中也包含了递归调用漏洞,并向一个匿名地址转移了3600万个以太币,几乎占据了The DAO众筹总量1150个的三分之一。这次严重的事件导致了后来的ETH/ETC分叉

在伦敦大学学院(University College London,UCL)计算机科学系副教授伊利亚·谢尔盖最新的研究论文《Finding The Greedy , Prodigal , and Suicidal Contractsat Scale》中,通过对将近 100 万份智能合约进行每份合约 10 秒分析时间的分析后发现,这其中有 34200 份智能合约很容易受到黑客攻击。同时他们又对 3759 份智能合约抽样调查,在这之中,3686 份智能合约有 89% 的概率含有漏洞。

3  容易被复制。因为狭义DAPP是完全开源的,所以非常容易被人复制。以ETH为例,每当有一款DAPP火爆的时候,在极端时间内,就会冒出无数的复制品,因为复制成本实在太低了,改改名字和参数以及外观什么的,就可以轻松搞定。这也导致了DAPP很难形成规模效应,每次刚有点火,就被大量复制品给分流了。 

BCH可以走广义DAPP的路线

因为BCH自身短板的存在,BCH很难走狭义DAPP的路线(虽然理论上可以使用虫洞等解决方案,但是虫洞目前暂停开发了)。BCH可以走广义DAPP之路,正好可以弥补狭义DAPP的三个不足之处。我们以BCH首款彩票游戏nakamotogame为例来一一分析:

1     性能不再低下。广义DAPP只把关键数据上链,其他非关键的东西都放在链外的中心化服务器运行,极大的提升运行效率。

这款游戏在链上的部分只有这几个: 用户投注,返奖,投注交易的哈希值和开奖区块的哈希值。可以说非常简单,然而这几个数据就足以保证开奖的结果绝对无法被篡改,确保了结果完全公开公正。具体可以看我之前的文章《详解首款BCH彩票游戏 - nakamoto game》

2     网站是闭源的,因此就算同样没有代码审计,黑客要找出漏洞也比开源的困难很多。而且一旦运营者发现漏洞,可以立即进行修复。

3     项目不容易被复制。开源的DAPP被复制几乎是分分钟的事情,而这个彩票游戏,如果谁要搞一个同样的,因为无法抄到代码,只能进行山寨模仿,困难程度会极大的增加。这其实也是给项目自身增加了一条护城河,项目越是复杂,被山寨的难度越高。而狭义的DAPP,无论多复杂的项目,别人都可以一键复制粘贴。 

结束语

 

BCH自身的特性很可能会让BCH走出一条与众不同的DAPP之路。而近段时间BCH冒出的很多应用,也都符合广义DAPP的特性。

 

分享到