Block.one has announced a series of webinars that are free to attend. The first webinar “Learn about blockchain & EOSIO” is over. Don’t worry if you missed it, the recording is free for everyone to recap.
During this webinar, we can learn the essentials about blockchain and EOSIO. And the speaker is Angus Maidment. He is a Developer Relations Advocate at Block.one. His webinar covered 7 parts. So let’s take a look at them along with Angus’s PPT.
What is blockchain?
Simply put, blockchain is a decentralized distributed ledger database. There are two points where we need to focus on: decentralization & distributed ledger databases. To help newcomers to blockchain understand what these mean, let’s make a metaphor: in a village, there is a bookkeeper who is in charge of recording all of the transactions happen in the village. Then problems can easily arise, for example, villagers and the bookkeeper have chances to tamper with the ledger for profit, etc. But after the adoption of blockchain technology, everyone in the village will keep and update the ledger together. Everyone’s ledger is synchronized. If a person wants to tamper with the general ledger, then he must convince others to change their ledgers together. Obviously it is impossible. This example also explains what decentralization is. There is no center, everyone is a center.
A blockchain is a chain of blocks data. All blocks are linked together using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp and transaction data. Till now we can easily understand why blockchain has features like these: it is secure, data recorded in a blockchain is tamper-proof, all nodes have access to check out the data, and there is no need for a third party approval. Angus also introduced the properties of blockchain in the webinar.
Among these properties, I’d like to share with you some fun facts about Byzantine Fault Tolerance. In 1982, Leslie Lamport introduced the “Byzantine Generals Problem” in his paper. Byzantium was the capital of the Eastern Roman Empire. At that time, due to its vast territory, every army was far from each other. So the communication between armies could only be carried by messengers. When war occurs, it is inevitable that there will be traitors or spies in the army. A general of an army receives messages brought in by messengers from other armies, and the general decides whether to attack or not based on all of the received messages. We can neither guarantee that all the messengers’ messages are true, nor that every general is loyal. This is when consensus is needed. With known there are unreliable members, we need to try the best to make sure all loyal generals won’t get affected by traitors or spies, so there will be a greater chance of success.
We can actually think of the general as each individual computer and the messenger as the network. The “Byzantine Generals Problem” can also cause different members of the network to reach different conclusions about the strategy of the whole collaboration, thus undermining system coherence. Byzantine fault tolerance technology is designed to handle anomalous behaviors, including hardware errors, network congestion, and malicious attacks.
How does a blockchain work
As we mentioned before, data saved in blockchain are encrypted by cryptographic techniques. Cryptographic hashing is a very common algorithm used in blockchain to verify the authenticity of data. A hash function is implemented using computer code. Have some basic features like:
- You can input a string of any size and different inputs will get different outputs.
- y=hash(x), and by entering the value of x, it is easy to get the value of y. But knowing the y-value, it will be very difficult to get back to the input value of x. It would require violent enumeration and there is no shortcuts.
Here is a diagram from Angus’ webinar to facilitate a better understanding. The blue box is data about the block. We can see two Merkle Roots are included here, one for actions and one for transactions. Merkle Root is also a hash value, input is transaction data. I have drawn a diagram below to help you understand.
You can see from the diagram that the current block will contain the hash value of the previous block and the next block will contain the hash value of the current block. Even little changes in input data will get a completely different output. If you change the transaction data, then the Merkle Root will be different. So the hash value of the block header will be changed and it will affect all subsequent blocks in succession. That can also answer why the data stored on the blockchain is immutable.
Consensus explained
The consensus is how the network participants come to an agreement. A Consensus mechanism is a core of blockchain, which is to ensure the consistency of the blockchain system in a distributed architecture. The first consensus mechanism is Proof of Work. So far, several common consensus mechanisms of blockchain are as follows:
- Proof of Work(POW)
- Proof of Stake(POS)
- Delegated Proof of Stake(DPOS)
- Practical Byzantine Fault Tolerance(PBFT)
- Delegated BFT(dBFT)
- …
EOSIO Consensus is done in 2 layers, which are asynchronous BFT (Block producers efficiently create a single-source-of-truth for the blockchain) and flexible access and privileges (What nodes can be bps and what access other nodes have is controlled by smart contracts).
Here Angus talked about the historical challenges of blockchain platforms. DApps, block explores, wallets, etc. have to access history to work properly, but running a full history on EOS mainnet is now very expensive, complex and time-consuming. EOS Nation’s EOS Hot Sauce series also covers news about historical challenges. The most recent one is about Hyperion. It is an open-source history API developed by EOS Rio that was launched 1 year ago as a solution to a significant history bottleneck on EOS at the time. If you are interested in this, feel free to check out episode 56th of EOS Hot Sauce and you can also find other spicy news there.
EOSIO blockchain, EOSIO features, EOSIO ecosystem & EOSIO development tools
As written in Angus’ PPT, EOSIO is a next-generation, open-source blockchain protocol, widely recognized as the most performant blockchain platform for developers. It is the fastest, most scalable and user-friendly blockchain solution available. I do encourage everyone to watch the webinar recording, so you can know EOSIO better with Angus’ detailed introduction.
And EOS Hot Sauce also covers blockchain applications and tools using EOSIO. You can always find spicy news about some applications mentioned in Angus’ PPT. For example, Moonlighting, UPLAND, LiquidApps, etc. Every project included in the EOS Hot Sauce is the project we believe can bring value to the EOSIO ecosystem.
Finally, Angus introduced about the developer community. EOSIO Developer Portal is definitely a great place to get started with EOSIO and try EOSIO. There is a game named “Elemental Battles” which based on EOSIO is available for you to learn. Online Challenge and Hackathon are also available for you to participate in.
What a detailed and interesting webinar! If you missed it, you can always find yourself time and watch its recap.
Lena Wang is an EOS Nation intern that has been with us for almost 2 years now. In 2015, Lena began her university study in the faculty of computer science of Sichuan University. For now, she is studying for her master’s degree with a full scholarship at Sichuan University, located in Chengdu, China. Due to her major, she has a strong interest in blockchain and she’s honored to be a part of EOS Nation and make some contributions by writing and translating articles about EOSIO.