Resources

DFINITY's Governance Model: Canisters and the Network Nervous System (NNS)

Explore the groundbreaking world of canisters and decentralized governance on the Internet Computer (IC) network. Discover how canisters, super-powered smart contracts, go beyond traditional limitations and serve as the foundation for building scalable web3 applications.

DFINITY's Governance Model: Canisters and the Network Nervous System (NNS)

Neuron Network System

The NNS (Neuron Network System) is a decentralized autonomous organization (DAO) that governs the Internet Computer (IC) network. It operates as a fully on-chain, decentralized system and is responsible for making protocol-level upgrades to continuously improve the Internet Computer.

The NNS utilizes liquid democracy, a form of governance where ICP neuron holders vote on proposals that shape the development of the network. Once a proposal is accepted, it is autonomously executed. Unlike other blockchains that require manual coordination and take weeks or months to upgrade, the Internet Computer upgrades itself on a weekly basis, giving it a comparative "superpower" of rapid iteration.

Users can stake ICP governance tokens to create voting neurons within the NNS. Neurons represent the will of the community and can vote manually or automatically by following other neurons in a liquid democracy approach. The voting power and rewards of neurons are determined by factors such as staked ICP quantity, dissolve delay (a configuration determining the notice period for withdrawals), and age.

Neuron holders participate in a cryptoeconomic game, where they are incentivized to vote on proposals that drive the long-term value of the Internet Computer network. The NNS governs various aspects of the network, including protocol upgrades, creation of new subnet blockchains, economic parameters, and freezing malicious canister smart contract software if necessary.

The NNS operates by accepting proposals submitted by neurons and deciding to adopt or reject them based on voting activity. Each proposal belongs to a specific proposal topic, and the NNS maintains corresponding system functions for each type of proposal. To prevent spam, a fee is levied on rejected proposals.

Neurons can be created by locking ICP balances, and their locked balances can only be unlocked by dissolving the neuron. Users earn rewards in the form of newly minted ICP for voting on proposals, with rewards depending on factors such as locked balance, dissolve delay, neuron age, and voting activity across all neurons.

The dissolve delay of a neuron creates an economic incentive for neuron owners to vote in the best interests of the network, as it maximizes the value of their locked ICP balances in the long term. Liquid democracy allows neuron owners to vote automatically by following other neurons, mitigating the challenges of evaluating and voting on numerous proposals.

The NNS aims to govern the Internet Computer network in an open, decentralized, and secure manner. Its governance model incentivizes active participation and aims to ensure network security by discouraging concentrated influence. By participating in the NNS, users can help shape the future of the Internet Computer and contribute to its decentralized infrastructure competing with centralized infrastructures run by commercial organizations.

Proposal

Proposals submitted to the NNS follow a specific format and contain various fields:

  1. Summary: A brief description of the proposal, limited to a maximum of 280 bytes, providing an overview of its purpose.
  2. URL: The web address (HTTPS) where additional content related to the proposal can be found. This could include supporting information, documentation, or resources required to evaluate the proposal thoroughly.
  3. Proposer: The ID of the neuron that submitted the proposal. The proposing neuron must have a dissolve delay of at least 6 months, similar to the requirements for voting.
  4. Proposal Type: The type of the proposal, which determines its topic and the system function that will process it if adopted. Each proposal type corresponds to a specific topic, such as #NodeAdmin, #NetworkEconomics, #Governance, and others. The proposal type also determines the parameters required for the system function.
  5. Parameters: The parameters that will be passed to the system function when the proposal is adopted. The structure and contents of these parameters are determined by the proposal type.

Each proposal submitted to the NNS receives a unique identity assigned by the system.

Topics

