Flow Review: Blockchain For Next Generation Assets
Flow is a blockchain developed by Dapper Labs, the same team that created the now famous CryptoKitties back in 2017. After a 2 year hiatus in which they mulled the next direction for their talents, they came out with the Flow blockchain.
This is a fast and developer-friendly blockchain designed to be the foundation for the next generation of dApps, games, digital assets, and non-fungible tokens. It solves the problem of scalability without sharding, and uses a unique architecture that allows it to deliver massive improvements in speed and throughput. And all the while it also maintains a developer-friendly environment that is also ACID (Atomicity, Consistency, Isolation, Durability) compliant.
With the Flow blockchain developers are free to build new, unique, and massive crypto-enabled businesses and dApps. Flow applications also allow the consumer to maintain control over their own data, which allows them to create non-fungible tokens that can be traded on the open markets all around the world. It also permits the creation of brand-new open economies that are user-owned. This means that the value in the system is created by the users as well.
Flow was created in such a way that its smart contracts can be assembled in much the same way Lego blocks are snapped together. With these snart contract building blocks developers can create dApps that could theoretically serve billions of people, with use cases that can serve mission-critical business requirements to sports fans.
Flow was created with four pillars that make it a unique blockchain:
- Multi-role architecture: Flow was designed to scale to billions of users without the need for sharding, and without reducing decentralization of its consensus mechanism.
- Resource-oriented programming:Flow uses a new programming language called Cadence to write its smart contracts. Cadence was created to be easier for developers and safer for users.
- Developer ergonomics:With upgradeable smart contracts and built-in logging support to the Flow Emulator, the Flow network is designed for results.
- Consumer onboarding:Flow was designed for mainstream consumers, with payment onramps catalyzing a safe and low-friction path from fiat to crypto.
What is Flow?
Flow is a recently launched blockchain from the same developers that brought the world CryptoKitties. It is built for the creation of consumer applications that are crypto-enabled. This includes games and the digital assets that are used within the games. Because Flow understands that these games can potentially have tens of millions of users they focused on creating a high throughput, fast platform.
When comparing Flow with other layer-ne blockchains there are three differentiating features:
- A novel, four-node architecture that allows for improvements in speed and throughput without sharding, layer two solutions, or compromising decentralization.
- Cadence, a new programming language designed with smart contracts in mind.
- Built-in payments, rewards, and distribution mechanisms to help applications on Flow engage their communities, find new users, and build network value.
How Flow Differs from other Blockchains
Traditional blockchains require every node to store the entire state of the blockchain, which makes them slow and resource intensive. These nodes are also responsible for processing every single transaction in the chain.
Flow has improved on this architecture by creating a pipeline architecture that takes the jobs that would usually be done by a single node and separating them across five different node types.
This significantly improves the efficiency of the nodes since it reduces redundant efforts substantially. In order to make this approach work the Flow team developed a new and unique cryptographic technique they’ve named Specialized Proofs of Confidential Knowledge (SPoCK), which addresses the Verifier’s Dilemma.
The Flow blockchain also rethinks many of the design choices in order to improve the usability of the blockchain, not just for developers, but also for consumers. These new design features include upgradeable smart contracts, human-readable security, and more. The protocol itself is then secured by a variant of the Proof-of-Stake consensus algorithm HotStuff that was originally developed by VMware Research.
The result of all these changes and improvements is a single state which is shared by all smart contracts. This ensured that every single transaction processed by the blockchain has full ACID guarantees. By taking this approach Flow has made it possible for developers to easily and safely reuse any other developer’s code.
This approach allows developers to create new products at an accelerating pace since the code base is always increasing and improving. This characteristic is known as “composability.” It is similar to open source software in that it enables faster innovations and ultimately gives consumers more and better choices.
Solving the Scalability Trilemma
The scalability trilemma specifies the tradeoffs that must be made when optimizing any blockchain solution. Specifically it is concerned with three elements; security, scalability, and decentralization. The scalability trilemma says that no blockchain can have all three of these features. Most blockchains have thus focused on security and decentralization to the detriment of scalability.
Many blockchains are now looking to fix this. In the case of Ethereum sharding is being investigated as a way to scale the blockchain horizontally without sacrificing security or decentralization. Flow has taken a different approach and is using its multi-node architecture to create vertical scalability. It can accomplish this because its node architecture separates the work being done, allowing Flow to optimize for decentralization, scalability, and security at different stages of the block cycle.
Consensus and Verification nodes are designed to keep the network accountable. They are the foundation of security for the network. Execution and Collection nodes are designed for throughput and add immense capacity and scale to the network. They are the foundation of scalability. The existence of these 4 different node types ensures distribution of node operators and decentralization of the network.
Multi-Role Validator Node Architecture
The architecture created by the Flow team was inspired by pipelining in CPU design and by the assembly line concept in manufacturing. The protocol lets individual nodes specialize in much the same way an assembly line has specialized areas. Nodes also specialize based on their hardware capabilities and their economic state. This allows the network to scale without sharding while also encouraging broad decentralized participation.
The Flow protocol distributes the work that would normally all go to a single node. This allows for specialized nodes that can take up individual tasks such as verify correctness, coming to consensus, and collecting transactions. This leads to four different node types and their associated tasks as follows:
- Collection Nodes: Bandwidth-optimized nodes divided by the protocol into several cooperating Clusters which contribute to the improved throughput of the system.
- Consensus Nodes: Form and propose blocks in a manner similar to traditionally-structured proof-of-stake blockchains, using the HotStuff consensus algorithm to create a consistent chain of blocks.
- Execution Nodes: The most resource-intensive nodes on the Flow network, responsible for executing transactions, maintaining the Execution State, and responding to queries from dApps and users. The Execution State is a cryptographically-verifiable data store for all user accounts and smart contract states.
- Verification Nodes: Responsible for confirming the correctness of the work done by Execution Nodes.
This separation of labor between nodes is vertical (across the different validation stages for each transaction) rather than horizontal (across different transactions, as with sharding).
In other words, every validator node still participates in the validation of every transaction, but they do so only at one of the stages of validation. They can therefore specialize for — and greatly increase the efficiency of — their particular stage of focus.
The Cadence Programming Language
The Cadence Programming Language is a new high-level programming language created by the Flow team and intended for smart contract development.
The language's goals are, in order of importance:
- Safety and security: Provide a strong static type system, design by contract (preconditions and postconditions), and resources (inspired by linear types).
- Auditability: Focus on readability: Make it easy to verify what the code is doing, and make intentions explicit, at a small cost of verbosity.
- Simplicity: Focus on developer productivity and usability: Make it easy to write code, provide good tooling.
The Cadence programming language is one of the first programming languages to be built around the concept of resources. This concept of resources is a programming abstraction that was initially inspired by linear types. Using resource oriented programming leads to the development of safe smart contracts. This safety factor comes from the ability to track both the digital assets created and their ownership directly in the code.
Upgradable Smart Contracts
One of the promises that come with smart contracts is that users are able to trust the smart contract code, rather than needing to trust the authors of the code. This aspect of smart contract usage is unlocking use cases that are only beginning to be explored and discovered. At this point in time the most impactful of these are the concepts of composability and open services.
The very first smart contract platforms were designed in a way that they were unable to be changed once released. Of course this is the simplest and most straight-forward method for achieving the goal of user trust. If the code cannot be changed once released, even by the author of the smart contract, then there is no need to trust the author, and the code can be trusted implicitly.
The problem with this approach is that software is rarely perfect, or even correct, in its first iteration. There are innumerable examples of smart contracts that were created imperfectly. Some of these were even created by extremely talented teams, and yet the problems in the code eventually led to massive loss of funds.
Because of this there have been large numbers of developers who have expressed a desire to be able to modify a smart contract after it’s been deployed. The reasoning being that often a smart contract needs some aspect fixed.
Several developers have even taken a massive amount of time and bother to attempt to build a mechanism into their smart contracts that allows the contract to be upgraded or migrated. The problem with this is that by allowing every developer the ability to roll their own smart contract upgrade mechanism we add massive complexity to the smart contract ecosystem, while also making smart contracts in general harder to trust.
Flow attempts to get beyond this by allowing smart contracts on its mainnet to be released in a “beta state” that allows the code to be incrementally updated by the original smart contract author. Users will not be left unaware and will be alerted that the code is unfinished and in a beta state.
This way they can choose to use the code as it is or to wait until the code is finalized before trusting it. After the smart contract authors are certain that their code is safe they can release control over the code, making the smart contract immutable from that time forward.
Is it possible to trust the code if it is left open to be upgraded? Image via Shutterstock
This solution allows developers the ability to tweak their code for a short period of time after release to ensure it doesn’t have any safety concerns, while also informing users of the beta state of the code so they know whether the smart contract is truly trustless, or still in state where it can potentially be modified.
Consumer Friendly Onboarding
Flow has promised it can deliver payment on-ramps for users that are designed for mainstream usage. It is also looking to deliver applications that have actual usability when launched. The two features ensuring that dApp users never lose access to their accounts or assets are Human Readable Security and Smart User Accounts.
Human Readable Security
Current dApps and wallet software on other networks find it nearly impossible to deliver a human-readable message that clearly defines what permissions are being given when a transaction is authorized.
Flow differs because it has very strong guarantees in its transaction format. These guarantees let users know what changes can and cannot be made by a transaction. This means users are always informed about what permissions they are giving when authorizing a transaction within their wallet.
The wallet software will be responsible for displaying this information to the user, but the design of Flow makes it possible for the wallet developers to include a transaction approval process that is clearer and more transparent.
Smart User Accounts
Flow was designed to allow for maximum flexibility, which has allowed the creators to pioneer a number of enhancements in the usability of the Ethereum account model. Those changes are now part of Flow’s native account model and have been included in the Dapper Smart Contract Wallet.
- Optional, modular, smart contract functionality built into every Flow wallet
- This supports automated processes or more sophisticated authorization controls, in turn enabling good user experience. For example, dApps can easily make sure consumers never lose their assets – or access to their accounts – with secure account recovery flows
- Added security through optional multiple signature support, with the ability to cycle out old keys regularly to avoid security leaks
The Flow Team
As already mentioned, the Flow blockchain was developed by Dapper labs, which is the same team that created the CryptoKitties platform. Currently Dapper Labs is led by its founder and CTO Dieter Shirley, and its co-founder and CEO Roham Gharegozlou.
Dieter Shirley has developed a specialty in shaping the first waves of emerging technologies. He most recently cofounded CryptoKitties and authored the ERC-721 proposal that defined non-fungible tokens on Ethereum. Before CryptoKitties, Dieter was Chief Architect at Axiom Zen.
Roham Gharegozlou is a co-founder of Dapper Labs and Flow. He holds a bachelor's degree in Economics and dual bachelor's and master's degrees in Biological Sciences from Stanford University. Prior to Dapper Labs, Roham was the founder and CEO of Axiom Zen.
In addition to the two co-founders the Flow team is comprised of 22 talented individuals who are not only concerned with the design of the blockchain and software, but also include marketing and community building professionals. This has led to the formation of many partnerships in the short time Flow has been around, including with the NBA and UFC as wellas Warner Music and Ubisoft.
Flow Use Cases
Flow has been created as a dependable platform, and it can deliver entirely new benefits and features to users. There are a number of use cases and experiences that can be delivered by the Flow ecosystem. These include:
- Artists or bands using crypto tokens to give millions of fans unprecedented new ways to show their fandom
- Games that reward players for adding value and enable assets and identities that users can take across infinite open environments
- Platforms for sports fans around the world to trade verified, authentic, limited-edition digital memorabilia in real-time.
This is why it was so important for Flow to partner with some of the sports and entertainment giants of the world. These include the NBA and UFC, as well as Warner Music Group and games developer Ubisoft.
Thanks to these early partnerships Flow has already seen the development and launch of NBA Top Shot, a platform that enables the creation of “Moments” which are highlights from the NBA that are released as unique non-fungible tokens that can be collected, traded, bought, and sold. As of March 2021 there have been over 2 million sales on Moments on the platform, totaling over $300 million in transaction value.
Upcoming platforms include one for UFC Moments similar to NBA Top Shot, and another for Dr. Suess NFT collectibles.
The FLOW Token
FLOW is the native token for the Flow blockchain. It serves as the reserve asset used for all the activities on the Flow network. Proposed and current uses for the token include:
- Staking token required for validators to perform work on the network and earn rewards.
- Reward token for early adopters participating on the network.
- Fee token for paying for transactions on the network.
- Token for account storage deposits.
- Reserve asset for secondary tokens, like stablecoins.
- Token used to participate in future governance and ecosystem development.
Flow tokens were released as part of a community coin sale on Coinlist from September 22, 2020 through October 2, 2020. Tokens were sold for $0.10 each. Then on October 6 there was a Dutch auction which reached $0.38 per token. Together the token sales reached the hardcap of $19.5 million.
It’s pretty safe to say that those early buyers are pretty happy with their purchase right now as FLOW tokens are currently trading at $32.35 for a return of 32,350% in under 6 months.
FLOW Token Economics
Flow’s developers built the token economics in such a way that there are enough incentives to attract high quality validators, while also keeping inflation at a minimum. This direction was taken to ensure that the users of dApps within the Flow ecosystem are not negatively impacted by excessive inflation rates. The first year of staking in Flow is expected to see the greatest staking rewards as other parts of the ecosystem are still being developed and maturing.
Fixed Reward Rate
The design of Flow’s token economics means that node operators and those who delegate tokens to them can expect to see a return of 3.75% of the total market cap annually. It is expected that the inflation rate will be higher for a short period of time as the network is being bootstrapped.
New tokens will be released to maintain this fixed rate, however as the network usage grows rewards are expected to be generated from the transaction fees. If the transaction fee earnings go above 3.75% then the excess funds will be held in an escrow account to help offset future inflation.
Different Node Types, Different Reward Rate
The fixed reward rate encompasses all the validators, however there will be fluctuations in the reward rate based on the type of node. This is done to ensure that those staking FLOW tokens and running nodes will be incentivized to change their node to meet the role needed at any point in time. The reward rate also includes a set of multipliers called “reward coefficients.” These are automatically adjusted based on the actual ratio versus the targeted ratio.
There are staking minimums for running the various node types, however users are also able to stake smaller amounts through a Blocto account, or in their Ledger wallet. It is also possible to stake from custodial wallets such as CoinList, Kraken, and Finoa. As of March 2021 the staking minimums for node operation are as follows:
- Collection Nodes: 250,000 FLOW
- Consensus Nodes: 500,000 FLOW
- Execution Nodes: 1,250,000 FLOW
- Verification Nodes: 135,000 FLOW
FLOW token holders who are unable or unwilling to run their own nodes can also delegate their tokens to node operators and receive staking rewards.
Rewards are paid out at the end of each epoch, which is 7 days in Flow. Currently the rewards are paid each Tuesday at 14:00 GMT. Rewards do not automatically compound, so it is necessary to restake or redelegate every Tuesday if you do want to compound your staking rewards.
There is also a 7-day unbonding period when tokens are unstaked. The unbonding period begins at the end of the epoch, which means unbonding could take up to 13 days if begun just as an epoch begins. Also there are no rewards earned during the unbonding period. For these reasons it is beneficial to unstake tokens close to the end of an epoch rather than at the beginning of the epoch.
As is common with most PoS blockchains nodes can be punished in the form of slashing their stake if they are found to be acting maliciously on the network. Unlike some other blockchains nodes on the Flow network are not slashed for downtime.
That said, nodes that are down do not earn rewards while they are down. There is an exception to this however. Collection nodes can be subject to slashing if a large number of them are down at the same time, as this mass outage would be considered intentional.
Since launch Flow has had an informal off-chain governance. The development team is operating independently at this time, and has a mandate to create useful apps for the decentralized larger community.
At this time anyone is free to submit proposals for improvements or changes, and these proposals are then reviewed by the development team. If the development team sees merit in the proposal it is then put in front of the node operators, who then make the decision on whether or not to adopt the proposal.
An on-chain voting signaling mechanism was expected to be ready in late 2020, but as of March 2021 we are still awaiting this mechanism. And even once it is in place the votes are not binding, but they will be public to help the community drive developmental efforts.
Early Success – NBA Top Shot
When Flow took their blockchain into a beta mainnet in September 2020 it went live with the first partner – NBA Top Shot. What started off with a few thousand users has rapidly snowballed into well over 100,000 users and some amazing numbers behind the sale of the platform’s Moments.
NBA Top Shot mints these Moments, which are short clips of some of the best NBA moments. Users of the platform are able to buy, sell, trade, and collect these Moments. It’s the buying and selling that’s sparked so much interest in the platform and its unique take on non-fungible tokens.
Unlike Bitcoin, which is exchangeable. NBA Top Shot moments are completely unique NFTs. Each NFT can only have one owner and it cannot be duplicated. In this way, NFTs are used “to create verifiable digital scarcity” and digital ownership.
Interest in the platform really began to take off early in 2021. For example, a January 15 purchase of a Ja Morant highlight for $35,000 (a record at the time), created massive buzz about the platform on Twitter and other social media platforms.
LaBron James’ Moments have been an excellent source of new record sales. First was a James dunk highlight that sold for $47,500 on January 19. Then came the $71,455 sale of another James Moment on January 22. Currently a LeBron James still holds the record for the most expensive Moment with a Cosmic edition Series 1 LeBron James dunk from a game against the Kings on Nov. 15, 2019 that sold for $208,000.
As this piece is being written on March 19, 2021 the NBA Top Shot platform boasts more than 2.3 million completed transactions, and sales of more than $370 million. The platform Cryptoslam.io tracks transactions at NBA Top Shot and shows that today there have been over $4.3 million in transactions. It also shows that four of the platform’s users have spent well over $100,000 in the past 3 days.
Flow was designed to provide a faster blockchain with higher throughput and better safety for its smart contracts through a lack of sharding. So far it appears that the development team has been successful in completing all of these tasks. The pipelined architecture used by Flow might just have solved the Trilemma.
The project has also been very successful in adding partners, and the very first project built on Flow – NBA Top Shots – has become incredibly popular as the demand for NFTs is going through a massive growth phase in early 2021. Later additions to the ecosystem will come from the UFC and from Dr. Suess. In addition, projects from Ubisoft and Warner Music Group could outpace the amazing results seen already from the NBA Top Shots.
The FLOW token itself has been just as profitable as the NBA Top Shots NFTs, which is an indication of just how popular and profitable this network might become in the future if the demand and hunger for NFTs continues to grow.
Disclaimer: These are the writer’s opinions and should not be considered investment advice. Readers should do their own research.