Blockchain - Public Example: Ethereum

Published:

Lesson: 10
Topic: Blockchain
Author: Ashley Rosilier


One of the most popular examples of a public blockchain is Ethereum, which was original described in a whitepaper in 2013 by Vitalik Buterin [20] and continues to evolve today.

History

The primary differntiating feature of Etherum when it was introduced in 2013 as compared to the Bitcoin blockchain was the inclusion of a turing-complete programming language that could be used to write powerful smart contracts with a few lines of code. These smart contracts can be used to define the “rules” for transactios within the system, greatly expanding the application possibilities for blockchain.

In the original Ethereum whitepaper, Buterin outlined the following philosophy behind its development:

  • Simplicity - protocol simplicity is preferred over store or time efficiency
  • Universality - turing-completeness in the scripting languages means that the platform can be used to create any contract or transaction type that is mathematically possible
  • Modularity - development of the protocol is done in parts that are as modular and seperable as possible, minimizing the impact of modifications on the exisiting system and maximizing the usefulness of new features
  • Agility - if new modifications will substantially improve scalability or security, they will be implemented, even if they affect high-level constructs
  • Non-descrimination / Non-censorship - the protocol itself will not try to limit or dictate the types of applications it is used for

Accounts

The central objects of the Ethereum system are “accounts,” with transactions being direct transfers of value and information between accounts.

Each Etherum account contains four fields:

  • The nonce (counter to make sure transactions can only be processed once)
  • The account’s current ether balance (“ether” is the internal crypto-fuel of Ethereum, akin to Bitcoin)
  • The account’s contract code (optional)
  • The account’s storage (empty by default)

Furthermore, there are two types of accounts allowed:

  • exxternally owned accounts - controlled by private cryptographic keys
  • contract accounts - controlled by their smart contract code

An externally-owned account does not have code, and it can send messages by creating and signing transactions. A contract account, on the other hand, is activated when it receives a message. Its code is then activated which allows it to read and write to internal storage, send messages or create new contracts. Contracts can be viewed as “autonomous agents” that exist within the Ethereum system. They execute their specific piece of code only when “poked” by a transaction or message.

Transactions

In Ethereum, a “transaction” consists of the signed data package that is created by an eternally-owned account and stores a message. Each transaction includes the following fields:

  • Message recipient
  • Sender’s signature
  • Amount of ether to transfer from sender to recipient
  • Data (optional)
  • STARTGAS value (the maximum number of computational steps the transaction execution is permitted)
  • GASPRICE value (the fee the sender pays per computational step)

Messages

Contract accounts can send “messages” to other contracts. They differ from transactions in that they can only be initiated by contracts, not externally-owned accounts.

Applications

There are limitless application areas for Ethereum’s smart contract system, reaching far beyond the domain of cryptocurrency. Some examples are identity and reputation systems (such as for domain name registration), decentralized file storage, multisignature escrows, crop insurance and peer-to-peer gambling.

References

[14] Etheterum: Intorduction to dapps https://ethereum.org/en/developers/docs/dapps/

[20] “A next-generation smart contract and decentralized application platform“. V Buterin. 2013. https://cryptorating.eu/whitepapers/Ethereum/Ethereum_white_paper.pdf