Flow VS Ethereum: In-depth comparison of two public chains and contract development languages

With the development of blockchain technology, we have seen more and more platforms, development languages ​​and applications. The latest development trend is nothing more than packaging artworks and collectibles into non-homogeneous tokens (NFT) for display and circulation on the chain. Although most of the current NFT market is still dominated by the Ethereum ecosystem, the fast-rising Flow chain is also very hopeful to catch up with Ethereum.

Since its establishment in 2015, Ethereum has established its status as a mainstream blockchain platform, which is used by developers to develop smart contracts and build decentralized applications, and the founders of Ethereum are also aware of the block Chain technology will have a lot to do, not just for cryptocurrency transactions, and Ethereum was created.

Ethereum is constantly developing and gradually becoming the public chain of choice for many blockchain projects. At the same time, a game based on Ethereum, CryptoKitty, once caused congestion in the Ethereum network because of its popularity. This just shows that Ethereum still has obvious shortcomings and we need a more advanced block. Chain system.

This is why the creators of CryptoKitties chose to launch their own blockchain called Flow . Let us take a closer look at this new chain to see how it differs from Ethereum, and why it is more suitable for NFT projects.

Ethereum and Solidity

If you are familiar with blockchain technology and follow the trend of the crypto world, then you must have heard of Ethereum. This open source blockchain platform has already written its own mark in the history of blockchain by virtue of its excellent smart contract design.

The creator of Ethereum was once obsessed with the Bitcoin protocol and determined to create the next generation of blockchain. They intend to expand the functions of the blockchain and apply this technology to a wider range of business scenarios. This also prompted them to invent Ethereum and create their own currency system Ether (ETH) and programming language Solidity.

Solidity is a high-level programming language for developing smart contracts. Inspired by C++, Python and JavaScript, Solidity is also designed based on object-oriented ideas. In addition, Solidity is also a programming language customized for the Ethereum Virtual Machine (EVM).

But why do Ethereum developers want to create a new language? To answer this question, we may wish to revisit some basic concepts.

While developers are working hard to build Ethereum, Bitcoin is still the most successful blockchain system (and even now, Bitcoin is still the best). The Bitcoin network has created a peer-to-peer currency trading system. Ethereum is to digitize anything of value and enable it to circulate efficiently, not just cryptocurrency.

Another major problem is that Bitcoin’s own scripting language is difficult for developers to use to build general smart contracts, because Bitcoin scripts are too complex and lack flexibility, which forces Ethereum developers to create their own systems. , And its own programming language.

In the end, the Ethereum team broke the inherent pattern of the Bitcoin system and created a brand new system with a more flexible Solidity language.

Ethereum is currently used as the underlying platform for many decentralized applications, and the NFT project is no exception. Statistics show that Ethereum is in a leading position in the number of launched decentralized applications and daily active users.

Flow and Cadence

Although the Flow blockchain has only recently been launched, many people already call it a potential successor to Ethereum.

Flow was developed by Dapper Labs, which is a Canadian company and the team that created CryptoKitties. The company’s developers discovered that when the number of users of their collectible games running on Ethereum just reached 10,000, the network crashed. This made them realize the need for a new blockchain. Dapper Labs’ vision is to attract up to 1 billion people to use their DApps, but no blockchain platform has such expansion capabilities.

So they built Flow, a faster decentralized network that can empower the entire decentralized application ecosystem, especially games and digital collectibles. Flow’s core architecture ensures that network performance is improved without sacrificing decentralization to meet the needs of mainstream applications. With Flow, developers can easily build applications that can handle hundreds of millions of users.

For example, NBA Top Shot has successfully run on the Flow network. According to Roham Gharegozlou, CEO of Dapper Labs, NBA Top Shot has been officially authorized by the NBA, and its transaction volume exceeds all other NFT projects combined. Since launching the beta version, NBA Top Shot has attracted more than 800,000 users and generated nearly $500 million in sales.

Like other blockchains, Flow has its native currency called FLOW. It is the main reserve asset on the network and a token used for staking, governance, and payment of transaction fees. In line with the same philosophy as the creator of Ethereum, Flow’s team also introduced a new language called Cadence.

