为什么DApps不像你想象的那样分散

还有没有比特币?你也太OUT了
注册OKEx交易所 快速购买比特币  

作者:Luke Zhang

原文地址:https://medium.com/loom-network/your-crypto-kitty-isnt-forever-why-dapps-aren-t-as-decentralized-as-you-think-871d6acfea

本文约1400字,阅读(观看)需要8分钟

当以太坊的新手问为什么要使用DApp而不是传统的Web服务时,我们的口号一直是“分权,分权,分权”。一个集中的网络服务可能会受到政府的审查,但是DApps是安全的; 一个集中的Web服务可能会失败所有的数据,但是只要以太坊仍然存在,DApps是安全的。集中服务默认是围墙花园,但DApps可以在交易所公开交易代币。

但是人们没有说的是,DApps比Ethereum本身具有更多的脆弱性和薄弱点,只是因为DApp运行在一个分散的BlockChain上,并不能保护它不受其拥有者的意外伤害。

随着最近CryptoKitties的爆炸,很多新手都进入了这个领域,没有对DApps的性质有清楚的认识,所以我将用CryptoKitties作为一个例子来说明一些DApps隐藏的问题。

小猫冰河时代可以发生在一个人的单一命令

小猫的所有权全部存储在部署到MainNet - KittyOwnership的单个合同中  。值得庆幸的是,这个合同没有这个selfdestruct功能,所以主人不能直接杀死它,但是主人可以做些破坏性的事情。


函数暂停()外部onlyCLevel whenNotPaused {

  paused = true;

}

合同的所有者可以pause不经任何其他人的同意,如果他们也使用这个upgradeContract功能,那么当前的合同将被暂停而不被解冻。现存的每一个密码小猫都会永远沉睡。

一个DApp不是一个BlockChain--你不能用一个命令杀死或严重地摧毁以太坊,并且即使一个节点决定做一些自杀的事情,所有其他的节点也将继续存在。但仅仅因为以太坊具备这些品质,并不意味着在以太坊上运行的CryptoKitties合同就可以分享它们。就以太坊而言,KittyOwnership合同只有一个版本,合同由一个钱包所有。这不是比这更集中。 密码猫并不像看起来那么罕见
创世纪 - $ 115k美元的猫

CryptoKitties的核心概念之一是你可以繁殖一个罕见的和可取的猫的机会。例如,一个人实际上花费了115 亿美元购买Geno猫 -  创世纪(Genesis)。他可能认为这只猫是完全独一无二的,他的所有权存放在以太坊,永生不朽,可以如此。

但GeneScience控制加密猫性行为的契约不仅仅是封闭的来源(在Etherscan上是未经过验证的),也可以由CEO自己选择替代。


function setGeneScienceAddress(address _address) external onlyCEO {
GeneScienceInterface candidateContract = GeneScienceInterface(_address);

这意味着明天,CryptoKitties公司的首席执行官可以把另外一种生产更多Genesis类型的猫的算法转换成猫的繁殖算法,或者以任何方式改变猫的繁殖算法,这将会影响到某些未来猫的稀有度。拥有1/1独特猫的人可能会突然发现自己是1/1000普通家猫的主人。

尽管Crypto Kitty合同的拥有者很可能永远不会这样做给用户,但这仍然不会改变这样一个事实,即将来有可能会有其他人。价值在真正独特的东西和由社会协定独一无二的东西之间是有区别的。 一只加密的猫可以明天再增长一条尾巴

以太坊运行和存储的东西很昂贵,所以DApps合理地包含最少的逻辑和数据。加密猫的唯一性表示为单个无符号整数:

uint256 genes

读取这个毫无意义的整数并将其转换成密码猫的代码,其所有好的/不好的外观,颜色,描述等都在一个集中的服务器中,在一个中央机构的控制下关闭。

与区块链不同的是,每个节点都运行软件,每次升级都需要硬/软分叉。CryptoKitties的人可以在任何时候单方面地解释整个基因序列的解释 - 添加另一个尾巴,改变颜色,转换描述,把猫变成一个老鼠等等。




仅仅因为某人拥有包含某一特定基因及其基因的ERC721标记,并不意味着这个人拥有了生成该基因的全部数据。

当一个人决定突然说英语的时候,你的猫就像皮卡丘那样不受影响。

但它不一定是这样的...

我必须明确指出,CryptoKitties的制造者并不是出于恶意或恶意。他们在当今非常有限的基础设施上做出了最好的DApp,他们在吸引新用户方面做得非常出色。

真正需要的是一种运行完整的应用程序的方法,整个代码在节点中运行,其数据不仅是分散的,而且任何愿意自己运行节点的人都可以拥有。

只有当我们能够做到这一点时,我们才真正具有分散的应用程序的完整意义的话。


文章转载只为分享区块链技术内容,版权归原作者所有,如有侵权请及时与我们取得联系

本文由 区块链技术网 作者:区块链 发表,其版权均为 区块链技术网 所有,文章内容系作者个人观点,不代表 区块链技术网 对观点赞同或支持。如需转载,请注明文章来源。

还有没有比特币?你也太OUT了
注册OKEx交易所 快速购买比特币  

发表评论