What is DFINITY?
DFINITY is a project aimed at creating a decentralized cloud blockchain infrastructure for a new type of Internet.
The developers are striving to realize the initial goals of Ethereum to create a “world computer”. The founders call the project “the crazy sister of Ethereum”, “Internet computer” and “cloud 3.0”, and also expect that DFINITY will compete with Google Cloud and Microsoft Azure.
The blockchain infrastructure of the project is designed to simplify the development of new software systems, reduce the cost of storing and protecting information, as well as ensure the confidentiality of user data.
It is assumed that the “Internet computer” will support many different applications, both corporate and designed for individual users. The new public computing environment will also be used to host social networks, instant messengers, search networks, etc.
Who created DFINITY and when?
The founder and chief scientist of the DFINITY Foundation and the Internet Computer Project is Dominic Williams. He is a graduate of King’s College London, a serial entrepreneur, engaged in theoretical research and practical developments in the field of distributed computing.
In 2012, Williams settled in Palo Alto, California. One of his biggest projects was the MMO game [Massively Multiplayer Online] with millions of users. Williams developed an innovative server technology for it with horizontal scaling.
During the development of computer games, he was interested in the idea of Ethereum supporters to create a “world computer”. In 2013, Williams devoted himself entirely to the study of blockchain.
By 2015, Williams’ focus was on a model with a focus on random number generation and the use of threshold cryptography on a decentralized network. He gave this concept the name DFINITY (from Decentralized Infinity) and created a simple website for the project. Subsequently, Williams created the basic architecture of the “Internet computer” and a framework for the software hosted on it.
In the same year, a public announcement of the DFINITY project took place. In October 2016, a non-profit organization DFINITY Foundationwas registered in Zug, Switzerland, which is engaged in the development of the project.
Currently, the DFINITY team consists of 180 people. It includes former developers from Alphabet and Uber, as well as PhDs from Yale University. DFINITY Foundation research centers are located in Palo Alto, San Francisco and Zurich. Separate development teams operate in Japan, Germany, the United Kingdom, and several U.S. states.
In February 2017, the project held the first crowdsale of the token. According to its results, 3.9 million Swiss francs were attracted.
A year later, DFINITY raised $61 million from venture capital firms Andreessen Horowitz and Polychain Capital.
In August 2018, the DFINITY Foundation held a closed token sale for accredited investors, raising $ 102 million. the Funding round was headed by the cryptocurrency division of Andreessen Horowitz (a16z).
Also participants of the round were Polychain Capital, SV Angel, Aspect Ventures and Multicoin Capital. The price of one token was $ 4.18, and coins totaling $ 35 million were distributed among representatives of the community through airdrop.
Initially, the release of the minimum viable product (MVP) was scheduled for the first quarter of 2019. However, in December 2018, representatives of the project said that work on a “cut-down” version could slow down progress in creating a full-fledged product, and postponed the launch.
- In November 2019, the first phase of the development of the project called Copper started. At this stage, the alpha version of the software development kit(SDK)was launched and the technical documentation of the Motoko smart contract language was published.
- On January 23, 2020, the second phase, Bronze, started. The project demonstrated an open decentralized version of LinkedIn’s social network for finding and establishing business contacts called LinkedUp, running on the decentralized “Internet computer” DFINITY.
- In June 2020, the project opened an Internet computer to third-party developers as part of the Tungsten phase. DFINITY also introduced an “open alternative to the TikTok service” called CanCan.
- On September 30, 2020, the fourth phase of the project called Sodium started. DFINITY has launched a protocol management system designed to be the latest element before the public release of a decentralized internet computer. The Network Nervous System (NNS) is an “algorithmic control system comprising independent data centers.” It is based on the token of the ICP project. Together with the launch of the management system, the developers announced the creation of the Beacon Fund – a special fund in the amount of $ 14.5 million for investments in companies and individual entrepreneurs creating solutions based on DFINITY. The management of the Beacon Fund, supported by Andreessen Horowitz, was taken over by the hedge fund Polychain Capital.
- On December 18, 2020, the project carried out a “decisive initial stage of decentralization” of the Internet computer, launching an alpha version of the main network. The blockchain was deployed on standardized “node machines” placed under the control of NNS. The phase was called Mercury.
- Mercury’s genesis unit was launched on May 7. After that, NNS began issuing ICP service tokens. With their help, users can generate “neurons” and take part in network management, voting for new proposals. This was preceded by the launch on March 30 of the beta version of the main Mercury network.
Who manages the DFINITY project?
The project is managed by a community of users voting on updates, economic policy and development of DFINITY.
Fundraising for the development of the project and conducting airdrops is carried out by the DFINITY Foundation.
What are the technological features of DFINITY?
Canisters [Canisters ]
A canister is a compute unit that allows an application to remain isolated from the environment. It stores information about the current state of the program, as well as previous events, user interactions, and state changes.
Open Internet Service
Open Internet Service is a technology used in the “Internet computer”. The code is built into the very “fabric” of the Internet, which allows the service to work autonomously, relying on the support of users.
When a developer wants to create an Open Internet Service, he transfers control of his canisters to tokenized canisters under public management, which are responsible for updates and configuration. The process is then guided by the NNS, providing an opportunity to vote and make decisions about its code, policies, and functions.
The Open Internet Service can label publicly available features (such as APIs) as “persistent.” In this case, canisters cannot rewrite such publicly available functions. Updating may lead to a decrease in the quality of functionality that the canister provides, canceling the API. In this case, the Internet Computer management system makes changes to the Open Internet Service management system. They remain in force until the restoration of the expected functionality.
Persistent APIs allow developers to create services that rely on data or functionality provided by other services. At the same time, they are free from platform risk – dependence on the APIs of technology companies.
For example, when LinkedIn revoked access to its API from thousands of companies, they lost all their data and source of authentication overnight. The Open Internet Service operates without having an owner and maintaining constant access to the “code” for users. The latter can use it without fear of losing or losing access to it.
Motoko is a new programming language developed by the DFINITY Foundation along with the SDK. It is designed to help a wide range of developers create and maintain websites, corporate systems and Internet services in the Internet Computer.
The DFINITY Foundation strives to optimize Motoko as much as possible for the new environment. Internet Computer is able to support any number of different frameworks.
The organization is also working on an SDKthat supports the Rust and C programming languages.
Cycles [CYCLEs] are computational resources that allow you to perform operations in internet computer. All canisters consume resources in the form of cycles to route messages and save data.
Canisters maintain an account balance to pay for communication, computing, and data storage by their applications. The cost of data processing is expressed in units of cycles.
Cycles reflect the net cost of operations and resources such as physical hardware, rack space, energy, memory devices, and bandwidth. In other words, a loop unit represents the cost of executing a single WebAssembly statement.
Due to the limit on the number of cycles consumed by the canister, the platform does not allow malicious code to deplete resources. The relative stability of operating costs also makes it easy to predict, for example, the number of cycles to process a million messages.
Cycles are similar to “gas” in Ethereum and “credits” in AWS, but have additional use cases for data, computation, and operations. Their model also provides for technological pitfalls – for example, the growing cost of use.
Neuron [neuron ]
Neurons are part of a system called the Blockchain Nervous System (BNS), also known as the Network Nervous System (NNS).
BNS is like a decentralized autonomous organization (DAO) – any network participant can propose changes in economic policy or renewal, for which they pay a commission fee. Votes for sentences are considered by neurons that are controlled by operators.
The weight of the voice is determined by the number of tokens in the steak and the period during which the neuron functions. Neuron operators are rewarded in tokens for considering votes. This process is called “thought mining” – thought mining.
If the owner of the neuron believes that he does not have sufficient expertise to vote on complex issues, he has the right to change the configuration of the neuron. The updated neuron begins to “follow” the neuron with a more experienced owner.
The mechanism of “following” is flexible: depending on the type of voting (on economics, politics, customer upgrades, etc.), a neuron can “follow” one neuron or several. Users can also “dissolve” their neurons by releasing tokens inside neurons, and convert them into cycles to carry out computational operations.
The ICP utility token (formerly known as DFN) is used as a means of security deposit (e.g., in staking), allowing you to participate in project management. It can also act as collateral to allow client software or DFINITY private cloud networks to communicate with the public network.
ICP tokens serve as a reward for neuron operators participating in voting on network operations. The amount of reward is proportional to the number of tokens that are stable in the neuron.
In the future, tokens will ensure the operation of decentralized applications by analogy with gas in Ethereum. THE ICO will be burned to create new cycles.
Chain Key Technology
Chain Key Technology is a 48-byte public key that makes old blocks unnecessary, increasing the speed of the Internet computer. The technology allows you to finalize transactions that update the state of smart contracts in 1-2 seconds.
Internet Computer divides the execution of the smart contract function into two categories – request calls and update calls. Update calls take 1-2 seconds to finalize.
Request calls work differently: any changes they make to the state (in this case, to the memory pages of canisters) are written off after they are made. This allows you to make request calls in milliseconds.
Subnet is a blockchain within the Internet Computer network that is able to integrate with other blockchains, increasing its performance. Network Nervous System brings together the hosts of independent data centers that create subnets used to host canisters.
Subnets are transparent to the canister code and its users — developers and users simply interact with Internet Computer. At the same time, the ICP protocol securely and transparently duplicates data and calculations in the subnet’s nods at the deep level.
Unlike traditional blockchains, the decentralization of data and computational processes is controlled by the protocol. The formation of pools (as in PoW and PoS-blockchains), as well as nod validators with a large number of tokens in the steak, creating additional blocks (as in PoS-blockchains), is impossible.
Direct interaction with the subnets and between the subnets themselves is carried out thanks to Chain Key Technology.
Network Nervous System
The Network Nervous System (NNS) is a standalone software that manages the Internet Computer and regulates all processes in the ecosystem – from the economy to the network structure.
NNS is located in the network itself and is part of a system of protocols that combine the computing capabilities of the nods to create a blockchain.
The NNS acts as a standalone master blockchain with a public key for validating ICP transactions.
The NNS puts to the vote proposals for expanding the network through the addition of subnets or the integration of new nods. After that, the owners of the ICP service tokens make the appropriate decisions.
Threshold Relay is an innovative validation engine that scales compute and storage capabilities.
Threshold Relay consists of four levels:
- notary level,which provides customers and external observers with guarantees of rapid finalization, as well as excluding the possibility of attacks from malicious miners and Sibylla attacks;
- the blockchain layer,which forms a chain of confirmed transactions through the Probabilistic Slot Protocol, which is managed by variable Random Function;
- Variable Random Function (VRF)is a pseudo-random function that manages the selection of temporary block producers. A key component of the function is the BLS signature [Boneh-Lynn-Shacham]. With its help, DFINITY ensures that no network participant will set the output of the next random selection. The chances of an individual miner becoming a member of the committee and calculating blocks are proportional to the number of tokens in the steak. A certain “weight” is attributed to one or another DFINITY blockchain. It depends on the rank of miners offering blocks in the blockchain. Based on this weight, a choice is made between competing blockchains.
- identification level,which ensures the registration of all customers.
ActorScript is a native DFINITY programming language designed to make it easier for programmers to manage application state through what is known as an orthogonally stable environment in which active programs do not need to revoke or save their state.
All ActorScript contracts are compiled into WebAssemblystatements so that the DFINITY virtual machine can execute logic for applications running on the network. The advantage of using the WebAssembly standard is that it is supported by all major browsers, and various programming languages can be compiled into Wasm (not just ActorScript).