An introduction to DApps
Introduction
I talked about releasing DApps last time , but I didn’t explain about DApps in the first place, so I tried to summarize it myself. DApps is a completely new concept application that is also called Web3.0. This time, I will explain the outline of DApps, the architecture, the challenges and the future.
Released the distributed bulletin board service CryptoBoard
What is Dapps?
DApps is an abbreviation for Decentralized Applications.
Decentralized means “decentralized, decentralized” and refers to applications decentralized by blockchain technology.
Why is decentralization necessary?
Traditionally, there is an application in the center that users use by connecting to it.
On the other hand, with DApps, it is an image of using an application that exists on a distributed network.
This is not about making it redundant and operating it on multiple servers, but about whether or not there is an entity that manages the application.
There are various characteristics of decentralized applications, but the following three characteristics will be explained broadly.
There is no Single Point of Failure
It exists on a decentralized network as explained above. Therefore, in the past, if the central server fails, the system will go down, but in a distributed network, even if several servers (nodes) fail, the entire network will continue to operate normally. The application running on it also has the characteristic of being resistant to failures.
Bitcoin is also a good example, but maintaining a distributed network provides economic incentives, DApps Development Services each designed to sustain the entire ecosystem by maintaining the system for their own benefit. I am.
To put it simply, you’ll be rewarded for helping maintain the system, so you can stay up and running while you have participants.
Trustless
The second feature is trustlessness.
The point is not “no credit” but “no need to trust”.
Since there is no central administrator, participants can trade directly with each other.
Mercari and other flea market apps allow users to trade with each other, but due to the existence of Mercari, transactions with products and users not permitted by Mercari may be restricted.
A major feature of DApps is that they are not subject to such censorship or restrictions.
Transperency
As we will see later, DApps works with programs deployed on distributed networks. The program is called a contract, and the execution of the program is called a smart contract.
Since the contract is basically open to the public, the user can verify that the contract is not fraudulent.
For example, think of a game app gacha. For a while, I was suspicious that the user was manipulating the winning probability of the gacha so that it would be disadvantageous.
In this way, it is possible to prevent the internal system from being tampered with by not being able to see it.
Strictly speaking, contracts are programmable, so if you want to write them centrally, you can. However, the correct understanding is that the fact cannot be hidden. In other words, DApps development company you can create a contract that is convenient for the developer, but if someone who can read the source sees it, it will be immediately noticed.
In fact, it is controversial that all contracts are public, and techniques for creating highly confidential contracts have also been proposed. So I’ll just say “it can be verified as valid” here.
How DApps work
As mentioned above, DApps work using a mechanism called smart contracts.
A smart contract is a “program that automatically executes the specified contents (contract)”.
In fact, smart contracts themselves do not assume blockchain. It is said that by combining blockchain technology, it will be possible to realize a highly transparent system that is resistant to failures (no single point of failure) and difficult to tamper with.
With this alone, it is difficult to understand what the value of a smart contract is, so let’s explain it with a simple example.
There is a rental car contract. In that case, the service will be provided according to the following flow.
The user pays on the rental car contract
The business operator temporarily transfers the ownership of the car to be rented to the user.
The user can use the car within the scope of the contract
At first glance, you might think that you can do the same with your existing web application.
Certainly everything can be done online, which is no different from existing systems.
However, what I want you to think about here is that we need to trust each other that it is an existing system.
From the user’s point of view, it is necessary to trust this company to pay the price and rent a car really correctly. Is it a well-known company? Is it a government-approved business? Judge whether it is a business that can be trusted from such things.
The same is true from the business side. It is necessary to check whether the person to whom the authority is transferred is the user who really paid the price, and whether the user can stop using it within the scope of the contract by the identity verification procedure.
As mentioned above, the big point is that it is automatically executed by trustlessness.
If this mechanism becomes feasible, there may be a future in which all systems in society will be executed on the blockchain.
DApps architecture
DApps can be built on a decentralized application platform.
Currently, various platforms are being proposed and provided, and I think they will continue to appear in the future.
Among them, Ethereum is currently the largest and most well-known platform.
Ethereum is called “World Computer” and provides a platform with a concept like a universal OS.
In a conventional Web application, the user connects to the client (Javascript / HTML) from the browser and uses it by exchanging information with the server that manages the data. Of course, all client and server side programs need to be hosted on the infrastructure (AWS, Heroku, etc.).
On the other hand, in DApps, the processing of the data and (part of) the server-side functions can be executed by the contract expanded on the blockchain.
Actually, it is necessary to pay a fee (Gas) to deploy the contract, and there is a problem that the cost becomes enormous when deploying a large amount of data. So instead of running everything on the blockchain, you need to think about how to combine it with your existing architecture.
The point here is that it’s up to the design to decide which function to perform in the contract.
You can access and operate the contract deployed on the blockchain only on the client side, or you can prepare a server separately and execute the contract from there.
However, the point is how far the trustlessness, which is the basic principle of DApps, is realized.
The standard architecture is to contract only the important parts of the service and manage a large amount of data in the database.
At the moment, the above architecture is the mainstream, but technologies that can be put on the blockchain on the client side are also being developed. (IPFS, Swarm, etc.) DApps development
DApp project example
It seems that there are more than 1000 DApps including those currently under development, but I think that there will be more in the future.
I will introduce about two.
uPort A
service that centrally manages personal information and allows you to easily prove your identity when using the service.
The identity system is compatible with blockchain, and it is easy for third parties to cooperate with services, so I would like you to do your best.
GNOSIS
Prediction Market Service. Simply put, a token-based betting platform.
Betting can be a dirty image, but by giving participants a highly transparent economic incentive, it is a socially valuable service because it provides reliable forecast data.
You can search for existing DApps on the following sites, so if you are interested, please do.
State of DApps