I've been following the crypto space for about a few months now and have invested in a couple of coins/tokens throughout my journey. I am a big believer in the Ethereum technology and think it's the future. On top of that, I've met a couple of friends who also invested. I was super excited to talk crypto with them but realized that a lot of them invested without really understanding the technology. I want to fix that solution.
Though I have a general idea of how the blockchain technology works. I want to document for my own reference as well as yours information about the top and low level details regarding blockchain technology, specifically Ethereum. This will include high level concepts as well as setting up your wallet and potentially creating your own smart contract via geth/solidity.
Before I deep dive into the Ethereum technology I think it would be good to really go over the basics of blockchain technology.
Without further ado lets start off with Blockchain!
What is Blockchain?
Blockchain is a decentralized network/system for exchanging of value. I believe there are 4 main characteristics that really define the intricacies of blockchain technology.
- Utilizes a shared distributed ledger
- Transactions are immutable via blocks and chaining
- Through Consensus, transactions are validated
- Uses cryto hashing to establish trust and accountability between users
This will be a general explanation. I will go into more details about each one in separate articles and will update this past in the future.
Shared Distributed vs. Traditional Ledger
Traditional Ledger
A bank is a perfect example of a traditional ledger. With a traditional ledger, the database and transactions are not exposed to the outside public. Also, the ledger is only updated when customers carry out transactions. The central banks have a legal obligation to ensure money that is transferred amongst users are valid. They are the single source of truth.
Shared Distributed Ledger
In a shared distributed ledger, peers in the network have copies of the latest ledger. (transaction information) As opposed to single source of truth, transactions are validated across the users via multiple network computers. Since each participant have identical copies, any changes or additions made to the ledger are recorded and sent out. This is a very different concept between the traditional ledger because it removes the concept of a central authority and utilities the transaction validation through consensus.
Photo Cred: imf.org
Immutability
Once the data has been added to the ledger, it CANNOT be updated or deleted. I can explain how data is validated via hashing but I believe this website/demo would provide a way better explanation on how it works.
Long story short... data can not be changed once added to the ledger.
Consensus
The consensus protocol relies on peers agreeing on the state of the ledger. Through consensus, all peers will have the same exact copy of the ledger. This guarantees that all transactions in the network is consistent. For example, the consensus protocol through the agreement of its PEERS will prevents state changes on the ledger. Like I mentioned before, the ledger can not be updated or changed once added in the block. The 2 main consensus protocols are Proof of Work and Proof of Stake. I'll go into details regarding in future posts.
Crypto Hashing
Participants in the blockchain have their own private and public key. Each serves a unique purpose. You should never reveal your private key to ANYONE! I'll show a quick example below on how private/public key is utilized.
Owner A wants to sell his item on the blockchain.
a. Creates a transaction
b. Generate a HASH value. (we'll call it hash-original-1234)
c. Confirms the transaction via PRIVATE KEY
d. Generates encrypted HASH value (we'll call it hash-encrypted-1234)Buyer B wants to buy his item on the blockchain.
a. Buyer B finds the PUBLIC KEY of owner A
b. DECRYPTS the encrypted HASH value via owner A's public key (hash-encrypted-1234)
c. If the HASH value that is decrypted matches the owner's original hash value (hash-original-1234), then the transaction is confirmed.
Seller A --> Create Transaction --> Generate HASH --> Confirm via PRIVATE KEY --> ENCRYPTED HASH
Buyer B --> DECRYPT the ENCRYPTED HASH via PUBLIC KEY --> find HASH value --> determine match
Conclusion
I hope this was an easy read for you to get a better understanding of the blockchain. I myself always hear words like crypto, blockchain, bitcoin, and found it difficult to differentiate and define those meanings. In conclusion, the term blockchain represents 4 characteristics
- Distributed Ledger
- Immutable Transactions
- Consensus protocol
- Crypto Hashing of public/private keys