What is Flow Blockchain? A blockchain for NFTs from Dapper Labs
Flow blockchain is a fast, decentralized and developer-friendly PoS-based blockchain from NFT development pioneer Dapper Labs that aims to provide high scalability to the next generation of Dapps without the use of complex scaling techniques like sharding.
The background of almost all third-generation public blockchains is connected to Ethereum as it gave rise to two amazing blockchain-powered markets: decentralized finance (DeFI) and non-fungible tokens (NFT).
NFT is now a multi-billion dollar market and has yet to reach its full potential. Dapper Labs was the first company to implement blockchain technology for recreation through the world's first CryptoKitties NFT-based blockchain development game. CryptoKitties is a blockchain game on Ethereum that allows players to buy, collect, breed, and sell virtual cats.
CryptoKitties was launched on November 28, 2017 and became so popular within a week that the Ethereum blockchain was trying to cope with transactions. The network became so congested that the CryptoKitties team had to increase Kitties birth fees to incentivize miners.
Another NFT platform called NBA Top Shot is created by Dapper Labs. Frustrated with Ethereum, Dapper Labs set out to solve the scalability issues they encountered. The result of their efforts was Flow blockchain which employs a multi-node, multi-function architecture to deliver the scalability required for the next generation of blockchain applications.
What is Flow Blockchain?
The Flow documentation describes it as:
“Flow blockchain is a fFoundation for a new generation of games, apps, and the digital assets is a which is a fast, decentralized, developer-friendly blockchain. It is built on a single, feature-rich architecture and is designed to scale without fragmentation, enabling massive improvements in speed and performance while maintaining an ACID-compliant, developer-friendly environment.”
There are now many scalable blockchains in the industry that use sharding to improve the scalability of blockchains by sharding them into interconnected networks. However, Flow-developer believes that fragmentation increases the "complexity of the programming model by breaking ACID (atomicity, consistency, isolation, and durability) guarantees, increasing the cost and time for application development."
Flow is also a Byzantine Fault Tolerant (BFT) Proof-of-Stake (PoS) blockchain, but it uses a novel approach to its performance. This blockchain does this by working on the “separation of concerns” principle.
In PoS blockchain networks, each full node in the network is required to examine and execute each proposed block to update its local copy of the blockchain state. Each node stores the complete state (account balances, smart contract code, etc.) and performs all the work associated with processing each transaction in the chain. This means that adding new nodes to the network will not provide any benefit in network performance, since the "complexity of the message to end a block increases superlinearly with the number of consensus nodes."
Let's see how Flow increases performance without fragmentation.
Flow Architecture
Flow's architecture addresses performance limitations by fundamentally changing the way the blockchain is formed. This is done by splitting the rule from validator nodes. Flow uses pipeline techniques used by modern CPUs.
Flow applies the pipeline technique by separating the jobs of a validator node into four different roles: collection, consensus, execution, and verification. All of these nodes work in parallel to perform their required actions. Each validator node still participates in the validation of each transaction, but it does so only in one of the validation stages.
consensus nodes
According to the first technical provided by the Flow website, "consensus nodes decide the presence and order of transactions on the blockchain."
According to the three technical articles, this separation of node roles is based on objective tasks (deterministic) and subjective tasks (non-deterministic). In Flow, the consensus nodes take care of all the subjective tasks.
“In Flow, Consensus Nodes maintain the blockchain and are responsible for extending the chain by adding new blocks. Additionally, consensus nodes run a Byzantine Fault Tolerant (BFT) consensus algorithm to reach agreement on the set of collections to be included in the next block.”
These nodes are also responsible for sealing blocks and maintaining a part of the system state related to node stakes, receiving and adjudicating slicing challenges, and slicing bad nodes.
Execution nodes
The execution nodes execute the finished blocks generated by the consensus nodes and publish the results as "execution receipt". The results are then sent to verification nodes to verify the execution result. The newspaper says:
“For this purpose, the execution nodes divide the computations of a block into chunks. Each execution node publishes additional information about each chunk in its execution receipt for the executed block.
As all the nodes work in parallel, the execution nodes take data directly from the collector nodes, while the consensus nodes perform their action at the same time. Only malicious actions are reported to consensus nodes.
verification nodes
The verification nodes are responsible for collectively verifying the correctness of the published results of the execution nodes. Each verification node only verifies a small fraction of shards. In this way, all the verification nodes of the network verify all the fragments of the executed blocks with an overwhelming probability.
These nodes post a “Result Approval” for all shards of an executed block which is then sent to consensus nodes for block sealing.
collector nodes
As the name suggests, collector nodes collect transactions from applications running on the network. At the beginning of each epoch, each collection node is randomly assigned to exactly one pool. A cluster contains between 20 and 80 nodes. The document describes the operation of these nodes as:
Upon receiving a well-formed submitted transaction 3, a collector node presents it to the rest of its cluster. The collector nodes of a cluster group the received transactions into so-called collections. Only a hash reference to a collection is sent to consensus nodes for inclusion in a block.
development infrastructure
As Flow is designed for the next generation of Dapps with a special focus on NFT development, Flow offers various development tools to provide a comfortable development environment. The core of the development infrastructure is a new programming language, Cadence. Cadence is a new resource-oriented programming language for developing smart contracts on the Flow blockchain. The Flow team has a number of open source tools to help developers get started.
Flow Playground
Flow Playground is a browser-hosted development environment where users can learn and test Cadence's smart contract language out of the box.
Flow GO SDK
Flow GO SDK is a powerful, full-featured set of tools for building applications and services that leverage the Flow blockchain.
Visual Studio Code Extension
It is the VSCode editor extension that integrates Cadence into Visual Studio Code.
In addition to this, Flow also offers community SDKs and open source development tools like Flow CLI and Flow Emulator.
Flow Features
Upgradeable smart contracts
The important feature of Flow is that it features updateable smart contracts. On most smart contract blockchains, the contract code could never be changed after it was launched.
This is a problem, since no one can write perfect code without testing it in real operation. Flow allows smart contracts to be deployed on the mainnet in a "beta state," where the original authors can update the code incrementally. Once the developer trusts their code, they can "irrevocably release their control over the contract, and it becomes perfectly immutable for the rest of the time."
Smart user accounts
Flow features many improvements to the Ethereum account model. Smart user accounts on the Flow blockchain provide optional, modular smart contract functionality built into every Flow wallet.
Smart user accounts in the flow support automated processes for more sophisticated authorization controls and secure account recovery processes.
Human readable transaction format
According to the technical premier:
“The Flow transaction makes it easy for the wallet to ensure that users make informed decisions about what they are approving.”
Flow Token Standards
Flow allows developers to create and issue fungible tokens (FTS) and non-fungible tokens (NFT) by using the Flow token standards that are equivalent to Ethereum's ERC20 and ERC-721 token standards.
Flow Token (FLOW)
FLOW is the native token of the Flow protocol, which means that it is used for all fee payments, rewards, and staking transactions at the protocol level. Flow's native FLOW token was initially offered to the public in October 2020 via CoinList.
The biggest use of FLOW is staking. To become a node, users must own and stake FLOW tokens, which also allows them to participate in the governance of the platform. Flow rewards these users with a combination of newly created FLOW and a portion of the transaction fees.
Developers can also incorporate FLOW into their dapps as the primary currency used for payments, transactions, and earning rewards. Developers can also create their custom cryptocurrency in Flow if they want to use the Flow Fungible Token (FT) standard.
Flow USD (FUSD) stablecoin
. It acts as a fallback for users who may not have the native FLOW token. According to the documentation:
NBA Top Shot on Flow
Flow is designed to support complex NFT applications and NBA Top Shot is currently the most anticipated NFT project on Flow, developed by blockchain developer Dapper Labs itself.
Currently in open beta, NBA Top Shot is a non-fungible token (NFT) marketplace where fans can buy, sell, and trade NBA Moments, which are packaged highlight clips that work like trading cards. According to DappRadar, in the last 30 days, 3.62 million transactions were made on the market with a monthly trading volume of $40.88 million. Almost 100,000 NFT sales were recorded on the platform in the last 30 days.