In this track: Advanced security reasoning
advanced · 4 MIN READ

Proxy admin and implementation risks

Upgrade authority and application authority may be separate paths.

LET’S PICTURE IT

The person replacing a vault’s manual can have different powers from a daily clerk.

SEE IT FOR YOURSELF
A valid counter call, step by stepStep 1 / 4
A valid counter call, step by stepFunction requestincrement()No argumentsBefore executionstored count0A local teaching example with a defined starting stateIncoming callCheck function dispatchCheck coded conditionsRules passConditions passContinue executionA failed check can revert insteadCalculation0 + 1Result: 1Storage writecount = 1Persists if call succeedsCalculating a local value and storing it are separate stepsPersistent statecount1Later readGetter reports 1No new incrementState, logs and browser display have different roles

This example begins with count zero and a request to call increment(). No real contract is deployed.

Animated local teaching model. No wallet, RPC or live blockchain data. Some labels and hashes are abbreviated for readability.

List all authorities

Identify who changes implementations, who changes admin roles and who controls application actions. These may be different accounts or governance systems.

Inspect the exact proxy pattern

Transparent, UUPS and other designs route administration differently. Do not copy one pattern’s assumptions into another without reading its actual control flow.

Review implementation exposure

Initialization and direct calls to an implementation can have consequences depending on its design. Keep implementation instance state separate from proxy state in the analysis.

Test role separation

Exercise admin, user, former admin and unauthorized paths through the deployed local pattern. Include upgrade and initialization workflows rather than only normal calls.

Work through the boundary

roles: application owner; upgrade authority; emergency authority
review who can change each role and each implementation target

A simplified local review scenario. The example establishes a question to test, not a guarantee of production safety.

QUICK CHECK · NO PRESSURE

Are all proxy patterns administered through identical call paths?

Your progress stays in this browser.
Keep exploring the original referencedocs.openzeppelin.com ↗

Original explanations by EtherTools. Examples are educational and source-linked; this site is independent of the Ethereum Foundation. Our approach.