你的CryptoKitty并不是永恒的——为什么DApp并不像你想象的那样去中心化

  • lukezhang
  • 发布于 2020-02-08 11:37
  • 阅读 31

这篇文章探讨了以太坊上去中心化应用(DApp)CryptoKitties的安全问题,强调DApp在某些方面并不像很多人认为的那样去中心化。尽管DApp运行在区块链上,仍然存在诸多集中化的风险与脆弱性,例如所有猫咪的所有权存储在单一智能合约中,以及合约可以由单个实体暂停或更改其功能,这可能会影响其独特性和价值。

当以太坊的新手问我们为什么应该使用 DApp 而不是传统的网络服务时,我们一直的口号是:“去中心化,去中心化,去中心化。”一个中心化的网络服务可能会受到政府的审查,但 DApps 是安全的。一个中心化的网络服务可能会在一次故障中失去所有数据,但只要以太坊还存活,DApps 就是安全的。中心化服务默认是围墙花园,但 DApps 可以在交易所上开放交易其代币。

但是人们未提及的是,DApps 比以太坊本身有更多的脆弱性和弱点,而单单因为 DApp 运行在去中心化的区块链上,并不意味着它能躲避其所有者的任性。

随着 CryptoKitties 的爆发,很多新手进入这个领域,对 DApp 的性质没有清晰的理解,因此我将以 CryptoKitties 为例,说明 DApps 一般存在的一些隐性和不太明显的问题。

一条猫咪冰河可以通过一个人的单个命令发生

一只猫咪的所有权存储在一个单独的合约中 — KittyOwnership — 部署在以太坊主网。值得庆幸的是,该合约没有 selfdestruct 功能,因此所有者无法直接销毁它,但所有者可以做一些几乎同样具有破坏性的事情。

function pause() external onlyCLevel whenNotPaused {
  paused = true;
}

该合约的所有者可以在没有其他人同意的情况下 pause 它,如果他们也使用 upgradeContract 功能,当前合约将被暂停而永远不会解冻。所有存在的加密猫咪将永远沉睡。

DApp 不是区块链 — 你无法通过单个命令杀死或严重毁坏以太坊,即使一个节点决定做一些自杀式的事情,其他所有节点都会继续运行。仅仅因为以太坊具有这些特性并不意味着在以太坊上运行的 CryptoKitties 合约也共享这些特性。在以太坊看来,只有一个版本的 KittyOwnership 合约,而该合约由一个单独的钱包拥有。这一点也不能更中心化了。

一只加密猫并不像看起来那么稀有

创世纪 — 售价115000美元的猫咪

CryptoKitties 的一个核心概念是你可以繁殖它们,有机会获得一只稀有且受欢迎的猫咪。例如,一个人实际上花了 246 个以太币(当时价值 115000 美元)购买了一只 Gen0 猫 — Genesis。他可能认为这只猫是绝对独特的,并且他的所有权被存储在以太坊上,永恒地得到证实。

但控制加密猫咪繁殖结果的 GeneScience 合约不仅是闭源的(在 Etherscan 上未经过验证),而且可以由 CEO 在任何情况下替换。

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

这意味着,明天 CryptoKitties 的 CEO 可以将猫咪繁殖算法替换为可以产生更多 Genesis 型猫的算法,或以其他方式进行更改,这将影响未来某些猫咪的稀有度。一个拥有 1/1 独特猫咪的人可能会突然发现自己拥有一只 1/1000 的普通家猫。

虽然 CryptoKitty 合约的所有者不太可能这样做对其用户,但这并不能改变这一事实:将来总会有可能有人这样做。真正独特的东西和通过社会协议认为是独特的东西之间存在价值的差异。

一只加密猫可能明天就长出另一条尾巴

以太坊的运行和存储是昂贵的,因此 DApps 理所当然地只包含最基本的逻辑和数据。加密猫咪的独特性表示为一个无符号整数:

uint256 genes

读取这个无意义整数并将其转换为具有所有外观、颜色、描述等的加密猫的代码都在一个中心化服务器上,闭源,受中心权威控制。

不同于区块链,软件由每个节点运行,每次升级需要硬分叉或软分叉。CryptoKitties 的开发者可以在任何时候单方面更改基因序列的解释 — 添加另一条尾巴,改变其颜色,切换描述,或将猫咪变成狗e。

并不是因为某人拥有包含特定猫咪及其基因的 ERC721 代币,就意味着此人拥有生成猫咪的所有数据。

你的猫咪就像皮卡丘一样,抵御了糟糕公司决策的影响,因为某人决定他可以突然说英语:

皮卡丘会说话![1080p,英语] | 宝可梦大电影:我选你! - YouTube

hadamsj

149K 订阅者

皮卡丘会说话![1080p,英语] | 宝可梦大电影:我选你!

hadamsj

搜索

稍后观看

分享

复制链接

信息

购物

轻触以取消静音

如果播放没有立即开始,请尝试重新启动设备。

更多视频

但不必这样...

我必须明确指出,CryptoKitties 的开发者并不是出于恶意或不良意图而这样做的。他们在当时非常有限的基础设施下做出了最好的 DApp,并且他们成功吸引了新用户加入社区。

真正需要的是 一种能够运行完整应用程序的方法,其代码全部在节点中运行,并且其数据 不仅是去中心化的而且可以被任何愿意自己运行节点的人拥有

只有当我们能够实现这一点时,我们才能真正拥有意义上完全去中心化的应用程序。

来源:

CryptoKitties - 源代码 \ \ ethfiddle.com

Loom Network 是一个多链互通平台,用于扩展高性能的 dapps — 已在生产中上线,经过审计和实战测试。

将你的 dapp 部署到 Loom 的 Basechain,一次性覆盖全部主要区块链的最广泛可能用户基础。

对于 Loom 新手? 从这里开始

想要质押你的 LOOM 代币并帮助保护 Basechain? 了解如何

喜欢我们所做的事?通过 [注册我们的私人邮件列表](http://bit.ly/LoomNewsletter) 保持更新。**

  • 原文链接: medium.com/loom-network/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
lukezhang
lukezhang
江湖只有他的大名,没有他的介绍。