The advent of Platform as a Service (PaaS) was the last time something this momentous hit the computing world.
Ethereum releases it's "Frontier" today.
Ethereum combines crypto-currency transactions with code triggered by these transactions - all inside the blockchain.
Mining on the Bitcoin blockchain is validating monetary transactions. Ethereum adds the execution of arbitrary code to the mining process.
Let's take the example of buying a license key to a software with crypto-currency and see how this might be implemented with Bitcoin and Ethereum:
LP = License Price
Seller creates a BTC address.
Buyer creates a BTC address.
1. Buyer agrees to purchase on the seller's website. Provides details - email address. Stored in the seller's database.
2. Buyer transfers from his/her BTC address to the seller's BTC address.
3. Seller notes BTC address of payer.
4. Buyer proves ownership of BTC address to seller with a signed message verifiable with a public key. This signed message is sent outside of the blockchain.
5. Seller's computer systems (independent of the blockchain) generates a new key and emails to the buyer and stores key associated with the buyer's details collected in step 1.
6. Sends generated license key to buyer
Seller creates an Ethereum contract for a license key - SLK. This contains code to:
- Verify the right price has been paid - Generate a new license key and store it in SLK's storage
Buyer creates an Ethereum contract to store license keys - BLK. This contains code to:
- Receive and store a license key in BLK's storage
1. Buyer sends a transaction of LP ETH from BLK to SLK
2. SLK programmatically:
- verifies the right amount of ETH has been sent. - generates a new license key, stores it - sends a new transaction to BLK with the license key 3. BLK stores the license key in it's storage.
The transaction is complete and accepted when it is has been included in a block and the necessary concensus has been reached between the Ethereum nodes.
Let's think about the inclusion in a block for a second. It means that the contract code is stored in every Ethereum node and is executed by every node that verifies the transaction(s). And therein lies the beauty of the system.
Paying with Bitcoin provides proof that the buyer does indeed have the BTC to pay for the license and has in fact transferred the BTC to the seller, everything else happens OUTSIDE the blockchain.
In the Ethereum instance, everything happens within the blockchain. The code that would have run on the seller's computers, gets the the robustness of the blockchain that is reserved for just the transaction in the case of the BTC transaction.