Used to check for browser translation.
用于检测浏览器翻译。
ブラウザの翻訳を検出する

Upgrade Your Understanding of dApps (1): Breaking the Myths with Analogical Thinking

2021年4月20日 · edited
B
Blogs
cover

Author: Robert Mao (ArcBlock Chief Architect, CEO)

I am ready to launch a column "Upgrade Your Understanding of Decentralized Applications" starting from this month. Along with this column, I am also preparing to produce some related short videos, which will be regularly broadcasted or discussed through Clubhouse. This column is aimed at a wider audience interested in blockchain and decentralized applications, not just developers or professionals, aiming to explain one concept and knowledge point in each short video, paired with the actual design and implementation of ArcBlock, allowing more people to realize the value of decentralized applications (DApps) and to understand that all of this is not just a vision, but immediate technology and products that can be used.


Many years ago, when the Internet had just started to be commercialized, I experienced an incident: a famous team with a background in advertising design designed a website solution for a client. The design was very exquisite and stood out from all competitors in terms of aesthetics. However, there was only one problem - they thought that an HTML page was just an image, so for each page, their design was a complete image! In today's understanding of the Web, this may seem like a laughable thing, but at that time, such things were commonplace. Today, if you look at decentralized applications and think that it is just something similar to Internet architecture, using blockchain, and using smart contracts, and believe that this is what a decentralized application should look like, it's like thinking that creating web pages is the same as creating a batch of printed color leaflets.

Breaking myths is part of cognitive upgrading#

Decentralized applications have always been a very confusing term. It is not surprising that the essence of decentralized applications is not easy to understand. A few years ago, when I was just starting to get involved in this field, I was also confused by various concepts, looking at all kinds of contradictory descriptions in the market, and occasionally doubting my intelligence or years of computer science knowledge. Early DApps were more conceptual, so many people were confused, and there were various misinterpretations of decentralized applications - there were originalists who worshiped excessively (such as those who always talk about whether the decentralization level is sufficient), there was the obscurity of various "concepts" (such as "fat protocols"), and there were many exaggerations for commercial promotion purposes. In the past two years, due to the excessive fantasy about decentralized applications leading to disappointment, it seems that we are moving towards another extreme.

In the past few years, as we developed ArcBlock Platform we wrote Dozens of articles exploring what DApps are and what they are not from several different perspectives, and the advantages of implementing DApps. Our book published last year by CITIC Publishing Group, "Blockchain Practice: From Technical Innovation to Business Models", dedicates several chapters to elaborate on this issue.

In the online course of "Decentralized Application Development Design: Learn How to Apply the Focused Decentralized Product Thinking Mode" in 2019, I mainly talked about the idea of developing decentralized applications from the perspective of decentralized identity (DID). If you haven't watched that lecture yet, I suggest you take some time to listen to it, because what is most needed in the development of decentralized applications is a change in mindset. There is no need for major updates in development methods, tools, languages, frameworks, or even skills, but there needs to be some new thinking in design ideas.

Analogy "centralized applications" vs. "decentralized applications"#

Friends who understand ArcBlock know that we often mention "first principles" in our product and technical design, but when it comes to helping everyone better understand decentralized applications, I prefer to use more "analogies".

Some time ago, our designer Cao Wen wrote an article using LEGO blocks to analogize and understand the ArcBlock architecture system "Visiting a LEGO Toy Store: An Interesting Journey to Develop a Decentralized Application". It is from an analogical perspective to help readers easily understand our software architecture, and received many favorable reviews.

When we use the correct analogy, it is easy to understand the difference and connection between decentralized applications and centralized applications, and some questions and doubts will be easily solved. Whether it is architectural design or LEGO bricks, analogies are used to help everyone better understand: architectural design and decentralized applications are analogized from a macroscopic perspective, making it easier for everyone to experience what is a decentralized application; looking at decentralized applications from LEGO bricks is analogized from a microscopic perspective, allowing everyone to understand how to build centralized applications from the details. The two have similarities. It is important to note that the "analogy" method is often used to help everyone understand, and sometimes it may not be precise, so after understanding the concept through analogy, further thinking is necessary.


Image: A model of a house made of building blocks and an actual house.

Software designers (Software Architect) and architects are both Architects, so let's use residential buildings to understand the differences and connections between decentralized software from an architectural perspective and the commonly seen centralized software in today's internet era.

The high-rise apartments on the left side of the picture may be familiar to many people's daily living environments. It is quite appropriate to use such housing as an analogy for many internet services today: apartment-style residences are a typical service with centralized characteristics, where many residents share hallways, stairs, elevators, and above-ground spaces. In many cases, residents do not actually own the building or land, essentially just "renting" the right to use it. Now, imagine the various internet services you use such as WeChat and Weibo, you are "renting" the services provided by the service provider together with millions of other users. Your account does not actually belong to you, and your data is not under your control.


Image:Left - An apartments buildings in HK(Unsplash @jcgellidon), Right - A contemporary house in Australia(Unsplash @rarchitecture_melbourne)

On the right is an analogy with a standalone house for "decentralized applications". Decentralized applications emphasize user autonomy, just like this standalone house, where residents often independently own their land and their building. This is exactly what "decentralized applications" emphasize: users should have autonomous identities, users should have autonomous data assets.

