aelf Tech Talks — Design and Practice of Blockchain Cross-chain Technology — Part 1
Brief Background on Blockchain
By: Wenkai Shi (Extract from DNT Forum Presentation)
Hello everyone, I am Wenkai Shi. I am from the AElf developer community and currently a senior development manager. In recent years, I have been responsible for the architecture design and development of AElf cross-chain module. AElf is a blockchain platform based on .Net Core and is one the most active project on Github. As a part of the .Net ecosystem, I took advantage of the DNT Forum today to represent AElf developer community to share with you the cross-chain technology and architectural design of AElf cross-chain module. This is the address of AElf repo (https://github.com/AElfProject/AElf). It has been two years since the project was established. As of last week, it contains approximate 230K lines of C# code. We are currently iterating and updating at a very high frequency.
Let’s take a look at the summary of this presentation. Today will be divided into four modules. The first is to briefly introduce the basic concepts of blockchain and the development of blockchain projects. I will then talk about the current role and development of .Net in the blockchain industry. For the third part, the theme is cross-chain, I will share the needs and challenges of cross-chain from a macro perspective, and several modes of cross-chain technology. The last unit is the design and practice of AElf cross-chain technology and how AElf has accomplished this.
Blockchain Introduction — Many of you should have the knowledge or at least heard of blockchain, but today we still have to start from the basic concept of blockchain: What is blockchain? A commonly accepted explanation is, “A blockchain, originally blockchain, is a growing list of records, called blocks, that are linked using cryptography.” A chain formed by a number of blocks containing some records. My personal understanding of the chain is that blockchain is not a panacea to all problems, but the world can be described by code, in other words, the world can use blockchain to accurately record what is happening. In fact, many modern software systems we currently use already do similar things, but I think the advantage of blockchain is that it is more accurate.
First of all, the accuracy of blockchain depends on the theoretical support of the three basic disciplines: Computer Science, Software Engineering, Cryptography. The subject knowledge of these three disciplines is also an indispensable theoretical basis for modern software. All software development work cannot be separated from this.
In addition to this, the important factors of blockchain are to ensure its accuracy, provide data which cannot be tampered and decentralized. Strictly speaking, it cannot be tampered with and is an inevitable result of decentralization.
What is decentralization? Traditional software industry services are generally provided and maintained by an organization or a company. We choose to accept some user agreements before using software services, which means we choose to trust the corresponding organization, but no one can guarantee that the service will not fail, no one can guarantee that the organization will never disband, etc. No matter where the problem lies, it will ultimately be reflected in our data, which is not what we expect. We just said that blockchain is used to record the part of the world which you want to record. The decentralization of blockchain gives the right to record and interpret the world and is open to any participants who want to do it. Organizations and individuals work together as recorders, and this mechanism better protects the accuracy and security of data. The concept of decentralization is the core feature of blockchain. When we talk about cross-chain technology later, decentralization will be mentioned again.
Let’s look at the history of the development of blockchain. Many people first heard about Bitcoin rather than blockchain. Bitcoin has been running for more than ten years, and has successfully applied decentralization, POW and other design ideas to practice. After Bitcoin, another classic project emerged, Ethereum. There were other projects, but it was not until the emergence of Ethereum that we saw a greater possibility in the blockchain. It introduced the concept of smart contracts, supporting Turing’s complete scripting language and execution environment, which is of great significance for the empowerment and development of blockchain. Many blockchain projects are now bred on Ethereum in the early days. After Ethereum, the ecosystem of the blockchain became more abundant, with a wide variety of public and forked chains, as well as blockchain and cross-chain projects for different scenarios. In general, blockchains Technology is moving in a better direction.
Since there are so many blockchain projects, the choice of technology stack must be different. The second module mainly introduces the role of .Net in the blockchain ecosystem. A few years ago, the .Net cross-platform ability was poor, and there was no Linux environment which made it uncompetitive. The ecosystem development environment was poor. These are the shortcomings that are often criticized. At present, the proportion of .Net in the blockchain field is relatively low, and the mainstream is still C++/Golang/Rust… With the rapid development of .Net core in recent years, many projects have begun to use it as the development framework of the blockchain ecosystem. The .Net core is beginning to emerge in multi-terminal, multi-platform capabilities. AElf’s participation in the DNT forum is also to continue to promote the development of .Net in the blockchain field.
Other Topics in aelf Tech Talks:
— Join the Community:
· Read weekly articles on the aelf blog
· Catch up with the develop progress on Github
· Instagram: aelfblockchain
· YouTube Channel: aelf
For more information, visit aelf.io