header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Scan to Download the APP

Nervos Architect Xie Hanjian: Abstraction and evolution of blockchain

2021-10-26 16:40
Read this article in 23 Minutes
If Bitcoin evolved to Ethereum the way the arcade evolved to XBOX, Then Nevors innovated ethereum the way XBOX evolved to the PC.
Abstract and Evolution of blockchain
Xie Hanjian is an architect of Nervos Network


Editor: On October 26, at the 7th Blockchain Global Summit hosted by Wanxiang Blockchain Laboratory, Nervos Network architect Xie Hanjian further elaborated how Nevos made innovation in this evolution through his abstract view of the evolution of blockchain in his speech. This paper is the full text of his speech. The article is compiled from on-the-spot shorthand.


Everybody is good! My name is Xie Hanjian, an architect of Nervos Network. I am very happy to share with you the topic I want to talk about today -- Abstraction and Evolution of Blockchain.


What are the biggest challenges facing blockchain?


I don't know if you have seen this sentence, which means that the biggest challenge facing new blockchains today is not "speed" and "throughput", but "governance".


所谓的第二代区块链,新的区块链发展到今天,已经有五六年的时间了,如果大家回顾之前一些想法的话,能够看到当时的思路可能不是那么正确。


几年前大家想要做新的区块链的时候,想的是「如果我解决了区块链的性能问题,是不是就创造出了新一代的系统,就可以打败以太坊,然后可以怎么怎么样」等等。


但这几年区块链行业的发展已经把这个思路给证伪了,因为我们能够看到有新的区块链出来,它们的性能也确实非常好,但大家还是认为我们依然处于以太坊的时代,并没有进入下一个时代,并没有感觉到当年从「Bitcoin」进入到「Ethereum」的时代,这种感觉并没有,虽然今天新的区块链已经有很好的性能,能每秒处理几千笔交易。


  Some say the biggest challenge we face is "governance".


In fact, I agree that "governance" is indeed a big problem facing the blockchain industry at present, and this question is an "Open question" with no answer. Different blockchain communities and different blockchain teams are discussing how to govern such an Open P2P autonomous project. Governance is really hard.


但是我想说,这不是唯一的问题,「抽象」也很重要。


「治理」讨论的问题是——我们作为社区能够决定区块链平台是不是应该做某件事情的话,那么区块链的「抽象」层次是决定什么东西可以被搬到台面上被治理、被讨论,就什么样的问题讨论该做还是不该做。


  Therefore, I think "abstraction" is also a very important challenge for the new blockchain.


What is "abstract"?


The word itself is abstract.


抽象本身是比较技术的词,有两个解释,我们只要关心第一个:所谓抽象是一个过程,我们把特殊性从一个系统里去掉,然后从系统里创造出一般性、普遍性。


这是一般化的过程,通过去掉特殊的设计,把共性找出来,让系统可以变得更加一般化,可以适用于更多的场景。


这个解释可能还是很抽象,大家要记住关键词是要去掉「特殊性」,把「特殊性」从系统里去掉,在系统里找到更多共性「一般性」的东西放在设计里创造「一般性」。


用一个不是那么区块链的例子解释一下。


  You've probably played video games, at least when I was a kid I used to play big so-called arcades in video arcades. If you understand machines like this, you know that each machine is a game, and in the case of arcades, system design is a combination of software and hardware, all designed to serve a single purpose, which is this game.




When we needed to create a new game, I needed to design a new machine, so there were ten and twenty machines in the arcade, each of which was a different game.


游戏行业发展到今天最流行的东西已经不是街机了,更多的是像 XBOX 这种通用的游戏平台。


XBOX 是一般化的设计,你可以为 XBOX 设计各种各样的游戏,而后你只可以购买不同的游戏就可以在这一个系统上运行去玩。


所以,从街机到 XBOX 就是一般化的过程,从另外一个角度来说 XBOX 是抽象层次更高的设计,可以适用更多的场景,里面为每一个特定游戏所打造的特殊东西很少很少,几乎没有。


正是因为它没有那些特殊的细节,在这个平台上的开发者才能填补细节,才能让平台能够适应各种各样的需求。


当我们考察区块链行业的发展,考察「Bitcoin」和「Ethereum」的进程也是这样的过程。


