- Ethereum and Bitcoin both let you lock up the cryptocurrency and provide a series of rules that are required before the money can be unlocked; this has a lot of power, because unlocking can be done by a single party (a standard payment use case), but also by a series of other people/groups or external events (currency price, weather, etc)
- The rules for unlocking cover a wide gamut from requiring several users to agree (e.g., multisig like a multi key safe deposit box to voting for a dividend), to requiring an external action to happen (e.g., unlocking if the temp is below a certain amount on a given day for weather based insurance contract); these actions replicate many current real world interactions like an insurance contract, a voting mechanism for corporate governance, and escrow (just to name a few); the OP has also written about Distributed Autonomous Orgs (DAOs) on TechCrunch
- A key benefit for letting these be programmatic is that they can cut out a middle party (or at least reduce the dependence on this middle party with a network of oracles) - cutting costs and reducing dependence on this third party
- Some key value props where this could help in the early days:
1) cross-country transactions, as the contract language is international (legal systems can be hard to enforce across geographies)
2) Small amount transactions (as fixed costs may be high in a real world contract today for each party)
3) contracts where middlemen have monopoly-based pricing
4) contracts where the middle parties have a low degree of trust (more likely today, certain markets don't exist due to this reason)
5) Contracts in a country where legal systems are weak/expensive
- For Bitcoin vs. Ethereum, many Bitcoin enthusiasts will argue that Bitcoin provides a similar functionality, but Ethereum's high level languages are generally much easier to write (I'll likely get some push back by partisans, but Ethereum's Serpent and Solidity might be closer to JS/Python/C, while Bitcoin's Forth-inspired/stack-based language is closer to a higher-level assembly); there are also some specific differences like Bitcoin requires all or nothing unlocking, is not turing complete, has restrictions on the transaction byte size, and has some miners enforce transactions that only have a few of the contract op codes, not all; still, some Bitcoin devs (like Gavin) note that the surface area for security holes is significantly larger with Ethereum
(See my other post for an introduction to the language)