Abstraction and evolution of blockchain

CECBC 2021-11-23 07:15:13 阅读数:404

abstraction evolution blockchain

 Abstraction and evolution of blockchain _ Digital currency

What is the biggest challenge for blockchain ?

I wonder if you have read such a sentence , intend : The biggest challenge facing the new blockchain today is not 「 Speed 」 and 「 throughput 」, It is 「 government 」.

The so-called second-generation blockchain has been developed for five or six years , If you look back on some of your previous ideas , We can see that the idea at that time may not be so correct .

A few years ago, when we wanted to build a new blockchain , Think about things like 「 If I solve the performance problem of blockchain , Did you create a new generation of systems , You can defeat Ethereum 」 wait .

However, the development of the blockchain industry in recent years has falsified this idea , Because although we witnessed the birth of a new blockchain , The performance is really very good , But it is generally believed that we are still in the Ethereum era , It has not entered the next era .

Some people say that the biggest challenge we face is 「 government 」, I agree with that ,「 government 」 It is indeed a huge problem faced by the blockchain industry , And it's a 「Open question」, There is no answer , Different blockchain communities and teams are discussing how to deal with such an open P2P Governance through autonomous projects , It's really hard .

But it's not the only problem ,「 abstract 」 It's also important. .

if 「 government 」 The problem discussed is that if we, as a community, can decide whether the blockchain platform should do something , So the blockchain 「 abstract 」 The hierarchy is to decide what can be moved to the table, managed and discussed .

therefore , In my submission 「 abstract 」 It is also a very important challenge faced by the new blockchain .

What is? 「 abstract 」?

The word itself is very abstract .

Abstract itself is a more technical word , There are two explanations , We just need to care about the first : The so-called abstraction is a process , Is to remove particularity from a system , Then create generality from the system 、 universality .

This is a general process , By removing the special design , Find out the commonalities , So that the system becomes more general , Can be applied to more scenarios .

This explanation may still be very abstract , But we just need to remember that the key word is to remove 「 specific characteristics 」, hold 「 specific characteristics 」 Remove... From the system , Find out more 「 generality 」 Put things in the design to create 「 generality 」.

Use an example of a less blockchain to explain .

You may have played video games , At least when I was a child, I would play the so-called arcade in the game hall . If you know these machines , You know that each machine actually corresponds to only one game , This is actually a system design from software to hardware , And all designs are designed around one purpose , This is a game .

When we need to create a new game , I need to design a new machine , So there are dozens of machines in the game hall , Each machine is loaded with different games .

Today's game industry , Arcades are no longer popular , More like XBox This universal game platform .

XBox It's a general design , You can have the XBox Design all kinds of games , Then run on this system .

therefore , From arcade to XBox It's a general process , On the other hand , XBox It's a design with a higher level of abstraction , It can be applied to more scenarios , There are few special things built for each particular game , Hardly any .

Just because it doesn't have those special details , Developers on this platform can fill in the details , In order to make the platform adapt to various needs .

We investigate the development of blockchain industry 、 Investigate 「Bitcoin」 and 「Ethereum」 The process of is also such a process .

「Bitcoin」 What do you want to do? ?

As can be seen from the white paper ,Bitcoin The initial goal was to implement a point-to-point payment system , This is a system with a very clear single purpose , Therefore, its system design is also carried out around this purpose .

Before Ethereum ,「Bitcoin」 Although the bottom layer is very valuable , But all we can do is Focus「Bitcoin」 Code , Instead of using 「Bitcoin」 What does your code do .

But the emergence of Ethereum changed all this , It is the Bitcoin、 Blockchain has become a more general system , It takes out “ Only for payment services ” This special design , And find the commonalities of application requirements that utilize blockchain technology , Created a platform . So Ethereum has virtual machines 、 Running environment , A variety of different applications can be constructed on Ethereum , Such as pay 、 To loan 、 Games, etc. .

from 「Bitcoin」 To 「Ethereum」 It's a general process .

let me put it another way , Ethereum is relative to 「Bitcoin」 The level of abstraction is higher , It's like XBox Compared to arcades .

Follow this line of thought , It's easy to think of how we can do better , If you really want to make a blockchain different from the current generation , What the next generation should look like ?

Maybe not better performance , It's more abstract .

How can we make the system more abstract ?

Recall the definition just now , Is to find the special design and special details , Get rid of non commonality , Turn it into a more general design .

In today's blockchain system , What are the special designs ? I found several aspects to share with you :

(1) Specific account system

Blockchain is a system in which people and assets interact , Since someone , A user , You need to set up an account for each user 、 An identity to represent it . How to verify that the account belongs to someone ? What is the data model inside the account ? These things are hard coded in today's blockchain system , Blockchain designers help developers 、 Help users select . As the user 、 developer , You have no right to replace it .

Take the verification in the account as an example , Whether it's Bitcoin still Ethereum, All specified by the system , Once you want to send a request to the system 、 Construction transaction , You have to use a specific cryptographic algorithm to sign , This is a mandatory design . As a blockchain user , You can't change it , It's written dead in the system .

however , Such a mandatory design will actually cause many problems , The most obvious one is that the blockchain user threshold is very high . Specific choices made for historical reasons , It is different from the cryptographic algorithms used in many Internet scenarios today . for instance , Now every mobile phone has a security chip , Using a security chip to keep the private key is the most convenient 、 Safest , But the security chip may use R1 or RSA Algorithm , Instead of the encryption algorithm chosen by the blockchain , This means that you have to use mnemonic technology to re-establish the account system , Instead of using the existing account system .

