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 method of payment. They can also use the crypto for things like gambling on the best crypto casino, for 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 is Flow, 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 realized 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 labor on the network. This means that they split the work needed to verify and publish new blocks on the network.
This in contrast to a horizontal separation of labor, 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 collectibles. NFT projects like NBA Topshot have already proven successful on Flow. Users can collect, sell, and trade collectible 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. These are Multi-role architecture, Resource Orientated Programming, Developer ergonomics, and Consumer onboarding.
Ethereum allows the formulation of smart contracts and, accordingly, dApps (Decentralized Apps). At the same time, Bitcoin is the most trustless blockchain for transactions.
Hence, Ethereum and Bitcoin have their advantages with certain aspects of blockchain technology like holding a store-of-value (BTC) or for autonomous and decentralized 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 fulfill 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 be executing a new block while another node is still verifying a previous block.
What Are Flow Node Roles?
There are four different kinds of nodes on Flow. These are Collector, Consensus, Execution, and Verification nodes.
According to Dapper Labs’ research, heterogeneous nodes improve throughput by a factor of 56 compared to blockchains utilizing 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 set of 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 a finalized block.
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 finalized 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 have to 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.
By dividing the verification into chunks, many Verification Nodes can check chunks from different blocks parallelly. 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 artifacts 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 own updating protocols into the smart contract.
Users can see if a smart contract is in a beta state or not to decide between finalized or beta smart contracts. Once developers complete their updates, they can finalize 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 authorization. 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 lots of computing power because the operations are divided into chunks.
These node operators also receive rewards depending on their stake in the network and the work they have done.
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 it comes to 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 utilize the blockchain to create NFTs and actively track digital asset ownership.