Dfinity (ICP)
Basics
- Based in: Zurich, Switzerland
- Founded in: 10-2016.
- Mainnet release: had its first mainnet release with Mercury (6-1-2021). However, Dfinity founder Dominic Williams announced (24-3-2021) that the project would launch its first Mainnet Beta release candidate on Mar. 30, 2021.
- Known as The Internet Computer, Dfinity aims to demonopolize the internet from the hands of big tech.
- Aims to deliver an infinitely scalable decentralized cloud that will be able to power applications from decentralized search to supply chain applications.
- “DFINITY is an open virtual blockchain computer and technology that extends and refocuses the Ethereum ecosystem for business. Innovations include open chain governance using a "Blockchain Nervous System", private chains with smart contracts that can directly call into contracts on the public chain and Third Generation crypto and protocols that create a 20X faster virtual machine and provide a roadmap to infinite scalability.”
- The main claimed innovation behind the Internet Computer is Chain Key Technology, which encompasses several new technologies including the consensus mechanism, Non-Interactive Distributed Key Generation (NI-DKG), Network Nervous System (NNS), Internet Identity, and more.
History
- The project was founded in October 2016 by Dominic Williams.
- It started out with DFINITY having it's own DFN token. Later on (2020), the Dfinity Foundation declared it would have The Internet Computer procotol (ICP) as a token for the Dfinity project.
Audits & Exploits
- Bug bounty program can be found [insert here].
Bugs/Exploits
Governance
Network Nervous System, or NNS.
- NNS, otherwise known as the Sodium Network.
- From Cointelegraph (30-9-2020):
"NNS will use a proprietary token called ICP to facilitate operations on its “Internet Computer.”
The NNS is an algorithmic governance system which will allow ICP holders to lock tokens within it to create “neurons.” These provide voting rights on proposals which affect the network’s operation. They also give participants rewards in the form of additional ICP tokens.
The independent data centres which run the special node hardware underpinning DFINITY’s Internet Computer are also rewarded in ICP tokens."
- From the FAQ of Dfinity (27-5-2021):
"The NNS is the autonomous software that governs the Internet Computer and manages everything from economics to network structure. The NNS is hosted within the network itself, and is part of the system of protocols that securely weaves together the compute capacity of node machines to create the Internet Computer blockchain network, allowing the network to be autonomous and adaptive. The NNS acts as an autonomous “master” blockchain with a public key to validate all ICP transactions.
The NNS will put proposals to a vote, such as whether to expand the network by adding subnets or onboarding new node machines, which are then voted upon by holders of ICP utility tokens who have locked up their tokens.
The NNS also combines nodes from independent data centers to create subnets, which are used to host canisters, an evolution of smart contracts. The NNS continues to create subnets based on the capacity demands of hosting canisters and the ability to connect to other subnets and allowing the Internet Computer to scale indefinitely."
DAO
Treasury
Token
Launch
"DFINITY raised a total of $121 million from contributors such as Andreessen Horowitz, Polychain Capital, SV Angel, Aspect Ventures, Electric Capital, ZeroEx, Scalar Capital, and Multicoin Capital, and several notable early Ethereum supporters. In 2018, over 50,000 registerter participants received ICP utility tokens in an airdrop. On December 18, 2020, DFINITY launched the alpha mainnet of the Internet Computer. In a final step towards decentralization, on May 10, 2021, DFINITY launched the Internet Computer into the public domain. This major milestone means that the internet now functions as a decentralized global computer — marked by the release of all of the Internet Computer’s source code into the public domain, as well as ICP utility token allowing tens of thousands of community members to govern the Internet Computer network."
Token allocation
- From Cointelegraph (30-9-2020):
"At launch, there will be 469,213,710 ICP tokens in existence — a number determined by the quantity of tokens previously issued via pre-sales and other distribution rounds."
- There is no defined supply schedule of ICP (12-5-2021) "To participate in the network, tokens are locked in neurons. Therefore, those tokens are not liquid and able to be freely transferred to others.”
"General Emission Type: Inflationary
Precise Emission Type: Other Burn & Mint models
Capped Supply?: No"
"Circulating supply depends on the dynamics of the market. However, it is approximated to be 26% at Genesis. Genesis Initial State Token Allocations
- Early contributors: 9.50%
- Seed donations: 24.72%
- Strategic: 7.00%
- Presale: 4.96%
- Strategic partnerships: 3.79%
- Community airdrop: 0.80%
- Initial community and developer grants: 0.48%
- Node operators: 0.22%
- Internet Computer Association: 4.26%
- Team members: 18.00%
- Advisors and other third-party token holders: 2.40%
- DFINITY Foundation: 23.86%"
Utility
- At the center of the new governance system will be a token, called ICP (formerly called DFN). (30-9-2020)
Token Details
- From Cointelegraph (30-9-2020):
"NNS will use a proprietary token called ICP to facilitate operations on its “Internet Computer.” The NNS is an algorithmic governance system which will allow ICP holders to lock tokens within it to create “neurons.” These provide voting rights on proposals which affect the network’s operation. They also give participants rewards in the form of additional ICP tokens.
The independent data centres which run the special node hardware underpinning DFINITY’s Internet Computer are also rewarded in ICP tokens.""
"These tokens fuel Dfinity's decentralized web, akin to how ETH provides gas for the Ethereum network. ICP can also be used to participate in governance, allowing holders to vote on the proposals that will shape the future of the Internet Computer."
- ICP token holders will be able to lock their tokens within the NNS to create “neurons” that allow them to vote on new proposals.
- From CMC (27-5-2021):
"Cycles power computation in the role of fuel. They also have a constant value over the long-term, which contrasts with ICP, whose value will naturally vary over time. Moreover, Cycles will be pegged to the SDR, which is a logical currency unit defined by the International Monetary Fund, and 1 SDR worth of ICP can be converted into exactly one trillion Cycles to power computation."
Coin Distribution
Technology
- Whitepaper can be found here.
- Code can be viewed here. From Decrypt (12-5-2021):
"At the same time that ICP was launched on Coinbase Pro, the Internet Computer’s code was open-sourced. There was no prior release, to limit the possibility of Dfinity’s competitors appropriating its code, which means that the code has not been tested by anyone outside the community."
- Programming language used: Motoko; its own language.
Transaction Details
- Capacity (TPS): From this blog (7-10-2017): "will roll out a pure PoS system that promises 50x increase in transactions per second by combining faster block production times (i.e. more blocks/minute) with higher gas limits (i.e. more transactions/block)."
- From their FAQ (26-5-2021):
"The Internet Computer can scale capacity without any bounds simply by ingesting more node machines to the network and creating more subnets. There is no limit to how high the TPS can go."
"The exact latency of a subnet depends on a number of factors, including the number of replicas, network topology, and real-world latency between them. Block time is not exactly equivalent to latency, in terms of when you send an ingress message and when you receive a reply. It takes time for a replica to receive your message, and it will only include it in the next block. Then it takes time to finalize and execute. A client (e.g., browser) is also polling to see if computation result is ready, so that also takes time. There is still room for continuous optimization. But as far as the consensus protocol is concerned, it will be difficult to do significantly better. The block rate goes down a bit with higher replication factors because a higher number of replicas are needed to send messages for the block to be agreed upon, and the Distributed Key Generation (DKG) work is more computationally expensive. This shouldn't be very significant yet, but once there are so many replicas that they can't all talk to each other and need to forward messages, the message latency will go up, and this will add a bit to the round time (should be linear in the "hops" of communication in the subnet)."
How it works
"Instead of central servers, the Internet Computer would see the creation of a host of independent and distributed data centers, enabling software to be run by anyone, anywhere in the world."
- From this blog (7-10-2017):
"DFINITY achieves fast block production with its threshold relay technology, which uses threshold signatures to quickly reach consensus among a selected set of miners over a peer to peer network. A threshold signature is a group signature that can only be constructed from the combined signatures of some threshold number of members, and thus represents cryptographic proof of agreement by at least that many members. An extremely important property of the BLS group signature used in DFINITY is that the signature bits are always the same regardless of which subset of members contributed to it. This allows the network to quickly and independently reach consensus on a random number (i.e. the signature) that is key to producing blocks in fast, regular intervals (e.g. every 5 seconds), and significantly increasing transaction throughput.
DFINITY claims a 25x increase (over Ethereum) in transactions per block is possible using a Probabilistic Slot Protocol. The protocol divides each block time into prioritized slots that identify a specific block producer for that slot. The higher priority slot the higher the block’s weight, so in the event multiple blocks are produced for a given block time, the network chooses the block that makes the highest cumulative weight valid chain. The random value produced in the previous block time allows all honest nodes to independently agree on the slot priorities and block weights, and thus the heaviest valid chain. A chain is only valid when built on blocks that have been notarized by group threshold signatures. Notarization in each block time quickly kills off lighter chains, enabling transaction confirmation times to be as low as 2 blocks (roughly 7.5 seconds).
The secure generation of the group signing keys is thus critical to both block notarization and the randomness that secures the threshold relay consensus process. DFINITY uses a secure distributed key generation (DKG) protocol, which enables group members to interactively generate the group signing key without any centralized authority. Although this protocol has been proven secure (i.e. safe and live) in a network with 100% reliable broadcast, that assumption does not hold in relay networks with adversaries and keys can be compromised by an attacker with sufficient resources to control a large enough contingent of a single group. DFINITY claims the threshold relay consensus process can tolerate a high failure rate of the DKG protocol and still function, and hopefully will publish specifics on the max tolerable failure rate as well as how many non-failures producing compromised group keys could be tolerated. The computation and communication costs of the DKG algorithm are significant at the group sizes needed to effectively thwart attacks on threshold relay consensus (~400 members), so DFINITY will likely face some major challenges in optimizing and engineering a key generation protocol that works well enough on a relay network with adversarial nodes."
- From their FAQ (26-5-2021):
"We do not rely on historical blocks for verification purpose. Each replica only stores enough blocks to keep the network healthy (e.g., help other replicas catch up), and will delete old ones when they are no longer needed. This is also due to the finalization algorithm. Once input block is finalized, new states can be computed deterministically, and only need to keep the latest canister state. Older blocks and older states are not that useful."
Subnets
- Works with subnets. From their FAQ (26-5-2021):
"There is no explicit global consensus, only in the subnets. This is what allows the network to scale out. Subnets can always be added to increase the capacity of the Internet Computer.
Cross-subnet calls cannot be, because the subnets are "islands of consensus." Cross-canister calls within a subnet theoretically could be, but this would make the parallel execution of different canisters more difficult, so they are not really atomic."
- From the FAQ of Dfinity (27-5-2021):
"A subnet is a special kind of blockchain within the Internet Computer network that can seamlessly integrate with other blockchains to increase capacity. The Network Nervous System combines nodes from independent data centers to create subnets, which are used to host canisters, an evolution of smart contracts. Each subnet runs its own blockchain, and canisters run on-chain in such a way that they can transparently call canisters on other subnets/chains. In fact, there is no difference between calling a shared canister function on the same subnet or a different subnet, it's just a function call within a seamless universe of secure code.
The subnets are transparent to canister code and users of canisters — developers and users just interact with the Internet Computer, while the ICP protocol securely and transparently replicates data and computation across subnet nodes in the background. The system is more secure than a traditional blockchain because the precise decentralization of data and computation is controlled by the protocol rather than left to chance. Pooling (traditional PoW, PoS) or the creation of validator nodes with vast amounts of stake that create more blocks (as per PoS), is not possible. Direct interaction between subnets, and with subnets, is enabled by "Chain Keys," which are made possible by novel advanced cryptography developed by DFINITY."
Canisters
"The IC lets developers deploy and run applications through the use of canisters, which are akin to smart contracts. Each canister has a storage capacity of 4GB."
- From the FAQ of Dfinity (27-5-2021):
"Canisters are computational units that include both program and state. A software canister is similar to a container in that both are deployed as a software unit that contains compiled code and dependencies for an application or service. Containerization allows for applications to be decoupled from the environment, allowing for easy and reliable deployment. The canister differs from a container, however, in that it also stores information about the current software state with a record of preceding events and user interactions.
While a containerized application might include information about the state of the environment in which the application runs, a software canister is able to persist a record of state changes that resulted from an application’s functions being used. This concept of a canister consisting of both program and state is an important one because when a canister function is invoked by sending a message to one of its entry points, there are only two types of calls: non-committing query calls and committing update calls."
"Every canister consists of WASM code and memory. Unlike in other chains such as Ethereum, cycles are pre-funded in each smart contract or canister."
Fees
Upgrades
"The Internet Computer, the Dfinity Foundation’s long-awaited platform for smart contracts that run at internet speed, is now live. It launches now with multiple ecosystem companies built to prove out its technology stack, including Enso Finance (a decentralized exchange), Distrikt (a professional social network), Fleek (infrastructure for the decentralized web) and Origyn (a provenance platform for luxury goods), among several others."
Staking
Validator Stats
- From their FAQ (26-5-2021):
"At Genesis, the NNS subnet launched with 28 nodes, and application subnets have 7 nodes each. This is an initial number in order to test more subnets as nodes come online.
The NNS governance system (which is governed by the votes of neuron holders) decides how large a given subnet on the Internet Computer will be. Subnets do not need to be limited to 7 or 28 nodes, this is just the initial implementation of the Internet Computer."
"At Genesis on May 10, 2021, the Internet Computer is supported by 48 independent data centers — located across North America, Europe, and Asia — running 1,300 nodes. The network will continue to grow exponentially to support the next generation of mega dapps, with 123 data centers running 4,300 nodes scheduled by the end of the year, and eventually thousands of data centers running millions of nodes to support the decade-long building out of the Open Internet. Importantly, anyone can become a node provider, interested parties apply for a Data Center ID (DCID) to the Network Nervous System (NNS), procure specialized machine nodes, install the ICP protocol, and connects to the Internet Computer network."
Scaling
Different Implementations
Interoperability
"Called Terabethia, the bridge enables cross-chain contract communication, asset mirroring and transfer across different chains. It is built on a forked version of Ethereum scaling solution StarkWare, and will enable contracts on both chains to communicate and allow anyone to mirror and use any Ethereum asset on the Internet Computer and vice versa."
Other Details
Chain Key
- From the FAQ of Dfinity (27-5-2021):
"Chain Key Technology allows the Internet Computer to finalize transactions that update smart contract state in 1–2 seconds. This is an enormous improvement, but still insufficient alone to allow blockchain to provide competitive user experiences, which require that responses be provided to users in milliseconds. The Internet Computer solves this by splitting smart contract function execution into two types, known as “update calls” and “query calls.” Update calls are those we are already familiar with, and take 1–2 seconds to finalize their execution, while query calls work differently because any changes they make to state (in this case, the memory pages of canisters) are discarded after they run. Essentially, this allows query calls to execute in milliseconds."
Oracle Method
Their Projects
The Internet Computer (ICP)
"The cryptocurrency of the project administered by the Dfinity Foundation. The Internet Computer is a smart contract platform running on the Internet itself and is designed to power blockchain versions of some of the web's most popular applications—decentralized alternatives to WhatsApp, LinkedIn and TikTok."
- From the FAQ of Dfinity (27-5-2021):
"The ICP utility token (formerly known as “DFN”) is the primary mechanism that allows the broader internet community to participate in the governance of the Internet Computer network. ICP can also be dissolved and converted into cycles, which are then used to run websites and applications as well as power computations on the Internet Computer via canisters."
Sodium Network
- From State of Stake #32 (18-9-2020):
"DFINITY Sodium Network Launch on September 30th: The Sodium Network will unveil the Network Nervous System (NNS), an open algorithmic governance system that controls the Internet Computer."
Roadmap
- Can be found here (22-11-2016).
- Sodium is the last milestone before the public launch of the Internet Computer later this year, when it spins out as part of the public internet (30-9-2020).
- Dfinity split(24-3-2021) its roadmap into five stages. The final phase, Mercury, will mark the mainnet launch of the Internet Computer. Dfinity released an alpha version of its mainnet in December 2020. The beta release candidate launching on Mar. 30 will likely be a precursor to unlocking ICP token transfers and DFINITY's on-chain governance system. There are no current details for how long Dfinity's mainnet will remain a release candidate or in beta.
- From their FAQ (26-5-2021):
"On our roadmap, we have plans to employ trusted execution environments (e.g., SGX/SEV) to get both attestation guarantees (that the replicas have not been tampered with, i.e., by the node operator) and privacy guarantee (namely that the state of the replicas/canisters is accessed only through their public interface — so nothing should be leaked besides the results of the computation)."
Usage
Projects that use or built on it
- From CMC (27-5-2021):
- "Enso Finance – Decentralized exchange that has raised $5mn
- Tacen – A high-performance non-custodial exchange that has raised $2.5mn
- SailFish – A gateway to open financial services
- Distrikt – A decentralized, professional social media network. It is the Open LinkedIn application shown off by DFINITY in Davos at WEF 2020 that is now being taken to market
- OpenChat – An open version of your standard chat app that is not owned by a large tech corporation
- CanCan – An open version of TikTok that shows the scalability and power of the Internet Computer
- Capsule – A decentralized social media platform which is safe from censorship that has raised $1.5mn
- Fleek – Allows easy building of open web sites and applications. 14,000 websites already running Pan-Industry Platforms
- Origyn – A pan-industry platform for tracking the provenance of luxury goods, starting with luxury watches"
Competition
- Layer 1 blockchains. Structure looks most similar to Polkadot.
- From this blog (7-10-2017):
"DFINITY is an Ethereum-compatible smart contract platform that is implementing some revolutionary ideas to address blockchain performance, scaling, and governance. Whereas DFINITY could pose a credible threat to Ethereum’s extinction, the project is pursuing a coevolutionary strategy by contributing funding and effort to Ethereum projects and freely offering their technology to Ethereum for adoption. DFINITY has labeled itself Ethereum’s “crazy sister” to express it’s close genetic resemblance to Ethereum, differentiated by its obsession with performance and neuron-inspired governance model.
With these differentiators DFINITY appears to be broadening and strengthening the EVM ecosystem by giving applications a choice of platforms with different characteristics. However, if DFINITY succeeds in delivering a fully EVM-compatible smart contract platform with higher transaction throughput, faster confirmation times, and governance mechanisms that can resolve public disputes without causing community splits, then it will represent a clearly superior choice for deploying new applications and, as its network effects grow, an attractive place to bring existing ones. Of course the challenge for DFINITY will be to deliver on these promises while meeting the security demands of a public chain with significant value at risk."
"Every canister consists of WASM code and memory. Unlike in other chains such as Ethereum, cycles are pre-funded in each smart contract or canister."
- From Crypto Briefing (5-7-2021):
"Three months after Dfinity’s Internet Computer went live, the project’s founder Dominic Williams has proposed a fork of the blockchain. In a blog post, Williams conceptualized a new blockchain called Badlands. The post explained how Badlands would act as a sister network to Internet Computer."
Pros and Cons
Pros
Cons
- Claims infinity scalability, which should make people pause for thought.
- Cross-subnet interactions are not seamless (26-5-2021).
- Smart contracts have to be pre-funded.
- Genesis allocation was totally directed to private sale and team.
- To become a node you need to apply (27-5-2021).
- No on-chain treasury (27-5-2021)
- Inflation schedule cannot be found and is being danced around.
- The founder came up with a fork and new token 3 months after launch, which smells fishy. This especially is suspicious due to allegations about the team pump and dumping:
"A report by Arkham Intelligence alleged that the Dfinity team front-ran investors through their distribution of ICP tokens. Arkham found that the team allegedly forced vesting schedules upon seed investors and airdrop holders, while insiders at the firm were able to liquidate unvested allocations of the token."
Arkham itself did not disclose their wallet analysis, but when joining a Justin Bons Twitter Spaces, it said they would, if Dfinity would do so as well (25-2-2023).
Team, Funding, Partnerships, etc.
Team
- Full team can be found here.
- The DFINITY Foundation, a not-for-profit organization based in Zurich, Switzerland.
- Parent company is String Labs
- Ding, Tom; founder of String Labs
- Williams, Dominic; founder of String Labs and ex-president and CTO
- Cedric Waldburger; co-founder
- Arthur Falls, on the team since early 2018.
Funding
- Pre-launch funding (7-5-2020) $167.1M
- Venture backed company. Recently raised $102 million from investors such as VC firm Andreessen Horowitz
- Part of the portfolio of 8 Decimal Capital
- Polychain lead a $60M round (2018).
- Is part of the portfolio of MultiCoin (25-11-2020).
Partners
- As of 7-2019 on the partner & clients list of ZeppelinOS.
(:
Knowledge empowers all and will help us get closer to the decentralized world we all want to live in!
Making these free wiki pages is fun but takes a lot of effort and time.
If you have enjoyed reading, tips are appreciated :) This will help us to keep expanding this archive of information.