Cadence is a resource-oriented programming language and has created some new features for smart contracts. These features include a powerful static type system, built-in functions and pre- and post-conditions for transactions, and capability-based security attributes. Cadence’s syntax is influenced by Swift and Rust. The resource type can match the Move language (Move is a contract language developed by the Libra team).

Flow vs Ethereum: Which one is more suitable for NFT development

Flow VS Ethereum: In-depth comparison of two public chains and contract development languages

After understanding the basic situation of Flow and Ethereum, it’s time for a duel. Let’s compare these two platforms to see which one is currently more convenient, more effective, more economically feasible, and more profitable.

Scalability

Any developer who has ever tried to use Ethereum to develop Dapp knows that Ethereum has a scalability problem: the throughput of the Ethereum network is only about 13-15 transactions per second, which makes it difficult to cope with large-scale usage scenarios.

The developers of CryptoKitties have also experienced this inefficiency. Their games were once so popular that Ethereum couldn’t handle the influx of users. When creating Flow, the main goal of the developers was to solve the scalability problem while also maintaining the decentralization and high security of the network.

Ethereum sees sharding as a way to scale the blockchain horizontally, while Flow uses its multi-node architecture to achieve vertical expansion. Responsibilities are divided among nodes according to their work to ensure overall concurrency efficiency.

  • Collection nodes improve network connectivity and data availability for DApps, while execution nodes perform calculations related to each transaction. These two kinds of nodes are to improve throughput and network scalability.
  • The verification node double-checks the ongoing work of the execution node, and the consensus node determines the order of transactions. In fact, consensus nodes and verification nodes ensure the accountability of the network and are responsible for security.

The integration of four different types of nodes ensures the decentralization of nodes and the decentralization of the network.

transaction cost

In order to conduct transactions and successfully execute smart contracts, Ethereum users must pay gas. This is a special fee, and its specific amount depends on the complexity of the contract and the degree of network congestion. On Ethereum, gas fees are paid in ETH, and sometimes the average price is more than $20.

The developers of Flow are not satisfied with the cost of natural gas. But can they reduce transaction fees on their platform? So far, they seem to have succeeded. There are two fees applicable to transactions: one is the fee for creating an account, starting from 0.001FLOW (approximately $0.03), and the other is the transaction fee, starting from 0.000001FLOW.

Consensus mechanism

Ethereum currently uses a proof-of-work consensus protocol. With this consensus, miners will enter a “battle” state: they are rushing to create new blocks. The winners of this crypto battle will be those who solve math puzzles (in order to establish connections between blocks) faster than others. The winner shares the new block with others in the network and receives ETH rewards.

At the same time, Ethereum developers are planning to switch to a proof-of-stake consensus protocol. In this case, the process will involve verifiers who will put ETH to participate in transaction verification. Verifiers are randomly selected to create new blocks, share them with the network, and receive rewards. This change will make it possible to reduce energy consumption and fuel costs. The Flow blockchain is already running on the PoS consensus model. It is driven by the HotStuff consensus algorithm originally developed by VMware Research.

The key difference between them is how the key players profit. In PoS, players profit from increasing the value of the currency, while PoW tends to increase their commissions. In fact, PoW is also the main cause of Ethereum’s scalability problems. Since Ethereum is still in the process of transitioning to the PoS protocol, Flow is a good choice for creators who can’t wait to launch NFT projects.

Smart contract

When it comes to smart contracts, one often thinks of Ethereum, because it is specifically designed for applications that use smart contracts. Ethereum is also the most popular smart contract creation platform.

The most notable thing about the Ethereum smart contract is that after its execution, the network status cannot be changed. Any transaction performed on the smart contract is recorded on the blockchain and remains as eternal information. This undoubtedly improves the credibility of the Ethereum platform. However, some developers believe that it should be possible to make changes after the smart contract is deployed, because the smart contract may be flawed and often needs to be tested.

Flow allows the release of smart contracts in a “test state” on its mainnet, so that the original author of the contract can update the code step by step. Users can choose to use the code at a certain point in time, or wait for the code to complete before establishing true trust in it.

Once the author of the smart contract is convinced that the code is safe, they no longer need to control the code, and from that moment on, the smart contract becomes immutable. By checking and fixing the code, developers have the opportunity to greatly improve the security of smart contracts for end users.

Account model

