- An official ordering (ledger) of transactions
- An official state of the world, including balances of accounts and the state of various programs.
An example app
Decentralized apps can implement functionality that we might otherwise expect to be implemented in a centralized fashion. For example, a very simple example of a decentralized app is a Virtual Bank (typically referred to in crypto as a Lending Protocol). In the physical world, a bank is a business that takes deposits and loans them out at a higher rate. The bank makes the spread between the high rate and the low rate; the borrower gets a loan to do something economically productive; and you earn interest on your deposits. Everyone wins! A Virtual Bank is simply an app with four major methods:deposit, withdraw, borrow, and repay. The logic for each of those methods is mostly bookkeeping to ensure that deposits and loans are being tracked correctly:
- Open APIs / composability: decentralized apps can be called atomically by other decentralized apps, allowing developers to build more complex functionality by stacking existing components.
- Transparency: app logic is expressed purely through code, so anyone can review the logic for side effects. State is transparent and auditable; proof of reserves in DeFi is the default.
- Censorship-resistance and credible neutrality: anyone can submit transactions or upload applications to a permissionless network.
- Global reach: anyone with access to the internet can access crucial financial services, including unbanked/underbanked users.