What does Bitcoin want to do?


It can be seen from the white paper and title that the original goal was to achieve a point-to-point payment system, which had a very clear single purpose, so its system design was also done around this purpose.


在以太坊出现之前的时代,如果大家还有印象的话,我们想要全世界人都看到「Bitcoin」底层的技术非常有价值,不管是区块链还是分布式账本。


当我们想用这个技术做另外事情的时候你能做什么?你能做的只是 Focus「Bitcoin」代码,而不是利用「Bitcoin」的代码做什么事情。

但是以太坊的出现改变了这一切,以太坊说我们不需要这么麻烦,我们可以把 Bitcoin、区块链变成更加一般化的系统,我们要找到那些利用区块链技术的应用需求的共性,创造出一个平台出来,把只为支付服务这种特殊设计去掉,但是要把为各种各样的共性需求找出来,为共性需求设计一个平台。


所以以太坊有虚拟机、运行环境,在以太坊上可以构造各种各样不同的应用,比如支付、借贷、游戏等等。


  Going from "Bitcoin" to "Ethereum" is a general process.




In other words, Ethereum is actually a higher level of abstraction relative to Bitcoin, just like XBox is relative to arcade.


如果沿着这个思路去考察的话,我们很容易可以想到要怎么样做的更好,如果真的要做出和现在这一代不一样的区块链的话,下一代是什么样子?


可能不是性能更好,应该是抽象更高。


怎么把系统变得抽象层次更高呢?


回忆刚才的定义,要找到里面的特殊设计和特殊细节,如果它不是共性的东西就把它砍掉,想办法把它变成更加一般化的设计。


What are the special designs in today's blockchain systems? I found a few areas to share with you:


1 . 特定账户体系   




Blockchain is a system in which people and assets interact. Since there are people and users, you need to create an account and an identity for each user to represent it. How do you verify that an account belongs to someone? What is the data model inside the account? These things are hard coded in today's blockchain systems, selected by blockchain designers for developers and users. As a user, as a developer, you don't have the right to replace it.


If you look at authentication inside an account, whether it's Bitcoin or Ethereum, it's system-specified. Once you want to send a request into the system, to construct a transaction, you have to sign it with a specific cryptography algorithm. It's mandatory design. As a blockchain user, you have no way to change it, it's written into the system.


However, such a mandatory design actually creates many problems, the most obvious of which is that it creates a very high barrier for blockchain users. Specific choices made for historical reasons are different from cryptography algorithms used in many Internet scenarios today. Now, for example, each phone has a security chip, chip with the security to protect the private key is the most convenient and safe, but security chip may use the R1 or RSA algorithm, rather than block encryption algorithm choose the chain, incompatible will lead to you word mnemonic techniques must be used to set up account system, and can't use of the existing system of account.


Now, what are the other account systems? Email, face recognition, biometrics, there are a lot of things, but these are not compatible with the account system of blockchain, which is a specific design barrier.


2. Special cryptographic algorithm & NBSP;  




For example, today I want to develop an application on a certain blockchain, and I don't want to use the limited options specified by the platform. What if? There's nothing you can do. There's nothing you can do.

In Ethereum there is a Precompiles which is a specific cryptography algorithm written in the EVM virtual machine. If you don't want to use this algorithm, you can probably re-implement it with Solidity, but it's very inefficient because EVM itself is very inefficient.


What's the problem with that? Cryptography algorithm is actually a kind of standard, different countries have different standards of cryptography algorithm, the United States also has the United States secret, China has the national secret, but the choice of blockchain is not any standard. This means that when the application of blockchain wants to go to the real scene, it is difficult to be compatible with the existing standards, which is actually an obstacle to the promotion of blockchain technology.


3. Runtime environment & NBSP;  




Now, almost all blockchain platforms support smart contracts, which need to be run in the right environment, including virtual machines, state models. The runtime environment itself can also be divided into computation time, runtime, validation run time, and so on, each with many different options. For example, virtual machines can use EVM, risC-V virtual machines, etc. But every blockchain design we see today is a particular combination chosen by the blockchain designer for the developer, and the developer is not free to choose different options, which creates a barrier for the developer. In order to get into blockchain, developers may need to learn a completely different set of things to work with today, which in our view is also very limited.


