Hashkey Cui Chen: A detailed look at Dfinity's progress and competitive advantages and disadvantages since launch
Original source: Cui Chen, Hashkey Capital Research
The Dfinity team was founded in 2016 and became a star project after raising $195 million in 2018. The mainnet, which was scheduled to launch in 2019, has been delayed repeatedly, and in the process, Dfinity has also shifted its goal to an Internet computer, with less emphasis on blockchain content. Finally, on May 10, 2021, Dfinity unlocks the circulation of all tokens, meaning that the mainnet version will finally go live. How is the much-hyped Dfinity doing? What are the differences with other public chains? This paper will focus on the interpretation of these two issues.
Now Dfinity network has launched ICP token and development circulation, according to CMC data, Dfinity's market value remains in the top 10 or so, the same level as Polkadot, which has been launched for a few months. A corresponding browser for Dfinity has also been opened, and Dfinity's network data can be used to gauge its current status.
Dfinity takes the Internet computer as its vision, making the Internet a platform for public computing. Internet computers host software in a non-downtime container, allowing users to be independent of traditional servers and cloud computing companies. In order to ensure that the network has enough computing power, Dfinity has professional requirements for nodes, especially high-performance CPU and RAM, so the nodes are run by professional data centers. Typically, data centers run multiple nodes simultaneously, which also maintain different subnets. As shown in the figure below, the subnet may be jointly maintained by different nodes in different data centers to avoid centralized failures in the network.
Figure 1: Data center and nodes
Currently, Dfinity has 14 subnets and is maintained by 105 nodes, which are distributed in 16 data centers. Ten of the data centers are located in the United States, three in Singapore, and others in Romania, Switzerland, and Germany. Each data center operates an average of seven nodes, which are managed by 53 operators. At present, Dfinity is too centralized in both the number and distribution of nodes. Ethereum also has the most nodes in the United States, with 39 percent of the total number of nodes, while Bitcoin has the most nodes in the United States with 19.5 percent. Unlike the Dfinity, Bitcoin and Ethereum networks, nodes do not need computing power mining to compete for billing rights. The network capacity is represented by memory, and the total memory of Dfinity network is 0.205PB. These gaps are related to the fact that Dfinity is just getting started, and the project is expected to have thousands of data centers and hundreds of nodes within a decade.
It took Dfinity two weeks to reach a block height of more than 12 million, while it took Ethereum six years to reach the same height. At present, the block output speed of Dfinity is about 12 blocks per second. Although the block output speed is faster, the information transmitted in the network is a hundred times different from that of Ethereum, which is also related to the fact that it is still in its infancy.
Dfinity is targeting Internet computers, where developers can deploy their applications without using traditional databases and servers. Therefore, it is necessary to ensure the expansibility of the network, and at the same time, to prevent attacks and protect privacy. In order to realize the function of being an Internet computer, Dfinity has been optimized and innovated in technology, mainly reflected in user authentication system, container, subnet, consensus mechanism and Chain Key, etc.
In today's Internet, a user logs in with an account and password and uploads information to a server. In fact, this method is not secure, and hackers are very likely to attack the company server or server provider to obtain data. Instead of accounts and passwords, Dfinity uses a digital signature system, which is the public and private key of encryption technology, including key generation, signature and verification. Other blockchain protocols also use a digital signature system, in which users use a private key to log in to a wallet and transfer money, among other things. If the private key is lost or stolen, it means that the property in the address is permanently lost. Dfinity offers an Internet authentication system that is different from password login for Internet accounts, and different from private key login for blockchain.
Dfinity's Internet identity can be verified login in three ways: a biometric system in the device (smartphone or laptop), a password to unlock the device, or a security key inserted into the computer's USB. When the user first registers, the encryption key is generated in the chip of the device and is bound to the generated user number. If a user's user number is lost, or the device on which he or she logged in is lost, Dfinity's Internet identity cannot be connected, so the official recommendation is to add multiple devices under the same user number. Internet identities can also give users different identities at the front of different containers, so that when a user interacts with each application, the application cannot associate the user's behavior in different applications.
The units of computation in Dfinity, called containers, contain programs and states and are a variant of smart contracts. Containers allow applications to be separated from the environment and store a record of current software state and user interactions, as well as state updates resulting from the use of application functionality. The interaction between the container and the user or the container is stored on the blockchain, so the process it runs is immutable and unstoppable, which is the reason why Internet computers do not need firewalls. Containers can also run web frontiers, unlike smart contracts, which keep them running as long as they have fuel to feed them. The fuel that the container runs on is Cycles, which are exchanged individually by the network token ICP. The exchange ratio is not fixed, so the price of Cycles can be kept relatively stable. Storing Cycles in a container allows users to use Internet services without owning tokens, unlike other public chains.
Containers are run by nodes located in the data center, which are assigned to different subnets to expand the capacity of Internet computers. Each subnet runs its own blockchain, and containers on the chain can transparently call containers on the same subnet or on other subnets. For the entire system, calling containers in the same subnet or across subnets makes no difference, as replication and computation between nodes are involved. There is a special one in these subnets, which is responsible for maintaining the governance System of Internet computers, that is, the Network Nervous System (NNS).
Figure 2: Nodes maintain the subnet and containers are distributed in the subnet
A subnet in an Internet computer is maintained by multiple nodes, and each node needs to hold the state of all containers in the subnet and process new processes. For the security and reliability of the network, the backups of each node need to be exactly the same, and the processing order of messages needs to be consistent to reach a consistent state, so nodes need to agree on the messages they receive. In other words, the nodes collect the information from the outside world through the point-to-point network, and the information reaches a unified message through the consensus layer before routing and creates a notarized block. In Dfinity, VRF and BLS (Random Verifiable Equation and Threshold Signature) algorithms are adopted to achieve a one-third fault-tolerant blockchain protocol.