Ethereum accounts are created based on private keys. The private key is a hexadecimal number with a length of 64 (256 bits/32 bytes). After the private key is successfully generated, a specific operation can be performed on it to get the public key. Then, the public key undergoes several mathematical operations to obtain a valid address. This process is one-way, that is, it is impossible to generate a private key from a given address.

As for Flow, the account is automatically created by the blockchain and can support multiple public keys. To create an account on Flow, you must first use the ECDSA (Elliptic Curve Digital Signature Algorithm) P-256 or secp256k1 curve to generate a public key and private key pair, and then send the transaction to the blockchain. Through this transaction, the new account storage is initialized, and then the generated key is assigned to the account.

Each account on Flow can have 1 to n public keys associated with it. For each public key, there will be a private key directly owned by the account holder.

On the Ethereum blockchain, smart contracts are deployed to separate accounts, which do not have private keys. However, on the Flow blockchain, accounts can deploy multiple smart contracts at the same time.

Another difference is the ability to track tokens and smart contracts. Technically speaking, an Ethereum account can use the Ethereum log to track all the tokens and smart contracts it interacts with, but Ethereum does not provide a unified storage for the account assets in the smart contract. However, Flow does this: resources are in a sense a “first-class citizen” on the Flow blockchain, and you can track all smart contracts that your resources interact with.

Work philosophy

The philosophy of Ethereum developers includes several principles: simplicity, versatility, modularity, non-discrimination, and agility. Ideally, even ordinary programmers can easily build the expected decentralized applications. As for universality, the creators of Ethereum set the platform as the basis for various upper-level applications: you can invent your own financial instruments, create your own currency, tokenize real assets, and so on. In addition, Ethereum developers are constantly looking for opportunities to improve the security and scalability of their blockchain.

In reality, the development of smart contracts looks like a compromise game. Developers must constantly find a balance between the established application architecture and the specificity of Solidity. Implementing a contract is a complex task, and a large number of scenarios need to be considered. At the same time, the cost of every unnecessary action is very high. A small mistake may cause developers to watch their money disappear, but there is nothing they can do.

The idea of ​​Flow creators comes from their own experience of working with other blockchains, especially with Ethereum. They analyzed all the problems encountered by the developers and created a new blockchain to make the user experience easier. With the Flow blockchain, developers can now focus on business logic issues instead of complex blockchain specific issues.

Flow is a new blockchain with a new programming language, so it will naturally bring a certain learning curve. Fortunately, it has a lot of documentation, and its creators are constantly looking for ways to simplify development.

Despite this, Ethereum is still one of the most popular blockchains and has issued a large number of tokens and stablecoins. Just look at the current statistics. 74% of stablecoins are issued on the Ethereum blockchain. In addition, the Ethereum protocol has many time-tested functions and templates, which can be used as a basis instead of new technologies, because new technologies always have the risk of loopholes.

Basically, if you tend to build an NFT easily and don’t plan to hold auctions on the blockchain, using Ethereum would be a good choice. It may be a bit expensive, but it is also an advantage and disadvantage at the same time, because the high cost of transactions also indicates the need for blockchain and its liquidity. On the other hand, if you desire flexibility, you need to implement logic under different conditions, and you are not afraid to take risks and are willing to try new things, then Flow is your choice.

The success of CryptoKitties and NBA Top Shot alone is enough to motivate developers to start exploring Flow and its functions.

Solidity vs Cadence: their difference

Solidity and Cadence are smart contract languages ​​specifically designed for their platforms. Ethereum and Flow are two completely different blockchains, so what are the main features and differences between their languages? Let us find out!

Flow VS Ethereum: In-depth comparison of two public chains and contract development languages

Programming model

First of all, Solidity is an object-oriented programming language, while Cadence is resource-oriented. What does this mean?

Generally speaking, object-oriented programming means organizing software development around data (objects) rather than logic and functions. In addition to Solidity, there are many other popular object-oriented languages. JavaScript, Python, C ++, Ruby, etc.

In resource-oriented programming, when something is marked as “resource”, the programming environment is told that this data structure is a tangible thing, and all code that interacts with this data structure must follow a series of rules to maintain this The value of the data structure. This programming model is very suitable for digital assets.

