Blockchain technology has introduced new methods of thinking about asset security and stores of value. Let’s look at a few instances of what we mean.
Bitcoin, which runs on blockchain technology, is a secure cryptocurrency that allows users to trade and use it as a payment method. They can also use the crypto for things like gambling on the best crypto casino, shopping online, or even purchasing groceries.
Ethereum, the second-biggest blockchain, allows developers to create dApps using smart contracts. Its applications include rental agreements, casino games, and many others.
Flow allows developers and others to create NFTs and deploy smart contracts on a highly scalable blockchain.
Here, we will discuss what Flow is, its features, and its benefits.
What Is Flow Blockchain?
Dapper Labs developed CryptoKitties in 2017. This NFT (Non-Fungible Token) project had so many users that it congested and ultimately stalled the Ethereum blockchain. They realised that Ethereum could not verify transactions fast enough, so they created a new blockchain: Flow.
Essentially, Dapper Labs developed a method to better scale the blockchain. The developers employed a vertical separation of labour on the network. This means they split the work needed to verify and publish new blocks on the network.
This contrasts with a horizontal separation of labour, which splits up different transactions. Sharding is the most popular method of achieving this.
Dapper Labs developed Flow specifically for large crypto games and NFT collectables. NFT projects like NBA Topshot have already proven successful on Flow. Users can collect, sell, and trade collectable NBA moments. They are similar to trading cards, but they are digital and unique.
Dapper Labs identified four pillars of Flow, which differentiate it from other major blockchains. Multi-role architecture, Resource Orientated Programming, Developer ergonomics, and Consumer onboarding.
Ethereum allows the formulation of smart contracts and dApps (Decentralised Apps). At the same time, Bitcoin is the most trustless blockchain for transactions.
Hence, Ethereum and Bitcoin have advantages with certain aspects of blockchain technology, like holding a store-of-value (BTC) or for autonomous and decentralised app development. However, both blockchains suffer from scalability issues.
Flow attempts to remedy this.
What Is Flow’s Multi-Role Architecture?
Popular blockchains see resources on their network as homogeneous. This means that each node on the blockchain needs to fulfil operational tasks like verifying and adding new blocks to the network.
Flow, on the other hand, separates these operational tasks. It treats resources as heterogeneous. So the blockchain sees network bandwidth, computation power, and storage capabilities as separate nodes.
This means that one node could execute a new block while another node still verifies a previous one.
What Are Flow Node Roles?
There are four different kinds of nodes on Flow. These are the Collector, Consensus, Execution, and Verification nodes.
According to Dapper Labs’ research, heterogeneous nodes improve throughput by 56 compared to blockchains utilising full nodes.
Furthermore, the network separates Consensus and Execution nodes with the principle of deterministic operations.
Subjective operations do not have a deterministic result, which means that nodes need to reach a consensus to get results. In comparison, objective operations have a deterministic result, which does not require a consensus.
A subjective operation on a blockchain would be nodes reaching a consensus on which sets of transactions to add to the next block on the network. An objective operation would be executing a token transfer between accounts.
Collector nodes receive transaction submissions from external agents. These nodes form clusters of equal size and stake on the network.
Clusters collect transaction submissions and place them into collections. Each node in the cluster introduces external transaction submissions to the cluster.
Each cluster generates collections one at a time, and before they create a new collection, they send the current collection to the Consensus Nodes.
Accordingly, when the Collector Nodes reach a consensus on a collection, it is called a guaranteed collection.
Consensus nodes maintain the chains on the network and add new blocks. The Consensus Nodes run a BFT (Byzantine Fault Tolerant) consensus algorithm to decide which collections will be included in the next block on the network.
Moreover, a block of ordered collections that have already undergone the BFT consensus algorithm is finalised.
Consensus Nodes also need to seal blocks. This includes creating a block seal. This is a commitment to the execution result after a block has been executed and verified. They are also responsible for slashing malicious and faulty nodes.
Execution nodes have to scale the computation power of the blockchain. They execute finalised blocks from the Consensus nodes. These nodes need to publish the execution states that result from the process. These are called Execution Receipts.
Furthermore, Execution Nodes must provide important information to the Verification Nodes so they divide the block computations into chunks. Each Execution node publishes the information from each chunk into their Execution Receipts.
Verification Nodes are in charge of verifying Execution Nodes published results. Each Verification Node only checks fractions of the chunks in Execution Receipts. These nodes publish their approval of execution results; as a Result Approval.
Many Verification Nodes can parallel-check chunks from different blocks by dividing the verification into chunks. Thus, improving verification speed. But all the Verification Nodes need to check all the blocks added to the network.
What Is Flow’s Resource-Orientated Programming?
The Flow blockchain deploys a resource-orientated programming language: Cadence. It is based on a new ownership model related to Linear Types called resources. They are a new method for showing digital asset ownership and defining it in a programming language.
This allows developers to create NFTs and track them using Cadence. Furthermore, Cadence is easy to read and has fewer runtime errors. It also allows developers to include pre and post-conditions when running functions.
Accordingly, this makes Cadence easier to learn and audit. And most importantly, it makes creating artefacts for Flow more efficient.
Dapper Labs recommends tools for developers. These tools help developers begin working on the blockchain.
Next, they recommend a Visual Studio Code Extension that allows developers to test their smart contracts and check for errors using Cadence natively.
Moreover, developers can use the Flow Playground GUI to learn Cadence without any additional setup.
What Is Flow’s Developer Ergonomics?
Dapper Labs introduced tools to help developers get started on Flow. They have also given developers easier methods of implementing smart contracts on the network and error logging.
Upgradeable Smart Contracts
The first method is upgradeable smart contracts. Initially, the Ethereum developers did not allow developers to change smart contract code once it was launched on the network. They did this to prevent malicious conduct in smart contract conditions. In practice, however, many smart contract code iterations contained problems that affected the entire network.
Dapper Labs allows developers to release their smart contracts in a beta state on the mainnet. They can update the smart contract code without needing to build their updating protocols into the smart contract.
Users can see whether a smart contract is in a beta state and decide between finalised or beta smart contracts. Once developers complete their updates, they can finalise the smart contract. After that, the code becomes immutable.
Many define blockchain speed as the time it takes for a transaction to reach finality. This means that the transaction is permanently included in the blockchain. Bitcoin takes about 1 hour. Ethereum takes about 6 minutes, but Flow takes seconds.
It allows users to receive feedback on their transaction after the Consensus Nodes assign their transaction to a block. They can accept a locally verified transaction or wait until the sealed transactions are included in the blockchain. Finality takes around 10 seconds.
What Is Flow’s Consumer Onboarding?
Flow makes it easier for consumers to use and create applications on the network. First, Flow allows human-readable security messages. These messages inform users what permissions they give for transaction authorisation. Also, the messages notify users of what kind of changes a transaction can make.
Additionally, Users can become node operators with relatively cheap hardware. Consensus and Verification Nodes do not need much computing power because the operations are divided into chunks.
These node operators also receive rewards depending on their stake in the network and their work.
Lastly, the Flow network allows companies, brands, and influencers to engage with their fans directly. With the use of NFTs and the scalability of the blockchain, these content partners can sell their digital assets with built-in ownership tracking.
Flow has a multi-role architecture that vastly improves the scalability of the blockchain without compromising security.
Furthermore, developers have more flexibility when creating smart contracts with Cadence, a resource-orientated programming language. They can also update their smart contracts on the mainnet.
Lastly, the platform allows content partners to utilise the blockchain to create NFTs and actively track digital asset ownership.