un.Block 2021 #1: IBC Cross-Chain Protocol, What is Blockchain, About us
un.Block == understanding blockchain
🌝 Glaze & Jasmine: After long time preparation, un.Block finally meets you here!
🎉 As the first issue, we have been thinking for a long time about what we should prepare for you
🤩 This week, we will introduce Inter Blockchain Communication (IBC), an Inter-Blockchain technique that has just been launched. If you don’t have enough knowledge about Inter-Blockchain, we have Blockchain 101 for you.
After reading this article, we hope you can understand the definition of blockchain, its standard developing tools, and the language used in developing its “smart contracts” called "Solidity”. We hope our effort will help you unveil the mystery of the blockchain industry.
🔥 This Week’s Headline: The launch of Cosmos IBC Tech
We will introduce you to the latest blockchain technology or product updates for the hot spots this week. Help you quickly understand the blockchain ecology and technology trends😉.
❓ Why IBC (Inter-Blockchain Communication)
Each blockchain is an individual and autonomous system that doesn’t rely on external information to produce and validate ‘Blocks’. In the beginning, the developers created their Decentralized Applications (DApp) on Ethereum using the so-called “smart contracts”. Each DApp can interact with other DApps.
With the growing demands, Ethereum gradually failed to meet those complicated requirements. Common problems were performance bottlenecks and Ethereum Virtual Machine (EVM) holding many defects (low efficiency, lacking standardized library, being difficult to debug, not supporting floating-point number, unmodifiable codebase……).
The developers then tried to customize a blockchain for their DApps. When these DApps were built on their own customized chains, communication became a problem. This means the autonomy characteristic of blockchain becomes the biggest obstacle. The problem of decentralizing safely and effectively has bothered the Cross-chain transmission of messages developers for a very long time.
👀 What is IBC
IBC（inter-blockchain communication protocol）is a general cross-chain information transmission protocol introduced by Cosmos. While ensuring the autonomy of each chain and the speed of transaction processing, IBC makes information and assets across the chain more decentralized, safe, and convenient. More than 200 services and applications and more than $80 billion of investments have adopted IBC. IBC is like TCP/IP protocol of the blockchain world, making blockchain networks possible.
With the help of IBC, blockchains adopting various consensus mechanisms can communicate with each other, as long as their consensus mechanisms meet the so-called "Fast Finality”, where all transactions can be quickly packaged and cannot be revoked or changed.
Since bitcoin and Ethereum don’t fully meet the requirements from such “Fast Finality”, Cosmos customizes inter-blockchain solutions for them: two customized blockchains supporting "Fast Finality" and IBC track the status of bitcoin and Ethereum respectively. Since these two customized chains are compatible with IBC and hold the latest knowledge of bitcoin and Ethereum, now any chains can communicate with Ethereum and Bitcoin.
🌰 IBC: An Example
Next, let's use an example to explain how IBC works. Suppose we have two blockchains using IBC, called Earth and Mars. We want to send a "Hello world" from Earth to Mars. We first need to run a so-called “Relayer” for the message delivery. The relayer continuously checks the state of the chain and creates a transaction on another chain that contains the corresponding message. In the case of using IBC, a lite client of Mars will run on Earth so that Earth can verify the status of Mars and ensure that the information transmitted by Relayer is effective and accurate. Similarly, Mars will run a client of Earth.
Same as TCP/IP, the two chains first will do a "handshake" for identity authentication to prepare for secure message transmission. We then only need to create the corresponding "Hello world" message on Earth, and Relayer will transmit it to Mars. IBC ensures the security of data transmission, which is followed by triggering onAck, onTimedout, as well as other events.
Notice that IBC is only responsible for secure data transmission. For data serialization, it needs to be processed by applications built on the blockchain.
🌌 Cosmos IBC
IBC is a protocol that has been implemented in Cosmos-SDK. It may support Kepler, Substrate, Tendermint, Codechain in the future.
Cosmos is furthering the influence of Cosmos-SDK through IBC, but it is not the only player developing inter-blockchain and customized blockchain technologies. Polkadot is also the one who has its own solution. We will introduce you to the wonders of Polkadot if we have a chance.
🏫 Blockchain 101
Blockchain 101 is a special column for beginners of blockchain, aiming to provide theoretical and practical knowledge.
We will share some selected articles and technical documents here, gradually guiding you to learn blockchain and related technologies from scratch.
Welcome to learn along with us. The knowledge of blockchain is boundless and we hope you always keep curious and constantly explore this wonderful, decentralized network.
📖 Blockchain theory
📄 What the hell is blockchain： EN
👆 This article vividly explains why people need blockchain technology and the basic working principle of blockchain.
A traditional centralized network is managed by a trusted centralized organization, where the mutual trust between people depends on that third-party organization. Once the trusted organization is exposed to trust crisis, social chaos will be ignited; The decentralized network (blockchain network) eliminates such centralized organization, and distribute the job of management to all network member, without relying on third-party organizations to establish mutual trust. This solves the trust problem between people.
The blockchain network has the following characteristics:
The whole network needs at least three participants
Everyone manages and supervises each transaction together
The transaction records are encrypted by a hash function. All members of the network participate in the competition of computing the hash signature. The first user who successfully calculates the required signature will be rewarded (this is the Proof of Work (PoW) mechanism, and there is another mechanism called Proof of Stake (PoS), which we will talk about later)
Other users in the network will verify the hash signature. After verification, the encrypted transaction record package will be added to the chain in the form of a block. The transaction record, hash signature, and the hash value of the previous block are stored.
The content in each block is theoretically immutable, or it requires a very high cost to distort or falsify.
Assuming you understand the explanation in the last article, you may go one step further and try to understand the principles of blockchain technology in a more ‘technical’ manner, such as linked blocks, encryption, blockchain mining, immutability, and blockchain governance. 👇
📄 7 Step by step entry blockchain： EN
Up to here, do you think the blockchain world is wonderful? If you have time and interest, please read the BlockChain 101 series by CoinDesk which is a more systematic and in-depth guide of blockchain.
🔨 Blockchain development
Blockchain development can be done with multiple languages, among which Golang and Rust are popular. Other languages such as C#, C++ are good candidates as well.
In this session, we will guide you to learn how to program and develop DApps on ETH (Ethereum) network.
Vyper is another popular smart contract programming language; its syntax is closer to python. You may also choose it for your development. Here is 👉 Vyper official documentation instructions
If you don't know what ETH or the smart contract is, you might as well read the following article first👇
🧰 Blockchain Development Toolkits
Remix: This is an online IDE of Solidity， You can use it to learn Solidity, and develop simple smart contracts.👉 IDE
Remixd： If you want to execute local project files with Remix, the best solution is to use the plugin of Remixd. 👉 User Manual｜GitHub
123ETH: This is an Ethereum ecological resource navigation website. It covers many aspects of Ethereum, through which you can have a glance over the world of Ethereum. 👉 123ETH
💬 What’s more: Let’s talk about our motivation
It only takes 15 minutes to make a decision, but it takes at least 15 hours to make a newsletter…
🆙 We have already been amazed by the rapid development of blockchain over the past few years. From things like bitcoin, Ethereum, the boom of initial coin offering (ICO), smart contract, distributed storage, to the spotted DeFi, NFT, algorithmic stable coins, Layer2, cross-chain, ETH 2.0, and many more! The blockchain industry nowadays has been growing rapidly, and the application has been constantly implemented. Big players have been successfully funded, financed, and listed. This field has the potential no less than the Internet industry.
We disgust the malignant culture emerging on the Internet and devote ourselves to the development of the blockchain industry. We hope to help more developers understand blockchain development, help you leave the Internet with such exhaustive culture, and devote yourself to where needs you（ Well, definitely not because the blockchain industry gives 1.5-2 times better salary, you know 🤑 ）
🈲️: "un.Block" means “unable to block” (or can be interpreted as "understanding blockchain" ). Because in the decentralized world, data and algorithms are transparent, without monopolies and totalitarianism.
The network meanwhile is challenging to be banned by the centralized organization. It is absolutely interesting and full of potential. We plan to integrate the latest technology and introductory guidance into our weekly issues, in order to make the blockchain newbies feel less detoured and, at the same time, have a glance at those top-playing projects; We also want to let blockchain practitioners feel refreshed with the latest hot-spots.
P.S. Big kudos to all the friends who helped us or gave us valuable advice in the preparation phase of the weekly! Thank you so~~~~~~~much!
💻 Website: unblock256.com
✈️ Telegram: un.Block Weekly
🕊️ Twitter: @unBlock256
📧 Email: firstname.lastname@example.org
🖌️ Graphics Design: Jenny
📙 Translator: Dylan
Reproduction of this article for non-commercial purposes is authorized under the CC BY-NC 4.0
Copyright ©️un.Block 2021