Cadence is actually the first resource-oriented high-level programming language available. Another example of a resource-oriented language is Move, but it differs from Cadence in that it focuses on performance and efficiency. Move has a virtual machine and compressed bytecode to execute code efficiently. At the same time, its grammar follows a minimal design and is easy to be interpreted by a computer, but its readability is poor. On the other hand, Cadence has an ergonomic grammar that prioritizes readability and clarity.

Compile or explain

Another difference is that Solidity is compiled and executed, while Cadence is currently an interpreted language. Cadence developers are working hard to find a way to compile Cadence into Move bytecode to run on the Move virtual machine. The team has not set any deadlines for when this update will be completed.

It is worth noting that both compiled languages ​​and interpreted languages ​​have their own advantages and disadvantages. For example, the compiler is usually faster than the interpreted code, but it takes extra time to complete the entire compilation step before testing, and the platform needs to rely on the generated binary code to run, so this type of code is often poorly cross-platform.

On the other hand, interpreted languages ​​are usually more flexible. In addition, since the interpreted language executes the source code itself, the code itself is independent of the platform. However, there is a serious shortcoming, that is, the execution speed is lower compared with compiled languages.

Parameter handling

Cadence allows you to use parameter labels to describe the meaning of a function’s parameters. Using the Solidity language, you can use annotations. Writing comments can be a way to explain the purpose of a function and the purpose of each parameter.

Packaging native tokens

The FLOW token itself is a smart contract, which can be imported directly without the need for additional wrappers. Solidity’s native currency is Ethereum (ETH), which often needs to be packaged as wETH for smart contracts.

Why does Solidity work like this? In order to successfully complete transactions between users, each user must have the same standardized format for each token they trade. In this case, we are actually talking about the ERC-20 format. And ETH was established before the introduction of this standard, so it does not meet this standard. Therefore, we need to “wrap” ETH and turn it into WETH. This simplifies the contract work when interacting between different tokens. However, this is not a requirement, because you can still use native ETH to write smart contracts, but the logic will be more complicated.

Access control

The function of access control is easy to understand: it allows certain parts of the program to be accessed, while other parts are not. Cadence has built-in two different levels of access control capabilities: keyword-based and capability-based. The second security mode is not often used.

Many other smart contract programming languages ​​provide or restrict access based on “who are you”, but capability security cares about “what do you have”. Users receive special resource objects that they store in the account, which determine which functions the user is allowed to access. Essentially, nothing here is public by default. If other accounts want to read or write objects, the owner of the account must grant them access by providing a reference to the object.

In the Solidity programming language, the developers pointed out that Ethereum is a public blockchain, so you can never prevent a person or computer from reading your transaction content and viewing the status of your contract. If you want, you can use encryption or simply restrict read access to the state of your and other contracts, which makes this task more complicated.

Access in Solidity depends on who you are and is managed through an access control list or using the “msg.sender” variable, which contains the address of the user interacting with the contract.

Pre-conditions & Post-conditions

When using Cadence software, contract design allows developers to declare preconditions and postconditions for functions and interfaces, so that callers can have more confidence in the behavior of the methods they call. Preconditions and postconditions are built-in conditions for functions and transactions.

Solidity has no built-in pre-conditions and post-conditions, but there is a way. Developers can use function modifiers as a workaround for the preconditions, and use the’eventEmitter’ method and the’ethereum-event-processor’ module to implement the postconditions.

Upgradability

The Cadence module has a configurable and transparent built-in upgrade capability, which allows the project to be tested and iterated before making the code immutable. On the other hand, Solidity allows developers to use proxy or data separation modes. Therefore, they must invest a lot of energy to update the smart contract.

By the way, if you realize that you made a mistake after the code on the Flow blockchain becomes immutable, then you still have to deal with the same problem you face on Ethereum.

The other difference between Solidity and Cadence is their syntax. Cadence was inspired by Swift and Rust, while Solidity was influenced by C++, JavaScript and Python. Cadence usually allows you to write in a declarative way, while Solidity provides imperative programming.

In terms of security and the possibility of errors, Cadence seems to be a more attractive programming language. However, since most developers have already worked with Solidity and know how to deal with emerging problems, many people will still stick to Solidity.

Solidity is a statically typed language, which means you need to specify the type of each variable. Cadence also has a powerful static type system. The resource-oriented programming paradigm enables Cadence developers to create linear types with object capabilities.

