Track 3 · Ethereum & the EVM · lesson 3

What a smart contract actually is

7 min


"Smart contract" is a bad name. It is not smart, and it is not a contract.

It is a program whose code and state live on a blockchain, executed identically by every node, that nobody can stop or change once deployed.

Each part of that sentence is doing work.

Nobody can change it

Deployed bytecode is immutable. There is no patch, no hotfix, no redeploy in place. Find a bug an hour after launch and the buggy version is what exists, permanently.

This is why auditing matters so disproportionately in this field. In ordinary software a bug is an incident; here it can be unfixable and simultaneously worth millions to whoever finds it first.

Upgradeable proxies exist as a workaround, and they trade immutability for the ability to change — which means someone holds the power to change it. That is a different risk, not a smaller one, and it gets its own Breach Lab lesson.

Nobody can stop it

No server to shut down, no company to subpoena, no hosting provider to complain to. As long as the network runs, the contract can be called.

That is genuinely valuable when the alternative is a payment processor deciding you are a prohibited category. It is genuinely dangerous when the contract has a bug, because you cannot pull it offline while you think.

Predict

You find a critical bug in your live contract holding $10M. What can you do?

Choose one answer

Every node runs it

Your contract does not execute somewhere. It executes everywhere — on every node validating that block, independently, producing identical results.

That is why gas exists, why there is no randomness or network access, and why storage costs thousands of times more than arithmetic. You are not buying compute; you are buying the same compute several thousand times over, plus permanent storage on every one of those machines.

Check

What makes deployed contract code immutable?

Choose one answer

Worth remembering

  • A smart contract is a program whose code and state live on-chain and run identically on every node.
  • Deployed bytecode cannot be changed — there is no opcode for it.
  • It cannot be stopped either, unless a pause was built in before deployment.
  • Upgradeable proxies trade immutability for changeability, which is a different risk, not a smaller one.
  • Running everywhere at once is why gas is priced the way it is.