A blockchain can only see itself
A smart contract executes deterministically, and every node in the network must independently arrive at the exact same result when it processes the same transaction. That requirement is the foundation of blockchain consensus, and it has a strict consequence: a contract can only use data that every node can independently verify by looking at the chain itself, things like account balances, prior transaction history, and the current block number. It has no native mechanism to reach outside the chain and fetch a stock price, a sports score, or a weather reading, because if it tried to fetch that data directly, different nodes could get different answers at different times, and consensus would break.
This is the oracle problem: any contract whose logic depends on external, real-world data needs some mechanism to get that data onto the chain in a form all nodes agree on, before the contract ever runs. The mechanism itself becomes part of the trusted computing base of the contract. A lending protocol that liquidates positions based on asset prices, an insurance contract that pays out based on a flight delay, a game that assigns a random NFT trait, all of these are only as reliable as the pipeline that brought the external fact on-chain in the first place.
