LOGBOOK

HELP

Quiz Entry - updated: 2026.07.30

What is the Embedded Permission pattern, and what disaster illustrates why it matters?

Build access control into every smart-contract function so it checks the caller's address before running its core logic — because a public-chain contract is callable by anyone by default, and a permission-less sensitive function is an open door.

  • Problem. By default a deployed contract has no owner and any participant (or any other contract) can call any of its functions — the code is public. A permission-less function meant to be privileged can then be triggered by an unauthorised user, even accidentally. This is exactly how a bug in a Parity multi-signature wallet library let someone invoke an unprotected function and freeze roughly 500K Ether.
  • Solution. Add a permission check to every function: before executing the core logic, verify the caller's blockchain address is authorised, and reject unauthorised calls up front. In Solidity this is typically done with a modifier that runs the check before the function body.
  • Benefits. Security and secure authorization, enforced on-chain using the chain's own identity primitives.
  • Drawbacks. Cost (extra code raises deployment and run-time cost on a public chain) and lack of flexibility (permissions are fixed at deployment and hard to change without an additional dynamic granting/removal mechanism).

Go deeper:

From Quiz: IOTHACK / Design Patterns for Blockchain Applications | Updated: Jul 30, 2026