首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使智能契约仅可从Web应用程序访问

使智能契约仅可从Web应用程序访问
EN

Ethereum用户
提问于 2018-11-28 20:40:11
回答 3查看 393关注 0票数 2

我有一个可靠的智能合同,它只与使用web3的反应前端交互。我希望限制对智能契约的访问,这样只有反应性前端才能访问智能契约。这将阻止其他合同或dapps能够调用该合同。这是如何做到的呢?

EN

回答 3

Ethereum用户

发布于 2018-11-28 21:08:06

这是不可能的,因为Ethereum是一个开放的公共网络。

还有一些事情要做,以防止其他契约与其交互,例如使函数内部可调用,但这样做,您将取消Dapp与其交互的能力。

听起来你想要的不是一个传统的数据库,就是一个只有你能访问的私人连锁店。

票数 1
EN

Ethereum用户

发布于 2018-11-28 22:03:25

这类事情根本是不可能的。根据定义,前端代码正在用户的计算机上运行.用户控制他们的机器,所以他们控制前端.

假设您的问题有一个假设的解决方案:用户只需右键单击前端,选择Inspect Element并用自己的代码替换前端代码。所以这是不可能的。

实际上,您可以防止另一个智能契约调用您的智能契约。一般来说,这是一种糟糕的做法,但您可以这样做:

代码语言:javascript
复制
modifier noCallByContract()
{
    uint32 size;
    assembly { size := extcodesize(caller) }
    require(size == 0);
    _;
}
票数 1
EN

Ethereum用户

发布于 2022-10-06 13:49:43

现在,这是不可能的。您只能防止另一个DApp或契约访问您的函数和变量,而不能访问您的契约。

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

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

复制
相关文章

相似问题

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