Ethereum and NFTs

Now that we have studied the technical parameters of Ethereum, Flow and their programming languages, let us take a look at the real cases of how these blockchain platforms work and what role they play in the current NFT boom.

A little reminder what NFT is: these are non-homogeneous tokens, which means that they are not directly exchangeable, representing unique digital artwork, images, short films, dynamic pictures, and even poetry. NFTs are sold online, sometimes for extremely large sums.

There are many NFT projects running on Ethereum, here are some of them.

KnownOrigin

KnownOrigin is one of the fastest growing Ethereum art platforms in Web 3.0. The platform allows digital creators to easily certify, publish and sell their artworks. Through KnownOrigin, the authors of the platform strive to enable digital artists from all over the world to monetize their works and talents and help them approach their fans and collectors in a meaningful, transparent and fair way.

The combination of the Ethereum smart contract and the ERC-721 standard provides a very high level of transparency and security. Thanks to the use of Ethereum smart contracts, the creators of Known Origin are able to provide a reliable and safe way to trace the source and supply chain management of the digital artworks sold on the platform.

The platform currently has the works of more than 1,000 artists, and has sold more than 11,000 digital artworks with a total value of 1.3 million US dollars.

Palm

Palm is one of the latest platforms for digital creators. It is developed by ConsenSys and runs as a side chain of Ethereum , but it is compatible with MetaMask wallet. This new creative studio and NFT ecosystem promises to be 99% more energy efficient than the PoW blockchain.

Palm will eventually be driven by its own $PALM token and will provide artists with a sustainable development platform where they can publish and sell artworks in the form of NFT without worrying about the potential impact on the ecology.

Damien Hirst was one of the first to use Palm to tokenize his work, named “The Currency Project.” Damian plans to sell 10,000 oil paintings on paper in the form of NFT. This series of works explores the “fusion of art and wealth”. He believes that Palm is the most suitable platform for him because it is art-oriented, more environmentally friendly, faster, and cheaper to use.

Decentraland

Decentraland is a virtual world owned by its users. Based on the Ethereum blockchain, the platform uses two tokens: MANA and LAND. The former is an ERC-20 token that has multiple uses: for example, you can use MANA to buy goods and services in the world, or it can be burned to obtain LAND ERC-721 tokens.

Changes in LAND plots are registered in the Ethereum LAND smart contract and verified by the blockchain. Everything is almost the same as in real life: if you become the owner of LAND, you will have complete control over the life and environment you create there.

Flow and NFTs

Flow is still a “young” blockchain, but it has successfully provided support for several extremely popular games, applications and trading markets.

Flow VS Ethereum: In-depth comparison of two public chains and contract development languages

CryptoKitties

CryptoKitties was first released on Ethereum in 2017 and quickly became popular. However, the prosperity of CryptoKitties exposed the scalability problems of the Ethereum network, and the influx of users caused serious congestion. After launching their own Flow blockchain, the developers of Dapper Labs began to migrate digital collectibles from the Ethereum network to Flow.

It is expected that CryptoKitties will get new features, such as 3D effects of animation. Over time, it will also be possible to use these digital assets in other Flow games.

Roham Gharegozlou, CEO of Dapper Labs, pointed out that anyone who uses Ethereum will be able to bring their cat to Flow. Therefore, for all crypto cat lovers-don’t worry, you will keep your cat collection and enjoy more new features that follow.

NBA Top Shot

We mentioned this application before, but there are still many things that are worthy of our in-depth exploration. NBA Top Shot has received extraordinary response from its birth, and frequently dominates news headlines.

Dapper Labs received $305 million in funding from giants in Hollywood, sports, and financial investment. According to media reports, the new round of financing valued the company at $7.6 billion-which shows how prosperous the NFT field is today.

The company’s financing was led by the financial services company Coatue, and joined forces with high-profile figures such as NBA legends and well-known players, including Michael Jordan, Kevin Durant, Andre Iguodala, Kyle Lowry, Spencer Dinwiddie, Andre Drummond, Alex Caruso, Michael Carter Williams, Josh Hart and others.

The company said that they will use these funds to continue to develop the NBA Top Shot and expand the updated star card platform to other sports.

VIV3 NFT marketplace