With this analogy in mind, it might be easier to understand the four key characteristics of "decentralized applications." You can try to comprehend and ponder on it:

  • Autonomous user identity and authentication system that cannot be taken or controlled by anyone.
  • The right and authorization of user data, data autonomy and controllability, data portability.
  • Better protect privacy and resist censorship.
  • Can run in a decentralized manner, reducing dependency on other services.

By analogy with the above figure, it is easy to understand the similarities and differences between "decentralized applications" and current "centralized applications," as well as what kind of application you would prefer to have in the future. But also consider what biases this analogy might have. The most obvious bias is that the left figure is a crowded apartment, while the right figure is a more upscale residence. In reality, there are luxurious apartments and cramped standalone houses as well. However, if you can recognize these biases during the analogy and see beyond the surface to the essence, you can still use analogies more effectively to understand the concepts of new things.

"Centralized applications" and "decentralized applications" have a lot in common.#

Is everything about decentralized applications independent? It is very easy to understand this concept by analogy with architecture. Although your single-family house is very independent and decentralized, usually you will connect to the shared power network, telephone, broadband, and your house usually will also connect to the small water system in the community... Besides, you will also enjoy various public services, such as the post office sending you letters, courier companies delivering packages, police maintaining public order, and the local government taking care of everything related to city management such as roads and street lights. Decentralized applications, just like this "decentralized" single-family residence, give you a lot of independence and space, but you are not isolated from the world because of it. Here, I have to emphasize a point I have always insisted on: centralization and decentralization are not absolute and opposites.

As decentralized applications, it may still be necessary to use some centralized services to make the applications more user-friendly. For example, the domain name system (DNS) is a relatively centralized system. While decentralized applications can certainly operate without using domain names, there are also new decentralized domain name services emerging, but they are still far from being widely accepted by the public. Similarly, the servers of decentralized applications, and even the current blockchain, do not exist independently of the internet. Just like a standalone house still needs to be built on the ground, an ideal standalone house is always built in a well-planned area in order to have better public services.

It is easy to understand that although "decentralized applications" have better privacy protection and anti-censorship capabilities, they are not a "lawless land". They bring the ability to resist illegal coercion and looting, and still conform to the governance mechanism of modern rule of law society, even a governance method that better reflects democratic rule of law. In terms of legality, there is not much difference between centralized and decentralized applications.

Is "decentralized applications" more difficult to design and implement?#

By using the analogy method, you can ask yourself whether designing a 30-story high-rise apartment building is "more difficult" or designing a two-story detached villa is more difficult? Is the cost of constructing a high-rise apartment building higher, and the architectural requirements higher? Or is the cost of a detached villa higher, and the architectural requirements higher? But at the same time, think about it, for residential buildings of the same area, is a single unit in a high-rise apartment building more expensive, or is a detached villa more expensive? Why?

The idea of designing and implementing decentralized applications is different, actually it is very natural once the concept of decentralized applications is understood, even easier to understand than centralized applications, because we humans are decentralized ourselves, there is no "mother (Matrix)" system to unify and manage the world's population, instead each individual establishes their own world through their perception of the world. Therefore, in a sense, decentralized applications are simpler and more direct.

From a software engineering perspective, the cost and difficulty of designing, developing, and operating a centralized service with many users is likely to be far greater than that of a decentralized application. However, the cost for users to use a decentralized application may be higher than renting centralized services.

The ArcBlock framework of ABT Node and Blocklet further lowers the threshold for the design, development, and operation of decentralized applications. In fact, we believe that the prosperity of future decentralized applications will bring about a prosperity of small and medium-sized developers, and even individual developers, rather than the current situation dominated by a large number of internet giants.

Are users finding it more difficult to install and use "decentralized applications"?#

One very important feature of decentralized applications is "decentralized deployment". Decentralized deployment has always been a challenge. In the previous generation of decentralized application movements, the biggest challenge of decentralized software was installation. In the past movements of decentralized social software, the most successful and influential projects such as Mastodon and Diaspora, when you see how they started in their documentation, you will know that in addition to technical geeks and programmers, there is also a need for huge enthusiasm and a certain amount of network and service resources in order to install instances of these decentralized applications. It is precisely because of this difficulty that their designs often require some enthusiastic individuals to build shared instances for a group of people, in order to allow more users to participate.


Many popular decentralized applications related to blockchain recently have not solved this key issue, most decentralized software is actually deployed centrally, such as CryptoKitties, Uniswap only deploy smart contracts on the blockchain, and the front end of Web still deploys in the same way as internet services.

ArcBlock's ABT nodes and ABT token mechanism can be described as the pearl on the crown of decentralized applications. The biggest problem solved by ArcBlock's ABT nodes is "decentralized deployment." On the ArcBlock platform, users only need to pay with ABT tokens to automatically obtain the node resources of ABT nodes. The installation, deployment, startup, and management of these nodes are all automated. Users prove their usage rights to nodes and services through NFTs. In future video demonstrations, I will show how to easily achieve the "decentralized deployment" of ABT nodes. This is just the beginning, and in the future, this will become a service available to everyone, and it will only get better and better.

---

In the first part of today, a way of thinking is given, thinking about what decentralized software and services are and how they differ from centralized services, breaking the myths about decentralized applications. Having a clear understanding of these, let us now move forward step by step and see what the ArcBlock platform can already help developers achieve. Everything is just beginning, and many things may be beyond imagination, because the design thinking of decentralized software is a cognitive upgrade.

你获得 0 积分