Figure 3: Information processing in Dfinity
In Dfinity, consensus is reached through four steps: block generation, notarization, random number beacons, and final confirmation. At the beginning of each round of consensus, the nodes will gather the collected messages into blocks and broadcast them, and then the nodes will perform signature notarization. After the notarization reaches an agreement, the signatures of each notarization node will be compressed into multiple signatures to save space. Random beacons are introduced to prevent multiple blocks from appearing at the same block height and facilitate rapid consensus. Each block has a random beacon, which is generated by the node via BLS and is unpredictable. After receiving the random beacons of the block, the node uses the BLS framework to sign it. If a block has more than 50% of the notary's signatures, the signatures on the block will be gathered into multiple signatures and generate the random number beacons.
Figure 4: Random beacon generation
Nodes can be ranked by random beacons. The notarization time of the block is divided, and the node in the first place is notarized first. In case of timeout, it is changed to the next place. If more than one notary block exists, then the first notarized block becomes the final notarized block. After observing a block with a height of h, if the notarized node decides not to notarize a block with a height of less than or equal to h, it initiates the final signature confirmation for this block. After more than two-thirds of the nodes confirm the same block, the final confirmation of the block is reached.
Chain Key Technology
Chain Key is the technology of Dfinity to realize subnet expansion and Key management, which can ensure the security and availability of the network. Chain Key is related to the Key system of Internet computers, including the verification of information, Key management and distribution methods. It mainly applies BLS (threshold signature) and non-interactive Key generation system technology. In Dfinity, information can be verified using a unique public key, rather than having to download a full-node ledger as with other blockchains. And each subnet has a fixed public key issued by NNS, the public key can verify the signature information sent from the subnet. When sending information, it is not signed by the nodes alone, but by the nodes in the subnet together. In other words, the threshold signature method is used to confirm the signature of the information, so as to ensure sufficient fault tolerance and ensure that the information is confirmed by enough nodes. Threshold signature refers to the fact that when signing messages, multiple private keys and a certain number of signatures are needed to summarize and represent the confirmation of information by the subnet as a whole.
NNS network needs a non-interactive distributed key generation system for key management and distribution, which can split the key and increase the number of nodes of the key holder without destroying the whole key. In Dfinity, each subnet has a permanent public key used to verify the information sent by the subnet, while the private keys of the subnet are split to each node, and the nodes hold these split private keys to carry out threshold signature to transmit information. The split and sharing of private keys is carried out by the delegator, who sends the encrypted private keys and public keys to each node, and meanwhile sends a zero-knowledge proof without interaction, in order to confirm that the part received by the node is correct and effective without displaying the sharding of private keys.

