Bitcoin and Ethereum both move value, but they keep score in very different ways. Bitcoin uses unspent transaction outputs, usually called UTXOs. You can imagine them as digital notes in your wallet: if you own a ₹500 note and want to pay ₹300, the whole note is spent and a new ₹200 note comes back as change.
Ethereum uses an account-based model. Instead of tracking separate notes, the network maintains a shared map of accounts and their current state. An account can hold ether, and the balance changes when a valid transaction is processed. This feels closer to a bank ledger, although no bank controls the ledger.
There are two main kinds of Ethereum accounts. An externally owned account is controlled by a private key—the kind your wallet creates for you. A contract account is controlled by code deployed on Ethereum. Both have addresses and can hold ether, but only an externally owned account can begin a transaction by signing it.
An externally owned account stores a balance and a nonce. The nonce counts how many transactions that account has sent, which helps the network reject replayed or duplicated transactions. A contract account can additionally hold code and persistent storage, allowing it to remember rules, balances, votes, loans, or almost any other structured state.
Suppose Rahul sends one ether to Sneha. Ethereum does not search for a uniquely numbered coin and move it. Validators check Rahul’s signature, balance, nonce, and gas, then reduce Rahul’s balance and increase Sneha’s. Every node applies the same state transition and arrives at the same updated ledger.
This model makes smart contracts practical. A lending contract can remember deposits and debts; a game can remember who owns an item; a token contract can maintain thousands of balances. The trade-off is that this growing shared state must be stored and verified by the network, so storage is deliberately expensive.
That leads to a surprising question for tomorrow: if your wallet shows ten different tokens, are those ten separate blockchains—or are they entries inside smart contracts on Ethereum?
Yesterday, we reached a boundary in Bitcoin’s design. Bitcoin is exceptionally good at recording ownership and moving value without a bank, but its rules are deliberately narrow. It can answer questions such as “Does this person own these coins?” and “Has this money already been spent?” What if a blockchain could answer a more interesting question: “Should this money move only when a particular condition becomes true?”
Imagine that you and your friend Rahul make a small bet on a cricket match. Ordinarily, one of you would hold the money, or both of you would trust a third person to pay the winner. That third person could disappear, take a fee, choose a side, or simply make a mistake. Now imagine placing the money inside a transparent digital box. The box contains a rule: after the match ends, release the entire amount to whoever won. Nobody can quietly change the rule, and the box does not need to like or trust either person.
This is the basic idea behind a smart contract. A smart contract is a small program stored on a blockchain. It receives information, checks the rules written into its code, and changes the blockchain’s state when those rules are satisfied. It can hold digital assets, send them, exchange them, or record a result. Once deployed, the same program is visible to the network and every participant can verify what it is supposed to do.
The name can be slightly misleading. A smart contract is not necessarily smart, and it is not automatically a legal contract. It does not understand intention, fairness, or the spirit of an agreement. It follows instructions. If the code says that money should move after a certain digital signature appears, then that is the condition it checks. It behaves less like a lawyer and more like a vending machine: provide the required input, and a predictable output follows.
Bitcoin already has a limited scripting system, but it was intentionally designed to remain simple and cautious. In 2015, Ethereum took a broader approach. Instead of building a blockchain mainly around one kind of digital asset, Ethereum was designed as a shared platform on which developers could publish many different programs. Its native currency, ether, is used to pay for activity on this network, but the larger idea is that the blockchain can store both value and logic.
That small change opens a surprisingly large door. A lending program can release funds when enough collateral has been deposited. A marketplace can exchange a token and a payment in one operation so that neither side has to move first. A group can keep funds in a shared treasury that only moves after several members approve. A game can record ownership of an item outside the company that created it. Each of these systems can be built from smart contracts that interact with one another.
Applications built in this manner are usually called decentralized applications, or dApps. They may still look like ordinary websites on the surface. There can be buttons, forms, profiles and colourful dashboards. The difference lies underneath. Instead of sending every important instruction to one company’s private server, the application sends transactions to smart contracts on a public network. The rules and resulting changes can be independently checked.
This does not remove trust completely. It changes where trust is placed. Users no longer need to trust a company to follow hidden database rules, but they must trust that the public code was written correctly. A mistake in an ordinary website can often be repaired quietly by an administrator. A mistake in a smart contract can be much harder to undo, particularly if the program controls valuable assets. Transparency helps people inspect the rules, but visible code is not the same as flawless code.
There is another puzzle. If a smart contract is a program, some computer must run it. A normal application usually has a server owned by one company. Ethereum claims to run programs without giving one server or one company control. Does every computer execute every instruction? Who decides the result, and what prevents someone from changing it on their own machine?
To answer that, we need to look inside Ethereum’s shared computer: the Ethereum Virtual Machine.