Level 8 - Vault ⏺⏺

Level Setup

Unlock the vault to pass the level!

Level Contract

Exploit

Private variable aren't secret, they are just not accessible by other smart contracts directly during smart contract execution. They can be read directly from the storage slots.

  1. Use foundrys vm.load cheatcode to get the data in the slot.

  1. Submit instance... 🥳

Completion Message

It's important to remember that marking a variable as private only prevents other contracts from accessing it. State variables marked as private and local variables are still publicly accessible.

To ensure that data is private, it needs to be encrypted before being put onto the blockchain. In this scenario, the decryption key should never be sent on-chain, as it will then be visible to anyone who looks for it. zk-SNARKs provide a way to determine whether someone possesses a secret parameter, without ever having to reveal the parameter.

Notes

Last updated