What other account systems are there ? mailbox 、 Face recognition 、 Biometrics and so on , There are many , However, these are incompatible with the account system of the blockchain , This is the obstacle of specific design .

(2) Special cryptographic algorithms

for instance , I want to develop an application on a blockchain , But I don't want to use the limited options specified by this platform , What do I do ? There is no way .

In Ethereum , There is a kind of Precompiles Is written in the book EVM Specific cryptographic algorithms in virtual machines , If you don't want to use this algorithm , You may use Solidity To realize a new , But it's very inefficient , because EVM Its efficiency is also very low .

What problems will this bring ? Cryptography algorithm is actually a standard , Different countries have different cryptographic algorithm standards , The United States has Meimi , China has state secrets , However, the choice of blockchain is not any standard . This means that if blockchain applications want to enter the real scene , It is difficult to be compatible with existing standards , This is actually an obstacle to the promotion of blockchain technology .

(3) Runtime environment

Now? , Almost all blockchain platforms support smart contracts , Smart contracts need to run in the right environment , Including virtual machines 、 State model, etc , The runtime environment itself can also be divided into computing time 、 Runtime 、 Verify the runtime, and so on , Each has many different choices . for instance , Virtual machines can use EVM, It can also be used. RISC-V Virtual machines, etc . However, the current blockchain designs are designed by blockchain designers who help developers select specific combinations , Developers are not free to choose different options , This will bring a threshold to developers . In order to enter the blockchain system , You may need to learn something completely different from what you use at work today , This is also a great limitation .

Besides , Blockchain performance 、 Safety and other aspects will also be affected . To make a long story short , The blockchain system gives you a choice , Once you use the blockchain system , There is no other choice .

The above three aspects are the problems I can see at the abstract level of blockchain , We also hope to solve these problems . The solution is simple , Now that the problem is found , You have to abstract the account , Abstract cryptography , Abstract the runtime , Give users and developers more choices .

How do we do it ? At the account abstraction level ,Nervos Launched a new data account model ——Cell model. With account abstraction , What kind of effect can be achieved ? Applications on abstract accounts can be used by users in different places .

for instance , You're just an ordinary Internet user , Only mailbox , Then you can directly use the applications on the blockchain , Use email as an account , Without having to download a new wallet entry , There is no need to set the private key 、 Mnemonics .

We can also use the security chip of mobile phones , Set up an account for you safely and conveniently . If your phone chip is associated with face recognition , You can directly use face recognition to control your account , In the process , You don't need to learn any additional blockchain skills .

Nervos There are already a lot of applications to do this ,Unipass It's based on e-mail Decentralized blockchain account system ,DAS It also makes use of the characteristics of abstract accounts , Make Internet users 、 Ethereum users 、EOS Users can directly operate the application .

How to do cryptographic abstraction ?

The core of cryptography abstraction lies in highly efficient virtual machines . Our own efficient virtual machine is CKB-VM, It uses the open instruction level RISC-V, Thanks to the RISC-V Instruction level features ,CKB-VM Allow developers to use C and Rust To implement cryptographic algorithms , This is not only efficient , Moreover, many mature cryptographic algorithms can be implemented directly Nervos Come up and run .

The implementation of cryptography algorithm is very difficult , If we implement cryptographic algorithms first , Then it's easy to make mistakes . How to judge whether the implementation of cryptography algorithm is safe ? The best test criteria are its maturity and use time , The more people use it , The longer you use it , The safer .

It can be transplanted directly C and Rust The advantage of doing cryptography is that there is no need to re implement a set of , If you use Solidity Re implement a set of , Then there may be security problems , Because it's a new thing to do , There might be bug, It takes time to correct .

Through high performance EVM, By supporting C and Rust Of EVM, It can efficiently reuse most of the current cryptography algorithms , Because most of the existing cryptography algorithms use C and Rust To achieve .

How does the runtime abstraction do ?

The goal we want to achieve is that developers will not be forced to develop in a certain language , Instead, you can use a language you are already familiar with everyday , Whether it's JAVAscript、Ruby、Rust、C etc. , Can be used for development ; And when writing smart contracts , Internal memory layout of smart contract 、 The data layout is not well defined , It supports flexible choices .

Nervos It is in this direction that the blockchain is improved , What we want to create may not be a faster blockchain , It's a blockchain with a higher level of abstraction ; When the level of abstraction can be higher , performance 、 Throughput and so on will also increase .

When the level of abstraction is higher , We'll move more things out of the chain , Like moving to Layer 2 To do .Layer 1 And Layer 2 The separation of , In other words, the separation of computation and verification is a derivative of the level of abstract change , So what we should pursue is the change of abstraction level , Instead of directly pursuing performance changes .

It's like we started from XBox Turned into PC,XBox Although it is a general-purpose platform , But it still has many limitations , We can play different games for it , But you can't change its hardware .PC Remove this restriction , More general processing is also done in the hardware layer ,PC Allow people to change graphics cards 、CPU、 Memory 、 a main board 、 Hard disk , therefore PC It's a more general system , It's a standard . From this point of view ,PC It's better than XBox Systems with higher levels of abstraction , It can meet more needs of users , Bring more convenience to developers .

版权声明:本文为[CECBC]所创,转载请带上原文链接,感谢。 https://netfreeman.com/2021/11/20211108144447711H.html