At Achievement.Network, we are really careful about security. We even have external auditors to review our code. However, it looks like some code we've written may be subject to attack.

In the following exercise, you will be the one in charge of Achievement.network security. And you will discover that our testing system is somehow malicious and will try to unlock the contract you're writing. You should forbid him to do so.



You should make the following contract secure
pragma solidity ^0.4.24; contract AchievementNetwork { address public owner; bool public locked = true; modifier onlyOwner() { require(msg.sender == owner); _; } function AchivementNetwork() public { owner = msg.sender; } function unlock() public onlyOwner { locked = false; } }

Amiral Tips: From a design perspective, the code is perfectly valid. It's not a bug specific to Solidity