Guide to Flow
January 26, 2022
Flow is a developer-friendly blockchain built for a new generation of games, apps, and the digital assets that power them.
An introduction to Flow
Flow is built by Dapper Labs, the company behind Cryptokitties, and it’s inspired by the scalability challenges Dapper Labs faced as Cryptokitties rose to prominence. Flow aims to be the blockchain foundation for onboarding mainstream users via the next generation of game, app, and digital asset developers. The protocol is designed to scale using multi-role architecture rather than sharding, resulting in increased speed and throughput while remaining developer-friendly and secure.
Flow’s first forays into the game and collectibles market are their partnerships with the NBA and the UFC. Developed on Flow, the innovative NBA Top Shot app allows NBA fans to buy digital tokens featuring photos, videos, and data from the most memorable moments of the season. The NBA Top Shot app is considered highly successful, with over $31M USD in sales of digital momentos since it was founded. Once sold out the tokens can only be purchased in a peer-to-peer marketplace, and in the future tokens will highlight moments from the league’s history.
Flow also published plans to “sponsor the creation of an entertainment industry council for C-level executives from global IP holders, game publishers, entertainment studios, and cultural influencers. The council will help identify risks and opportunities, remove friction-points for consumer adoption, and help catalyze a healthy global entertainment ecosystem.”
Flow has six key innovations:
Multi-role architecture: The consensus process is separate from the compute process on Flow, with four node types splitting the work of maintaining, securing, and progressing the chain. This architecture allows for greater participation in the network due to the lower costs to run certain node types. In addition, specialized work results in more and faster transactions and block production.
Resource-oriented programming: Flow’s smart contracts are written in Cadence, a language designed for safety and usability. It is intended to be easier and safer to use than other programming languages for smart contracts and digital assets.
Developer ergonomics: Flow incorporates several novel features to increase the efficiency, ease, and usefulness of their working environment including upgradeable smart contracts and The Flow Emulator.
Consumer onboarding: Flow’s design is focused on enabling ease-of-use for onboarding non-technical consumers to the world of blockchain.
Blockchain resource pricing: Fees are low and predictable to provide consistency for DApps and their users. A base inclusion fee is collected for any transaction on the blockchain and a computation fee may be added to larger transactions based on the variable load created when executing the operation.
Storage deposit: Flow accounts require a single deposit of FLOW tokens upon creation to pay for the storage of the assets contained in those accounts. It covers the storage of those assets in perpetuity.
How to participate on Flow
In order to increase throughput speed, Flow created multi-role architecture for the network. Using four different types of participation nodes, Flow separates non-deterministic (“subjective”) processes, such as determining the presence and order of transactions in the blockchain, from deterministic (“objective”) ones, such as computing the result of those ordered transactions once it has been determined. Non-deterministic tasks require coordination while deterministic ones have a single, objectively-correct outcome.
Nodes for non-deterministic processes:
Collection Nodes are placed in cooperating clusters by the protocol to collectively manage the transaction pool and collect valid transactions to propose to Consensus Nodes.
Consensus Nodes form and propose blocks using the HotStuff consensus algorithm to create a globally consistent chain of blocks. They have minimal bandwidth and computation requirements, which makes it easier for anyone to participate in consensus.
Nodes for deterministic processes:
Execution Nodes execute transactions and maintain the Execution State, a cryptographically-verifiable data store for all user accounts and smart contract states. They also respond to queries related to the Execution State. This work requires the Execution Nodes to be the most resource-intensive on the network. It is also the key reason Flow can improve its scale and efficiency without utilizing sharding.
Because of the significant hardware requirements to run these nodes, they are the least accessible option for participating as a Validator. However, with relatively few Execution Nodes doing the work, the rewards per node are expected to be high.
Verification Nodes confirm the work done by Execution Nodes is correct. Although each individual Verification Node only checks a small amount of the total computation, collectively the nodes check every computation several times in parallel.
Each type of node performs a discrete task in the validation process for each transaction. To allow this approach to work, Flow uses a new cryptographic technique called Specialized Proofs of Confidential Knowledge (SPoCKs) to address the Verifier’s Dilemma. Without revealing anything confidential, SPoCKs allows ‘provers’ to show they have access to the same information. Each prover has its own specialized SPoCK which can not be copied or forged. Requiring each prover to have a SPoCK ensures that each node does its own check rather than copying other nodes results or blindly following their lead.
All four participation node types are rewarded for their work on the chain, but the number of each type varies by the work performed. At launch, Flow expects to have 20 Collection Nodes, 43 Consensus Nodes, 3 Execution Nodes, and 73 Verification Nodes. As the protocol grows, a balancing system will incentivize the most secure distribution of node types by changing the reward rates for each type.
Target staking ratio
Minimum stake (from self-bond and delegation)
Delegation is also a feature on Flow. Delegation rewards are paid out automatically on a weekly basis by the protocol. There is a minimum 10% fee on the rewards earned by delegators, which is paid to the validator to help cover the costs of node operation.
Rewards on Flow
Flow has a fixed inflation rate (although it drops after the initial bootstrapping phase); network participants will earn 3.75% inflation per year, derived from new token issuance and transaction fees. As transaction fees rise, the rate of new issuance will decrease. If transaction fees rise above the inflation rate, the additional earnings are held in escrow to offset future inflation. This process minimizes new issuance while guaranteeing a healthy inflation and reward rate for participants.
With a 3.75% inflation rate, the reward rate is expected to be 11.36% per year.
All four participate node types (Collection, Consensus, Execution, and Validator) are rewarded for their work on the chain. In order to maintain a balance between node types, the protocol does not reward all node types equally. A balancing system incentivizes the most secure distribution of node types by changing the reward rates for each type.
If a node type is overrepresented (e.g. Consensus nodes have 60% of the stake), then the inflation rate received by that node category will decrease and the inflation received by underrepresented node categories will increase. This adjustment parameter is called a reward coefficient.
The reward coefficient will not be live at launch; it will be enabled after epochs are enabled. Before this time, the Flow team will delegate to nodes to keep the ratio at the ideal state. For example, if only 40% of tokens are staked to Consensus nodes, the Flow team will stake the necessary tokens to those nodes in order to get the ratio to 51.8%.
The Flow foundation will delegate to partner nodes to ensure they remain in the active set for up to two years or until the time the staking requirement for the node equals the validator’s holdings. If, at the end of two years, the holdings still don’t match what is needed, Flow governance will vote on whether the Foundation’s delegation should remain with that validator or go to a new entrant.
Risks of participation on Flow
There is no slashing at the launch of the Flow network. Slashing is unlikely to be enabled for at least a year after launch. Once slashing exists, there will be no performance-related slashing penalties, such as for downtime, except for Collection Nodes.
If too many Collection Nodes are down simultaneously, the protocol will assume this act was done intentionally and will slash the nodes exhibiting that behavior. A single Collection Node going down for a short period of time will not result in slashing.
Governance on Flow
At its launch Flow has no formal governance; instead, anyone may submit an improvement proposal to Flow’s GitHub where it can be reviewed, and may be implemented, by the Flow Core Dev team. Protocol upgrades designed by the development team are then proposed to node operators for adoption.
The team’s first step towards on-chain governance is expected to be allowing for non-binding votes to be cast publically on the network to display the Flow community’s opinions on the development team’s efforts. At some point Flow intends to then enable on-chain voting for a representative council that makes day-to-day decisions for Flow and implements public development proposals, with their decisions being default unless Flow holders vote otherwise.
Why run Flow nodes with Coinbase Cloud?
Participate with confidence based on Coinbase Cloud's expertise and experience with Flow, as the only provider that runs all four of Flow’s participatory node types — including one of only three Execution Nodes on the protocol. We continue to collaborate with Dapper Labs, the team behind Flow, providing feedback on infrastructure requirements, operational costs, economics, and timelines.
Easily scale your infrastructure and switch the type of node you’re running to increase potential participatory rewards
Access data from the Flow blockchain to analyze trends and build robust applications
Delegate your tokens to Coinbase Cloud’s non-custodial public Flow validators
Increase reward potential by distributing delegations to Coinbase Cloud's collection, consensus, execution, and verification nodes (when split delegations are enabled on Flow)
"The Bison Trails [now Coinbase Cloud] team really sets the standard for professional node operation. Their team is reliable and committed, and goes beyond technical excellence to build communication and understanding in the wider community." — Dieter Shirley, Chief Architect for Flow