Blockchain technology is the protocol that powers cryptocurrencies and many decentralized applications. The blockchain is a digital record of transactions that is distributed and duplicated across a network of computers on the chain. An individual transaction in the blockchain is referred to as a block, and all blocks are connected in a chain-like structure, hence the name blockchain.
The latest innovation in the blockchain space is the representation and trading of artworks and collectibles through NFTs, non-fungible tokens. Blockchain transactions are recorded by a hash, an immutable, cryptographically-generated ID. Whenever a transaction occurs on a particular block on the network, a record of the new transaction is spread across the entire blockchain, making it difficult for anyone to tamper with the system.
In this tutorial, we’ll learn about the blockchain, discuss NFTs, and finally, compare Ethereum and Flow for developing NFTs. Let’s get started!
To follow along with this article, you should be familiar with the following properties of the blockchain network, which in combination, make it a secure and trusted technology:
- Anonymous: all participants on the blockchain are anonymous or identified by a pseudonym
- Security: All records on the blockchain are encrypted, adding an additional layer of security
- Decentralized and transparent: All network participants have a record of every transaction
- Immutability: Transactions on the blockchain network are irreversible and cannot be changed
- Timestamp: Every transaction is recorded with the time the transaction occurs
- Distributed: Every participant agrees to the validity of each record on the network
- Programmable: All blockchains are programmable. Ethereum use Solidity, Flow uses Cadence, and Bitcoin uses Bitcoin Script to build smart contracts
An NFT is a unique, irreplaceable, and non-interchangeable token that functions as a cryptographic asset, like Ethereum or Bitcoin, and is stored on the blockchain network.
The major difference between NFTs and cryptocurrencies is that while cryptocurrencies can be traded or exchanged for an equivalent amount, NFTs cannot. Because cryptocurrencies are identical to each other, they can be used for financial transactions, while NFTs cannot because they are unique.
Practically, NFTs can be used to represent physical assets digitally, like real estate and artwork. NFTs can be used for identity management, creating a new market and a different form of investment. You may also recognize NFTs from gaming, digital art, or internet memes.
Essentially, you should understand the following points:
- NFTs are cryptographic assets with a unique identity on the blockchain
- NFTs are not fungible i.e., not mutually interchangeable
- NFTs are a digital representation of real-world objects, like artwork or real estate
- NFTs are also used to represent property rights
- The tokenization of real-world assets makes them tradable and reduces fraud
The Ethereum blockchain
Ethereum is an open source, decentralized blockchain with smart contract features. It is the second-largest blockchain network with Ether (ETH) as its cryptocurrency. At the time of writing, many NFTs are on the Ethereum network.
Once developers realized that the blockchain could be used for purposes other than cryptocurrency transactions, Ethereum was created to cater to a wide range of use cases.
Ethereum uses Solidity, an object oriented programming language, to build smart contracts and decentralized apps. Solidity is a programming language developed solely for the Ethereum Virtual Machine.
Unlike Bitcoin, Ethereum can be used for the digitization of assets and as a peer-to-peer currency exchange. Ethereum is constantly evolving, looking like the ideal solution for many blockchain projects.
Ethereum experienced a setback when the popular, Ethereum-based CryptoKitties game slowed down the network. As a result, an alternative known as the Flow blockchain began to rise in popularity.
Although the Flow blockchain was launched in 2020, many consider it the successor to Ethereum.
Created at Dapper Labs by the creators of the popular CryptoKitties game, Flow was introduced when CryptoKitties clogged up the Ethereum network with a user base of only about 10,000 users. Flow’s aim was to create a blockchain platform that could accommodate billions of users on its decentralized applications.
Flow is a fast, decentralized blockchain that enhances the development of decentralized applications and NFTs. Like other blockchains, Flow has its own native currency, known as FLOW. FLOW is the reserve asset used to pay transaction costs and staking on the network.
Like most blockchains, Flow introduced its own resource-oriented programming language, Cadence, with some unique features that make it suitable for smart contract development.
Some features include built-in pre and post conditions for functions and transactions, a strong static type system, and capability-based security. Currently, Flow is the blockchain of choice for the NBA Top Shot DApp.
Now that we understand some fundamentals of Flow and NFT, let’s review the pros and cons of each when it comes to NFT development.
When deciding which blockchain to use for NFT development, one should consider the associated transaction fee.
Ethereum users pay gas fees as a transaction fee for successfully executing a smart contract. The fee depends on the complexity of the smart contract and loads on the network. On the Ethereum blockchain, gas fees are paid using (ETH), the Ethereum native cryptocurrency. Some days, the average fee can rise to above $20.
Flow introduced two fees, one for account creation, which starts at about 0.001 FLOW, or approximately $0.008, while the transaction fee starts at about 0.000001 FLOW. The account creation fee is charged only when a new account is created. It covers the cost of storing 100kB worth of data. Transaction fees are charged once per transaction, occuring at execution time.
Note: At the time of writing this article, 1 FLOW = $8.043.
When building any type of application, scalability is an important factor to consider. The multi-node architecture of the Flow blockchain gives it an advantage over the Ethereum network, which uses sharding, a method of storing a single dataset in multiple databases. Below are the various nodes present in the Flow multi-node architecture:
- Execution node: Handles all the calculations for every transaction on the network
- Collection node: Improves network connectivity and makes data available for decentralized applications
- Consensus node: Determines the order of transactions on the network
- Verification node: Verifies work done by the execution node
On the Flow blockchain network, both the Execution and Collection nodes are implemented to increase throughput time and network scalability, while the Verification and Consensus nodes are in charge of network accountability and security.
The daily average throughput time on the Ethereum network is about 13 to 15 transactions per second, which is insufficient for large-scale use. Flow’s intent was to improve on this metric, building scalable DApps with high security while truly maintaining decentralization.
The Ethereum blockchain is the most popular blockchain for creating smart contracts, with Ethereum smart contracts being known for their immutability. After execution, transactions performed on the Ethereum smart contract cannot be changed, adding security and increasing trust.
You’re probably wondering what happens if a transaction is flawed. Flow allows users to release smart contracts in a beta state on its mainnet, so the original author of the smart contract can update the code stepwise. Users can decide whether to use the code at any instance or wait for it to be updated completely.
When the author is certain that the code is safe and there is no need to control the code again, the smart contract becomes immutable. The ability to update the smart contract on the Flow blockchain network makes it flexible and better optimized for end users.
More great articles from LogRocket:
- Don't miss a moment with The Replay, a curated newsletter from LogRocket
- Learn how LogRocket's Galileo cuts through the noise to proactively resolve issues in your app
- Use React's useEffect to optimize your application's performance
- Switch between multiple versions of Node
- Discover how to animate your React app with AnimXYZ
- Explore Tauri, a new framework for building binaries
- Compare NestJS vs. Express.js
Ethereum uses the Proof-of-Work (PoW) mechanism, wherein miners compete to see who will create more blocks. Miners that are able to solve cryptographic problems faster than the others, establish cryptographic connections between the blocks, and share the new blocks with the network, earn Ether (ETH) as a result.
One pressing problem of using the PoW is its high energy requirement. A seemingly better alternative is the Proof of Stake (PoS) mechanism, in which protocol validators stake ETH to participate in transaction verification. Validators are randomly selected, creating new blocks, sharing them with the network, and earning ETH. The PoS will potentially reduce the energy usage in the PoW and gas fees.
While Flow is already running on the PoS consensus protocol, Ethereum hasn’t yet implemented it.
The Ethereum blockchain account is based on a four hexadecimal number private key of 256 bits or 32 bytes. A public key is generated when mathematical operations are performed on the private key. The public key is taken through a series of mathematical operations to obtain a valid address. It is a unidirectional process, so a private key cannot be created from a valid address.
In the Flow blockchain, account creation happens automatically and can support multiple public keys. First, public and private keys must be generated via either the Elliptic Curve Digital Signature Algorithm (ECDSA), a variant of the Digital Signature Algorithm, which uses the elliptic curve cryptography, or Secp256k1 curves, which are parameters of the elliptic curve used in Bitcoin’s public key cryptography.
The transaction is then sent to the blockchain. With this process, new account storage is initialized and the generated keys are assigned to the account. On the Flow blockchain, each account has
1 to n, one-to-many, public keys mapped to it. For every public key, there is a corresponding private key owned by the account holder.
Another difference to consider lies in the deployment of smart contracts. On the Ethereum blockchain, smart contracts are deployed to individual accounts, while on the Flow blockchain, accounts can have multiple smart contracts deployed simultaneously.
Additionally, on the Ethereum blockchain, an Ethereum account has the ability to track all tokens and smart contracts it has interacted with through Ethereum event logs. Ethereum does not provide a single store for account assets in smart contracts. On the other hand, due to the Flow blockchain’s resource-oriented programming paradigm, users can effectively track smart contracts with which their resources have interacted.
The underlying principles behind Ethereum are largely dependent on agility, universality, simplicity, modularity, and non-discrimination.
An average software engineer should be able to successfully develop a DApp on Ethereum due to its simplicity.
Ethereum developers consider the Ethereum blockchain to be a universal, base platform that can be used to develop applications for various purposes, like tokenizing real assets like NFTs, developing financial instruments, and developing currencies.
Ethereum developers are looking for means to improve the security and scalability of the Ethereum blockchain. Smart contract development requires a complex process with a large number of scenarios to consider because every unnecessary action has a cost. One major task of smart contract developers is finding a balance between the application architecture and the peculiarities of Solidity.
The creators of Flow came about with their philosophy as a result of the experiences they gathered while working with other blockchains, especially Ethereum. With the Flow blockchain, instead of developers focusing on complex specifics, they now focus more on writing business logic.
In this article, we learned some fundamentals of blockchain technology, the basics of NFTs, and finally, the major differences between Flow and Ethereum.
If you’re not planning to auction on the blockchain, then Ethereum will be a better choice. But, if you’re concerned about flexibility and implementing logic, and you’re not afraid of taking risks and trying new things, then Flow blockchain is the best option for developing NFTs.
I hope you enjoyed this article. Please leave a comment if you have any questions. Happy coding!
LogRocket is like a DVR for web and mobile apps, recording everything that happens in your web app or site. Instead of guessing why problems happen, you can aggregate and report on key frontend performance metrics, replay user sessions along with application state, log network requests, and automatically surface all errors.
Modernize how you debug web and mobile apps — Start monitoring for free.
2 Replies to “Ethereum vs. Flow blockchain for NFT development”
1. “Anonymous: all participants on the blockchain are anonymous or identified by a pseudonym” Not true, some go as far as proving their identity using it
2. “Security: All records on the blockchain are encrypted” Not true, they are all cleartext by default, encrypting on chain records is considered an incredibly poor security practice
3. “All network participants have a record of every transaction” Not true at all, most just keep track of the state and use it as part of the transaction execution process but the tx themselves are not stored, in the case of Flow, most don’t even do that.
4. “Immutability: Transactions on the blockchain network are irreversible and cannot be changed” not always true on the tx side, but also not true at all in the execution side as that is determined by the SmC
5. “Timestamp: Every transaction is recorded with the time the transaction occurs” The transactions don’t hold timestamps, the blocks where they are organized do
6. “Distributed: Every participant agrees to the validity of each record on the network” That’s not what distributed is, but also not always, IE: most modern Bitcoin transactions lead to different executions to different nodes, forks, consensus updates etc. And they don’t agree on validity, they agree on the rules to be followed.
7. “Programmable: All blockchains are programmable. Ethereum use Solidity, Flow uses Cadence, and Bitcoin uses Bitcoin Script to build smart contracts” This is not true, Ethereum can use several languages, but also Bitcoin is not programmable, you can build off chain SmCs but not modify the state to add execution logic like Ethereum or Flow.
8. “An NFT is a unique, irreplaceable, and non-interchangeable token” None of those are inherently true and there are examples of NFTs that don’t meet that criteria
9. “NFTs are cryptographic assets with a unique identity on the blockchain” Only the most basic standard follows this
10. “NFTs are a digital representation of real-world objects, like artwork or real estate” Not true, we can have digitally native assets
IDK man, every 2 sentences there is incorrect stuff, even painting flow worse than it is, we need to strive to do better, you should get someone technologically competent to review before spreading misinformation like this