5. Smart Contracts, dApps & Gas

Smart Contracts are written in a programming language specific to Ethereum, called Solidity, which for anyone with a programming background (especially Javascript) shouldn’t present a huge challenge to learn.

“I call these new contracts “smart”, because they are 
far more functional than their inanimate paper-based 
ancestors. No use of artificial intelligence is 
implied. A smart contract is a set of promises, 
specified in digital form, including protocols within 
which the parties perform on these promises” — 
Nick Szabo, 1996

Smart Contracts are stored within the EVM, with their latest state reflected in the most recent block in the Ethereum blockchain.

A few lines of code within a Smart Contract can create a new cryptocurrency or financial service, so long as certain basic standards are followed. The standardisation within the Ethereum Protocol enables interoperability between dApps and is one of the reasons why the market for DEFI and NFTs has grown so rapidly in such a short period of time.

Thousands of dApps now run on Ethereum, while other blockchains are trying to imitate and improve on Ethereum’s design, offering similar Smart Contract functionality and providing EVM compatibility so that applications can be easily ported.

The increasing use of Smart Contracts has made Ethereum a victim of its own success as the execution fees users have to pay to engage with DEFI services or mint NFTs are pricing out the average user.

6. Ethereum Nodes

Like Bitcoin, Ethereum’s network features different types of Node fulfilling the required functions of the Ethereum Protocol. You can think of Node as a computer which requires Client Software to function.

We’ll summarise the basics of Nodes and Clients, then look at each in more detail in dedicated articles:

Full Nodes

  • Run the Ethereum client software
  • Store the entire blockchain record of transactions
  • Validate blocks & all states.
  • Propagate transactions & store them for miners to pick up
  • Can function as a Miner to verify blocks & issue new Ether

Miner

  • A Miner must be a Full Node but a Full Node doesn’t need to be a Miner
  • Runs the EthHash algorithm to show Proof of Work
  • Verifies transactions in new blocks
  • Gets rewarded with ETH for every block mined plus transaction fees

Light node

  • Stores a portion of the blockchain
  • Can validate transactions based on the portion of blockchain stored
  • Useful for low capacity devices like mobile phones not suited for storing Gigagytes of data

Archive node

  • Everything stored in the full node plus an archive of historical states
  • Can amount to Terabytes of data so only suitable for enterprise level users

Ethereum’s move to Proof of Stake will implement something called sharding, a method to improve the efficiency of transaction processing, and reduce the overall size of the Ethereum blockchain which is so much larger than Bitcoin given the requirement to store all state changes.

7. Ethereum Clients & Networks

The Client Software is an implementation of the Ethereum Protocol, providing a formal specification for how the Ethereum network and blockchain functions. It is available in a variety of different languages and with different approaches to how it syncs with the rest of the network.

Ethereum ClientLanguageOperating SystemNetworkSync Strategy
GethGoLinux, Windows, macOSMainnet,Görli, Rinkeby, RopstenSnap, Full
NethermindC#, .NETLinux, Windows, macOSMainnet, Görli, Rinkeby, RopstenFast, Beam
BesuJavaLinux, Windows, macOSMainnet, Görli, Rinkeby, RopstenFast, Full
ErigonGoLinux, Windows, macOSMainnet, Görli, Rinkeby, RopstenFull
OpenEthereum (Deprecated)RustLinux, Windows, macOSMainnet, Görli, Rinkeby, RopstenWarp, Full

At present running an Archive or Full Node takes several days for a full synchronisation and requires significant storage capacity. This can put running a node outside the reach of someone with technical abilities and resources, which some people argue compromises Ethereum’s decentralisation. You can get around that issue by using Node Client Services that run the infrastructure for you and simply provide an API .

Different Ethereum Networks

The Ethereum Protocol is open source software so it doesn’t necessarily need to apply to the main the Ethereum network which is known as the Mainnet. 

There are different implementations for testing – Ropsten – or bespoke product applications (as shown in the table above).

Each network operates independently so the balance and transaction history of an Ethereum account on the Mainnet will not apply to other networks. Users simply need to connect to the different networks within their wallets, such as MetaMask.

Different Sync Strategies

One of the reasons why there are different Ethereum Clients is that each takes a slightly different approach to syncing with the rest of the network to download the latest version of the blockchain. They will offer different features and be lighter or heavier in terms of their application size.

8.Types of Ethereum account

Though the Bitcoin blockchain supports a monetary system individual users don’t have accounts, balances are represented through Unspent Transactions (UTXOs). Ethereum differs on this point as it does operate a distinct Account structure:

  • External Account – A user with a public address/key stored in a wallet
  • Contract Account – Created when a Smart Contract is created, using the address of the creator and the number of transactions sent, and controlled by the code within the Smart Contract.

All accounts have a balance, displayed in Ether which simply send Ether back and forth, or a specific payload (binary data), which is sent to a contract account with code, and provides an input for executions.

9. Ethereum Standards

One of the most forward thinking aspects of the Ethereum Protocol are the clearly defined standards which enable interoperability across all the dApps that the EVM supports. These standards have been replicated across layer 1 networks that seek to replicate its function.

These are some of the most common:

  • ERC-20 – A standard for fungible (interchangeable) tokens, like virtual currencies, which can also be used to give holders voting rights in DAOs.
  • ERC-721 – A standard interface for non-fungible (unique) tokens, like a collectible, one-off digital asset or deed of ownership.
  • ERC-777 – A standard that enables you to build additional functionality on top of tokens such as creating more transaction privacy or a recovery tool if you lose your private keys.
  • ERC-1155 – A multi-token standard that can do the same things as an ERC-20, or ERC-721 token, but additionally enables movement of batches of tokens, calling balances of collections or approving a group of tokens to a single address.

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *