Background Information

Key Understandings

Blockchain

Blockchain is a public database that can be updated and shared across multiple computers in a network. The “Block” of blockchain refers to the state of the data that is stored within consecutive groups. Things like transaction data will need to be added to a block whenever a transaction is made for it to be successful. The “chain” refers to the blocks chaining together via referencing the parent block. This allows data to be changed only by changing all subsequent blocks, which requires the entire network to verify any kind of change.

Ethereum

Ethereum is a blockchain that has a computer that is embedded within. It is used as a foundation for creating applications and organizations in a permission less, decentralized, censorship-resistant way. There is a single computer called the EVM whose state is determined by the users on the network. Each user is considered a node in the network with each node receiving a copy of the Ethereum state. Users can send requests for arbitrary computation, and if the request is accepted other users will execute, verify, or validate the request. This causes the entire system to update creating a change of state in the network. Requests of computation are called transactions, which are recorded and stored on the blockchain.

Solidity

Solidity is an object-oriented programming language, which is similar to almost a mixture of C and JavaScript, that was crafted for specific use, by the Ethereum Network team, to construct and design smart contracts on a blockchain. Solidity additionally is statically typed, supports inheritance, libraries, and complex user defined types.

Ethereum Virtual Machine (EVM)

Ethereum Virtual Machine (EVM) is the virtual global computer that gives the state to every user on the network which it stores and agrees upon. The Ethereum network is maintained via the many different computers which run the Ethereum client. The protocol exists to keep up the operation of the special state machine which in the environment in which all accounts and smart contracts reside and transfer. At any given block in a chain, there is only one state in Ethereum and the EVM decides the rules for computing whatever the new state will be from each block.

Smart Contracts

Smart Contracts are self-executing programs that facilitate virtual authorization and digital verification to enforce contract clauses. Was not available until the invention of Ethereum. As code is stored on the blockchain it become immutable and always will execute unless in the code there is a self-destruction sequence. This would allow the smart contract to be destroyed, transferring any left assets to another address leaving the smart contract to never be invoked again. Smart contracts are often written in a high-level programming language with the most popular being solidity, which is similar to almost a mixture of C and JavaScript. They are then translated into low-level byte code and then deployed to the blockchain for transmission.

References:

1.Sen, S. (2022, September 23). How to write an Ethereum Smart contract using solidity. QuickNode. Retrieved from https://www.quicknode.com/guides/smart-contract-development/how-to-write-an-ethereum-smart-contract-using-solidity

2.Ethereum Foundation. (2022, September 26). Intro to ethereum. ethereum.org. Retrieved from https://ethereum.org/en/developers/docs/intro-to-ethereum/

3.Simplilearn. (2022, June 29). What is solidity programming in Ethereum: Simplilearn. Simplilearn.com. Retrieved from https://www.simplilearn.com/tutorials/blockchain-tutorial/what-is-solidity-programming#:~:text=Solidity%20is%20an%20object%2Doriented,records%20in%20the%20blockchain%20system