首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拥有一个集中化的前端不会对Ethereum应用程序构成巨大的安全风险吗?

拥有一个集中化的前端不会对Ethereum应用程序构成巨大的安全风险吗?
EN

Ethereum用户
提问于 2018-02-27 21:48:42
回答 3查看 432关注 0票数 2

我的理解是,Ethereum应用程序的典型体系结构是让智能契约充当一个集中的、无状态的前端的后端,该前端运行在单个服务器上。

这难道不是一个相当明显的安全风险吗?如果前端应用程序被劫持,所有用户的操作都可能被误导到攻击者想要的任何东西(即,不是将以太发送到有用的智能契约,而是发送到攻击者的钱包中)。

有没有办法以分散的方式托管前端应用程序?

EN

回答 3

Ethereum用户

回答已采纳

发布于 2018-02-27 22:03:48

这确实带来了明显的安全风险。理论上,用户在发送之前会在MetaMask等文件中预览他们的事务,所以他们不需要信任dapp,但是在实践中,您预览的数据是一个神秘的契约地址和一个难以理解的十六进制数据块,而该数据的上下文--比如哪个kitty有哪个ID --来自dapp,所以一个流氓前端可以很容易地欺骗用户将不同的事务发送给他们想要的事务。

这个问题可能可以通过服务内容来解决--通过浏览器扩展提供的IPFS或Swarm的地址数据,并使用执行部署过程的命名契约(例如在部署前将代码放在一起以供审查)来控制可以显示给用户的特定应用程序名称的代码。然而,这些系统很难设计,dapp开发人员还没有一个可以轻松部署的实用解决方案。

票数 4
EN

Ethereum用户

发布于 2018-02-27 22:00:56

通常,Ethereum的前端的目的是提供一种“漂亮”的方法来调用上传的智能协议上的函数。当然,黑客可以更改用户与之交互的智能契约的地址(但用户总是能够看到他们的事务正在进行的)。您可以使用IPFS https://ipfs.io托管一个分散的前端。

使用分散后端和使用像EtherScan这样的工具的伟大之处在于,我们总是能够以相对简单的方式看到我们的以太走向何方。

如果前端确实被劫持,而黑客确实更改了合同地址,用户将能够看到他们的交易并没有达到应有的地址(想想你知道你的朋友的街道地址,有人偷了你的电话和信息,你为了抢劫你而来到一个不同的地址,你会对去那个地址保持警惕,因为你以前从未去过那里,也没有给出原因)。您还可以查看合同所包含的事务数量(只有在最近发生了很大变化的情况下才有用)。我认为这是一个有点小的问题,可以通过使用IPFS来解决(但是,它可能很慢)。

为了概述黑客必须做什么才能从用户那里恶意获取以太,他们也会;

  1. 创建并发布一份新的智能合同,将资金转移到个人钱包中。
  2. 在智能合同中创建一个应付款函数
  3. 将支付功能链接到前端。该功能还必须有类似的汽油价格,以免引起用户的怀疑。
  4. 更改前端的ABI引用。
  5. 希望没人注意到!
票数 2
EN

Ethereum用户

发布于 2018-02-28 00:49:49

是的,这是正确的,这就是为什么你可以在IPFS+IPNS上托管你的数字应用程序(在像webpack这样的建筑之后)。

同样的逻辑也适用于先知,他们是集中的失败点。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/41130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档