There are not only learning costs for developers, but also impacts on blockchain performance and security. In short, the blockchain system gives you a choice, and as long as you use the blockchain system, you can't make any other choice.


The above three aspects are the big problems of blockchain at the level of abstraction that we can see now, and we also hope to solve these problems. The solution is easy to say. Now that we've identified the problem, we need to abstract accounts, cryptography, and runtime to give users and developers more choice.



So how did we do that? At the account abstraction level, Nervos introduced a new data account model, the Cell Model. What can be achieved with account abstraction? Applications on abstract accounts can be used by users in different places.


For example, if you are an ordinary Internet user, you only have email, you can directly use the application on the blockchain, you do not need to download a new wallet entry, you do not need to set up your private key, mnemonic, you can directly use email as an account.


We can also use your phone's security chip to set up an account for you safely and conveniently. If your phone chip is linked to face recognition, you can directly control your account with face recognition. You don't need to learn anything special about blockchain, just use what you already have.


Nervos already has a number of applications that do this, such as Unipass, which is a decentralized blockchain account system based on E-mail, and DAS, which also uses abstract account features to allow Internet users, Ethereum users, and EOS users to directly operate applications. Instead of just Nervos users being able to manipulate the application, it's interoperability.


How do cryptographic abstractions work?




At the heart of cryptographic abstraction is the need for very efficient virtual machines. Our own implementation of efficient virtual machine is CKB-VM, which uses open instruction level RISC-V. Thanks to risC-V instruction level features, CKB-VM allows developers to implement cryptography algorithms with C and Rust. The benefits are not only efficient, And many mature cryptographic algorithm implementations can be moved directly to the blockchain, which means they can be moved to Nervos.


The implementation of cryptography algorithm is actually very difficult, if we first to implement the cryptography algorithm, so it will be prone to error. How to determine whether the implementation of cryptography algorithm is secure? The single best test is its maturity and use time. The more people use it, the longer it lasts, the safer it is.


The benefit of being able to directly port C and Rust cryptography is that you don't need to re-implement it. If you re-implement it with Solidity then security is worth considering as it is new and it can have bugs that take time to correct.


With high-performance EVM, EVM that supports BOTH C and Rust can efficiently reuse most of the cryptography algorithms that exist today, because most of the cryptography algorithms are implemented in C and Rust.


What about runtime abstraction?




For developers, developers are not forced to develop in a particular language, but can develop in a language they are already familiar with, whether it is JAVAscript, Ruby, Rust, C, etc. In addition, when writing smart contracts, the memory layout and data layout inside smart contracts are not specified, but can be flexibly selected, which is what we want to achieve.


Nervos is actually improving blockchain in this direction, we may not want to create a faster blockchain, but a higher level of abstraction blockchain. But when the level of abstraction is higher, we can do more things, and performance and throughput are side effects of higher levels of abstraction.




As the level of abstraction gets higher, we move more things out of the chain, or to Layer 2 as Vitalik said this morning. The separation of Layer 1 from Layer 2, or the separation of computation from validation, is a side effect of the abstraction level change, so it is the abstraction level change that we should pursue, not the performance change directly.




It's like we went from The XBOX to the PC, and the XBOX is a generic platform, but it gives people a lot of restrictions, you can make different games on it, but you can't change the hardware. PC removes this limitation and makes a more general processing in the hardware layer. PC allows people to replace graphics cards, CPUS, memory, motherboards, and hard disks. So PC is a more general system, it's a standard. In this sense, the PC is a more abstract system than the XBOX, capable of doing more things, satisfying more users, and bringing more convenience to developers.


If you are more interested in Nervos, you can visit the Nervos website. That's all for my talk. Thank you!







Welcome to join the official BlockBeats community:

Telegram Subscription Group: https://t.me/theblockbeats

Telegram Discussion Group: https://t.me/BlockBeats_App

Official Twitter Account: https://twitter.com/BlockBeatsAsia

举报 Correction/Report
This platform has fully integrated the Farcaster protocol. If you have a Farcaster account, you canLogin to comment
Choose Library
Add Library
Cancel
Finish
Add Library
Visible to myself only
Public
Save
Correction/Report
Submit