Checking a transaction on the Ethereum Blockchain – Part 1
Transaction on the Ethereum Blockchain refers to the exchange of instructions between two accounts. As per Ethereum.org, the definition of a transaction is: “Transactions are Cryptographically signed instructions from accounts. An account will initiate a transaction to update the state of the Ethereum network. The simplest transaction is transferring ETH from one account to another”.This blog series aims to provide a basic understanding on how anyone can check a completed transaction which is validated and verified and added to blocks in the Ethereum Blockchain.The first part of this series will focus on explaining the various concepts terminologies involved in completing a transaction. Referring to the official definition of a transaction, the first term that comes across is an account.Account In general terms, an account is a formal arrangement linked to an individual or organization, wherein both financial or non-financial records are maintained. In Ethereum, there are Two types of accounts:
1. External Accounts:
These accounts are owned by individuals or organizations and are controlled by their private keys. To generate private keys, a soft or hard wallet needs to be procured.A wallet is a software which generates public key- private key and assists in digitally signing off transactions. We will address the concept of a wallet in a separate blog so that we can continue to focus on the topic at hand.
2. Contract Account:
These accounts are owned and controlled by smart contracts. Smart contracts are auto execute when deployed. Smart contracts are created by developers who code in the requirement of that contract which needs to be executed. For e.g. House Rent collection can be coded as a Smart Contract. The lessee is expected to make the rent payment on a specific date, once the payment is made as per the terms of the contract, the receipt can be auto executed to the lessee and the payment credited to the account of the lessor. However, if the lessee fails to oblige the contract, then a notice can be sent by the smart contract, digitally. Having covered accounts, we will look at cryptography. Cryptography in Ethereum is the technology by which a transaction is secured (read encryption/ decryption), provides trust between peers or two transacting parties in the absence of a trusted third party, signing off transactions by the use of digital signatures and transparency in the entire ecosystem. We have written a detailed blog on cryptography which can be read by clicking here. State of Ethereum Network As per Ethereum.org, state is defined as an enormous data structure called a modified Merkle Patricia Trie, which keeps all accounts linked by hashes and reducible to a single root hash stored on the blockchain. The entire Ethereum network is encompassed in the Ethereum state machine. Infact, Ethereum calls itself as a “Distributed State Machine” and not a “Distributed Ledger”. The difference is that in a Distributed Ledger, a copy of all the blocks published is maintained across all computers in the network. While in Ethereum, the computers in the network maintain the state of the network from block to block which is subject to change. A simplified example to explain this is as follows: Distributed Ledger: A sends 10 BTC to B. In a distributed ledger, miners validators will first check the entire record of A’s transactions to verify whether A has a positive balance equal or greater than 10 BTC to be able to make this transaction. Once they validate and verify this, then the transaction is confirmed by adding it to the block. So in a distributed ledger like Bitcoin, a block will only carry record if there is a transaction and the entire record is checked.
State Machine:
This can be likened to a record of all accounts of any bank. A has just opened his account and deposited 10 USD,B has received 50 USD from C, D has paid 40 USD to E and so on and so forth. Hence the balance of A is 10, B’s balance will reduce by 50 while C’s will increase by 50, etc. Just replace USD with ETH for transactions on Ethereum. Each verified and validated block on Ethereum will carry all account and balance details of A, B, C, D and E irrespective of whether a transaction takes place or not.
Blockchain Explorer:
Ethereum has been designed such that there is complete transparency and all records can be verified/ audited by anyone at any time. The means by which information can be accessed through Blockchain Explorers which acts as an interface between Ethereum and the seekers of the information.