Ethereum a general purpose BlockChain
Ethereum: a general purpose BlockChain
Convener: Aaron Davis
Notes-taker(s): Dave Sanford
Tags for the session - technology discussed/ideas considered:
Discussion notes, key understandings, outstanding questions, observations, and, if appropriate to this discussion: action items, next steps:
Aaron asked if this is what was wanted – and gave a tutorial starting with some basics on blockchain followed by how Ethereum uses blockchain.
While the blockchain algorithm can act as a platform that provides “a single source of truth” without centralized control – there are many possible:
- Data structures
- Consensus mechanisms
Blockchain acts as a reverse linked set of blocks with each block leading back to the first or ‘genesis’ block. The blockchain is more than a distributed ledger – it is a living programming system and the blockchain represents the state of the system including every block and every transaction.
For bitcoin, miners submit timestamps and everyone has to agree on the state of the system. The longest blockchain wins.
Consensus – for any system we need a way for the system to make changes to state – from any participant – and converge to an agreed state, at least for some known point in the past. For a private blockchain the owner(s) decide. For public block chains – this involves ‘proof of work’.
Along with transactors, the main actors are miners – which act as validators.
While the bitcoin machine is primarily programmed to support financial transactions – Ethereum is a distributed programming machine – a computer containing disk and programs. It uses the basic blockchain features:
And may be able to support lots of governance functions. It supports key revocation. There is a quote out there – “If bitcoin is magic Internet money, maybe Ethereum is magic Internet governance” – although there is lots of work to do, to see if it can get there.
For Ethereum – autonomous programs exist, but cannot initiate a transaction. These programs do have an address, code and their code and storage is written into the blockchain.
Clearly Ethereum can do lots of programming which would not be efficient as it would simply be better to run it on a stand-along computer. It is not for heavy computation or heavy data, as many minors have to each run all the code.
Ethereum has a block time of about 17 seconds – however it takes about the same amount of time (perhaps an hour ~ 600 blocks) for consensus to be reached on a block, as with bitcoin.
Ethereum is good for write access management and keeping track of tokens and as a betting platform. Every op code has a fee, so you can run an infinite loop if you want to pay for it. If the transaction doesn’t complete you still pay for processing. Ethereum predictive markets have been created.
Ethereum supports contracts (and proxy contracts? Not sure what that is). Typically the first person ‘wins’. Contracts have APIs associated with them and a valid address.