在 Solidity 中破解私有变量的快速指南

在 Solidity 中破解私有变量的快速指南

未标题-3

概述

每个人都多次听说过,智能合约中的一切都是开放的,每个人都可以看到。这意味着,不能在合约中隐藏敏感信息。在这篇简短的文章中,我们将学习如何从另一个合约中读取私有变量。

简单回顾一下:当声明一个变量(或函数)为“private”时,并不意味着它是“private”,因为没有人能够读懂它(因此才有了这个令人困惑的名称)。Private只是指“谁”可以使用它,换句话说,就是变量(或函数)的作用域。

Private→只能从特定的合约中调用。

Internal→可以从该合约和派生的合约中调用。

External →可以从外部源调用。

Public→可以从任何地方调用。

在这篇文章中,我们不会详细讨论作用域,但是更重要的一点是,当声明一个状态变量public时,Solidity会自动为这个特定的变量创建一个getter函数,因此用户可以直接调用它。当一个变量被声明为“private”时,我们需要做更多……让我们开始吧!

想象一下,有人写了这样一份合约:

img

乍一看,似乎只有所有者可以获得分配给secretPassword的值。但是,正如我们之前看到的,所有内容都可以通过智能合约访问。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值