Figure 5: Verifiably split the key
In addition, in order to prevent the client who sends the public and private key from doing evil, the client should adopt a distributed approach. As long as one of the delegates is honest and the generated keys are random enough, it will not affect the key that the node gets. When adding nodes to a subnet, it is also possible to "re-share" the private keys of existing nodes. After resharing, the node holding the private key changes, but the public key of the entire subnet does not change. This makes it easy for NNS to manage the nodes in the subnet. At the same time, the validation public key of the subnet remains unchanged in the eyes of the outside world, which does not affect the communication between the subnet and the outside world, and maintains a secure and reliable environment.
Figure 6: Key sharing and re-sharing
When a new node joins a subnet or a node goes offline, it needs to update the state of the storage container in the subnet. Every once in a while, a node will sign a "catchup package" to solve this problem. If more than one-third of the nodes in the subnet are damaged, NNS can redeploy the subnet. The "catchup package" can also be used for subnet recovery and subnet upgrade scenarios.
Dfinity is governed by Network neuron System (NNS, Network Nervous System), and every ICP holder can lock the established neuron to participate in Dfinity on-chain governance. Participating in governance can be rewarded systematically, similar to Staking in POS. The voting bonus is gradually reduced, from 10% to 5% by the eighth year. The percentage of the number of locked neurons in the ICP and the unlocking delay time represent its voting weight, and the user is responsible for his or her choice. If the content of proposals and votes harms network development, then the value of ICP locked in neurons will also decline. It should be noted that the dissolving time at unlocking means the time from withdrawal to full recovery of liquidity, not the locking time in other public chains. If the neuron can't judge the decision, it can either abstain from voting, or vote after a trusting neuron. This followership is fluid and invisible, known as fluid democracy, so the neurons' true voting weight can be hidden.
Figure 7: ICP governance rewards
The main work of NNS is to coordinate the relationship between nodes and subnets as well as key distribution. The non-interactive key sharing system mentioned above is realized through NNS. NNS is implemented in two containers: a governance container that contains proposals and neuron information that can be voted on, and a second container that contains various configurations in an Internet computer. Neuron support proposals include the addition of nodes, the distribution of node rewards, etc.
Dfinity's vision is an Internet computer, which will include more applications than a common blockchain. In the past application development and IT deployment, there were problems of high development cost, such as choosing commercial cloud service platform, maintaining database and firewall, purchasing professional or open source operating system, etc., and the late maintenance also cost a lot, while the application of Internet computer saves this part of cost. For this reason, Dfinity is not completely focused on DEFI and NFT like other public chains, but is distributed in various fields.
The Dfinity Foundation recently launched a $220 million developer incentive program, which grants grants directly, rather than investing in projects. The Foundation is currently encouraging several projects, including development kits, developer tools, infrastructure, applications and open Internet services.
Table 1: Part of the grants granted by Dfinity Foundation
In addition, Dfinity's social media platform & NBSP; CanCan It also gets a lot of attention because it operates in a similar way to TikTok, where users earn incentive points that can be exchanged for governance tokens. Cancan has made the code open source, the application is less than 1000 lines of code, and does not require Web services, firewalls, or external databases, etc. Dfinity set up the Beacon Fund to invest in projects. The following figure shows the existing community projects in Dfinity.
Figure 8: Ecological application of Dfinity (Source: ICPSquad)
As can be seen from the above figure, in addition to the Defi app, which has attracted a lot of attention, social applications also occupy a large proportion in Dfinity. This is related to the fact that Dfinity network is extensible enough to support social software applications, and the fact that the official initial supported products are social applications. An interesting phenomenon is that a lot of the social software in Dfinity mimics the existing media apps, adding financial incentives to the existing apps. In fact, other public chains have already made attempts in this respect, but the front end of the application in Dfinity ecology can also be run in the container, and the identity authentication system makes it easier for users to access the Internet computer, so the social applications in Dfinity are different from those in public chain.
Although the content of block chain is not mentioned in the plan of Dfinity, the bottom layer of Dfinity is still based on block chain system, which involves the cryptographic application of public and private keys, the container of untampered execution, the consensus mechanism, the incentive mechanism of tokens, and governance, etc. The design of these aspects is similar to that of other public chains. For example, the container concept, which is very similar to smart contracts, involves in governance by mortgage and obtains rewards, uses consensus mechanism to achieve node unification, uses fuel Cycles to drive the operation of the container, etc.
In terms of details, Dfinity is quite different from other public chains. Compared to other public chains, Dfinity's NNS governance system is endowed with great power. Although the essence is still more important than the number of votes and the user governance of long pledge time, the dissolution time of the user pledge ICP is determined at the moment when it is locked into a neuron, and the dissolution time means the time between the time when the user decides to cancel the lock and the user gets the unlocked ICP. Compared to other public chains, Dfinity governs to lock tokens for a longer time, due to the fact that neurons have the highest power in the system.
Although Dfinity is an open network, the addition and allocation of nodes can only be completed through NNS system proposal, which is different from other public chains. Professional data centers are required for operation nodes, and personal home computers cannot meet the operation requirements of Dfinity. Node addition, subnet allocation, and capacity expansion are also done via NNS. Dfinity system has innovative Chain Key technology, which can ensure that the nodes of the subnet can be added or reduced and the subnet can be expanded without affecting the communication of the subnet, which is difficult to be achieved by other public chains.
In terms of Token design, Dfinity's dual-currency model is different from other public chains. The fuel Cycles supporting container operation need to be purchased by ICP exchange. The variable exchange ratio can maintain a stable price of Cycles and avoid the impact of ICP price rise and fall. This keeps container operators' costs stable.
For Dfinity users, the login authentication system is different from other public chains. When logging in, the user ID can be registered and used through hardware facilities, computers or smart phones without using a wallet, which greatly reduces the cost of learning and using. The fuel Cycles of the container do not require storage by the user; in fact, the user does not feel anything when using the container, whereas most public chains require the user to pay to run a smart contract.
In terms of ecological application, Dfinity also shows a difference from other public chains. In the current environment, many public chains focus on Defi or NFT applications, mimicking the popular apps on Ethereum to compete. It can be seen that the application of Dfinity is mainly "replicating" the Internet application, combined with economic incentives. But due to scalability and user barriers, this path has not worked for Ethereum and other public chains.
Dfinity's vision is to enable people to deploy applications directly into the Internet to ensure security, which requires the use of blockchain as the underlying layer to achieve immutability and prevent evil. The scalability of blockchain often limits its use, so optimizations and innovations in Dfinity address these issues. Dfinity requires the data center to undertake the requirements of running nodes to ensure the reliability of the network. NNS is responsible for the management of subnets and nodes. It can add subnets when necessary in the system, and realize the management of the increase and decrease of the number of nodes in the subnet, so as to ensure the network activity. The threshold signature and verifiable random function in consensus can make nodes reach consensus quickly. Technology and a more powerful governance mechanism set Dfinity apart from other public chains. The authentication system in Dfinity also lowers the learning barrier, bringing users closer to the Internet experience when using it.
With the support of these technologies, the use of Dfinity is more towards the traditional Internet, rather than the main use of Defi. At present, most of the applications on Dfinity imitate Internet applications, adding tokens and governance systems to the original Internet applications. DSCVR, for example, also has a similar interface to Reddit. But Dfinity's goals are not limited to the blockchain public chain. For enterprises, deployment on Internet computers can save costs; For the user, using the Internet computer is close to the Internet experience. It is worth paying attention to whether blockchain applications that fully imitate Internet applications can become hot style. As an Internet computer, the development of distributed commerce will be an opportunity for Dfinity.
Dfinity's future plans also include Ethereum integration, with container and smart contract interoperability by creating special smart contracts in Dfinity. Now at the theoretical concept stage, both of these will change dramatically if interconnection can be achieved. Dfinity will operate as a layer 2 network like Ethereum, and Ethereum can also directly use Dfinity's authentication system.
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