In January 2021, VIV3-Flow’s first shared market designed to empower digital artists and creators came out. VIV3 is currently in the testing phase. The early users of VIV3 are mainly well-known artists, such as Anne Spalter, who is famous for her large-scale public works in Hong Kong and New York.

The creators of VIV3 also announced their collaboration with the famous conceptual design artist Ben Mauro. He has participated in the movies “The Hobbit Trilogy”, “Spider-Man 2”, “Elysium”, and “Call of Duty” and “Halo” games. Ben Mauro’s card game “EVOLUTION” is also about to log on to the Flow Chain.

Dapper Labs also recently signed a new agreement with UFC. The company is working with UFC to create cryptocurrency digital assets and supporting games for MMA fans around the world on the Flow blockchain. In addition to the names and brands listed, Dapper has many well-known partners such as Dr. Seuss, Samsung, Ubisoft and Warner Music Group.

Flow can be expected in the future

Ethereum has secured its place as the first and most popular blockchain. It allows you to use smart contracts to tokenize assets, issue unique tokens (including NFTs) and create complex DApps. The popularity of Ethereum also continues to grow due to its unified standards, which makes it easy to integrate existing applications into the Ethereum network.

Although developers have been talking about Ethereum’s scalability issues for a long time, its engineering team promised that this issue will be resolved in the upcoming ETH 2.0 update. It promises to introduce sharding and make it transition from PoW to PoS consensus. No exact date has been given for the transition, but it may happen between 2021 and 2023.

Ethereum 2.0 promises to solve major scalability issues, which may bring developers back in and keep it as the leading public chain of large-scale NFT projects. On the other hand, the creator of Flow is at the forefront of the current NFT boom. Successful NFT projects and cryptocurrency games such as NBA Top Shot may enable developers to use Flow in future projects and bring global exposure to the platform.

The capabilities of Flow go far beyond these trending applications. Up to now, developers have continued to build tools and services to make Flow the best consumer application platform with improved scalability, composability, and user experience. As a general blockchain that supports DeFi, it is most likely to develop into its own ecosystem.

in conclusion

Both Flow and Ethereum are platforms suitable for all kinds of applications. They all have their own advantages and disadvantages, especially when it comes to NFT project development.

When it comes to scalability issues, Ethereum believes that sharding is a solution to this problem. Once sharding is implemented, it will reduce network congestion and increase transaction speed. Flow is better than Ethereum in this regard because it already provides a multi-node architecture and faster transactions .

In addition, Ethereum currently uses the PoW consensus protocol, and Flow runs on the PoS model. PoW is not the best choice for NFT projects because it can also cause scalability issues. Therefore, in terms of scalability, Flow may be a better choice.

Ethereum’s transaction costs are quite high, and Flow allows users to pay less. It seems that low transaction costs are clearly a benefit. But for Ethereum, the high cost indicates a strong demand and trust in the platform. Regarding the development of smart contracts, once you deploy a smart contract on Ethereum, it will become immutable, and the smart contract on Fl ow can be upgraded. The ability to fix the problem is definitely an advantage.

Consider all the advantages and disadvantages of the two blockchains described and decide which one will bring you the most benefit. The choice is in your hands, but the author reminds you: every project is unique and has its own particularities. You must think carefully to make a prudent choice. Only experienced blockchain companies can analyze your situation, provide detailed consultation on technology selection, and develop your project from scratch.

Don’t miss the wave of NFT, start building your own application today!

“Why did we choose Flow Blockchain?”

When CrytoKitties was launched in 2017, it quickly became the most popular DApp in the crypto market, and its success caused Ethereum to block. The NBA Top shot operating on Flow has also become the fastest growing dApp, generating 700 million U.S. dollars in sales six months after its public release. It is precisely because of the scalability and consumer-friendly experience of the Flow public chain that this is possible.

 

Posted by:CoinYuppie,Reprinted with attribution to:https://coinyuppie.com/flow-vs-ethereum-in-depth-comparison-of-two-public-chains-and-contract-development-languages/
Coinyuppie is an open information publishing platform, all information provided is not related to the views and positions of coinyuppie, and does not constitute any investment and financial advice. Users are expected to carefully screen and prevent risks.

Like (0)
Donate Buy me a coffee Buy me a coffee
Previous 2021-09-10 09:15
Next 2021-09-10 09:17

Related articles