The topics associated with proposals help determine how they are processed within the NNS. Here are some examples of initial topics:

  • #NeuronManagement: This special topic allows neurons to be managed by their followees for this specific topic. Votes on this topic are not included in the neuron's voting history. Only the followees on the relevant topic can vote on proposals related to #NeuronManagement. The restricted set of eligible voters for this topic results in a shorter voting period for proposals.
  • ExchangeRate: Proposals related to this topic provide real-time information about the market value of ICP in terms of an International Monetary Fund (IMF) Special Drawing Right (SDR). This information allows the NNS to maintain a constant real-world cost for ICP-to-cycle conversions. Due to the frequency of proposals in this topic, they have a shorter voting period, and votes on this topic are not included in the neuron's voting history.
  • #NetworkEconomics: Proposals related to network economics, such as determining rewards for node operators, fall under this topic.
  • #Governance: This topic covers proposals related to governance, such as motions and the configuration of certain parameters.
  • #NodeAdmin: Proposals related to the administration of node machines, including OS upgrades, virtual machine framework configuration, and node replica software upgrades, are categorized under this topic.
  • #ParticipantManagement: This topic encompasses proposals related to network participants, including granting and revoking data center identities (DCIDs) or node provider identities (NPIDs).
  • #SubnetManagement: Proposals related to the administration of network subnets, such as creating new subnets, adding or removing subnet nodes, and subnet splitting, fall under this topic.
  • #NetworkCanisterManagement: This topic covers the installation and upgrading of "system" canisters belonging to the network, such as the NNS itself.
  • #KYC: Proposals related to updating Know Your Customer (KYC) information for regulatory purposes, especially during the initial Genesis distribution of ICP in the form of neurons.
  • #NodeProviderRewards: This topic is specifically for proposals related to rewarding node providers.

The NNS processes proposals differently based on their topics, considering factors such as voting periods and the inclusion/exclusion of votes in the neuron's history.

Your development environment as part of the Internet Computer ecosystem

Canister

Canisters, introduced by the Internet Computer (IC), are super-powered smart contracts that go beyond the capabilities of traditional smart contracts. They are computational units consisting of both code and data, deployed on the Internet Computer and accessible over the internet. Canisters serve as the state, storage, and memory for IC applications, similar to how a canister holds all the elements required to run a scalable web3 application.

Compared to traditional smart contracts, canisters offer improved performance characteristics that enable the building of scalable software services. One key difference lies in how data from smart contracts can be verified. The Internet Computer utilizes Chain Key Cryptography, allowing smart contracts to be verified on "subnets," providing scalability advantages over smart contracts on traditional blockchains that require the entire blockchain history for verification.

Canisters have various applications beyond smart contracts. Here are a few examples:

  1. Canisters as storage units: Canisters serve as the base building blocks on the Internet Computer, directly storing and reading data. They can be used to build storage setups where multiple canisters communicate with each other. Examples of on-chain infrastructure dApps using canisters as storage units include Fleek and IC Drive.
  2. Canisters as on-chain processes: Canisters function as processes on a blockchain, similar to how processes operate on traditional operating systems. They enable functionalities like making payments, managing permissions, and executing directly on the blockchain. This distributed nature makes canisters crash-resistant. Defi and utility dApps like Infinity Swap and Content Fly utilize this feature for on-chain bridge-less transactions.
  3. Canisters as "actors" for message communication: Canisters can communicate bidirectionally with other canisters, allowing them to send and receive messages. This feature, combined with the Internet Computer's ability to execute a massive number of canisters in parallel, overcomes the performance limitations of traditional smart contracts. Social media dApps like dscvr and Openchat leverage canisters to scale their platforms to web-speed.
  4. Canisters can be coded in any WebAssembly language: Canisters can be written in various languages that can compile to WebAssembly, such as Motoko and Rust. Canisters written in different languages are fully interoperable, making it convenient for developers to build on the IC. Demergent Labs, for example, is developing tools for building TypeScript, GraphQL, and Python for the Internet Computer.
  5. Canisters as identities and authentication: Canisters have explicitly registered identities on the Internet Computer, and the IC authenticates users and passes principal IDs to the canisters. Canisters can implement authorization policies based on principals, enabling password-less identity authentication on the IC using Internet Identity (II). This authentication can be used for authorizing wallets like Plug and Stoic.

The Internet Computer simplifies the process of writing and deploying code while offering the potential for real decentralization that can be scaled up, thanks to the power of canisters. Developers can leverage canisters to unlock new possibilities and build decentralized applications on the Internet Computer.

To explore the live activity of deployed canisters on the Internet Computer, you can visit the IC Dashboard: [https://dashboard.internetcomputer.org/]. The number of canisters deployed on the IC is continually increasing, indicating the growing adoption and utilization of this technology.

By utilizing super-powered canister smart contracts, developers can tap into the full potential of decentralized applications, all while running entirely on-chain.

Stay updated with the latest news and developments in the DFINITY ecosystem by following DFINITY on Twitter. Join the community and discover the endless possibilities of the Internet Computer. Follow @dfinity and be a part of the decentralized future. #DFINITY #InternetComputer #Decentralization