Three properties define the engineering problem. The code is public, so anybody can study it for mistakes. Anybody can call it, so there is no trusted caller. And on most chains it cannot be patched once deployed, so a bug is permanent unless an upgrade path was designed in beforehand — and an upgrade path is itself a centralisation risk somebody has to hold the keys to.
Together those turn ordinary software mistakes into immediate, irreversible financial losses, which is why this field has a testing culture that is unusual by normal application standards: property-based tests, fuzzing, formal reasoning about invariants, and independent review before anything holds real value.
Related terms
Solidity
The main language for writing smart contracts on Ethereum and the other chains that run the same virtual machine.
Gas
The unit of computational cost on Ethereum-style chains: every operation has a price, and the caller pays it.
Smart contract audit
An independent review of contract code before it goes live, looking for the ways it can be drained, locked or manipulated.
ERC-721
The Ethereum standard for non-fungible tokens: a contract interface where every token has its own distinct identity and owner.
The bench this belongs to
BlockchainSolidity on Ethereum, Polygon, Base and Arbitrum. Anchor programs on Solana. Written with tests first, because a redeploy is not a hotfix once value is on the line.
