The Crescendo upgrade with EVM on Flow and Cadence 1.0 is here! Learn more
Ecosystem
December 14, 2022
Flow Town Hall: 2022 Recap and What's To Come in 2023
Flow
Flow Town Hall: 2022 Recap and What's To Come in 2023

Miss the first-ever Flow Town Hall, or just want to review all of the information shared? Here's a full recap of the event for your convenience, and an easy way to share it on social media.

Flow was born out of necessity – it was born out of the need to have a mainstream consumer-scale layer 1 blockchain that makes no compromises: 

  • No compromises on scalability: Flow has a novel multi-node architecture that doesn’t require sharding or Layer 2s. But that means we didn’t have to build 1 node software, we built 6 of them, and more to come.
  • No compromises on security and ownership: the easy choice was using an existing language like Solidity and being EVM compatible, but developer experience would not have improved. Flow’s native smart contract programming language Cadence was designed from the ground up and introduces critical improvements around safety, readability and flexibility that existing languages in web3 simply don’t have.
  • No compromises on adoption: introducing the next billion users is not just a cheesy mantra: it’s the whole reason Flow exists, and 17M accounts later, we’re already on our way to doing that. This required new paradigms such as supporting multiple keys per account for co-signing and enhanced security, user friendly wallets and fast and  near-feeless transactions which make interacting with the blockchain a transparent experience for users.

As 2022 comes to a close, it gives us an opportunity to look back at how far Flow has come in the last 12 months with respect to this vision. If we were to summarize it in one word, it would be: growth

Here are a few figures that showcase that:

  • 17.5M accounts created on Flow: 4.9x year-over-year increase
  • 300M transactions to date: 3.5x year-over-year increase
  • 25M all-time NFT transactions: Highest of ANY chain

Growth across the network is just one indicator of what’s happening on Flow, of course. There are also world-class builders bringing amazing experiences to life. 

Whether Fortune 500, high growth startups or indie devs, Flow is the place to build mainstream consumer-scale experiences. More and more builders are realizing this, and the last 12 months are just a glimpse of what’s to come.

Developer Growth & Productivity

This year was the biggest year for Flow builders. There’s several ways to measure developer activity: network activity, library downloads, and dapps.

In 2022 7.000 new developers deployed contracts to testnet (up by 250% YoY), and the Flow Client Library was downloaded 630K times (2X compared to previous year). Collectively, we also deployed 2,430 mainnet contracts in this year alone! Not impressive enough? Here are some all-time-highs you might like:

  • In September, we had 550+ monthly active contracts, with 130K daily transactions on the ChainMonsters contract alone
  • In May, FCL was downloaded 30,000 times within a week
  • Since launch, FCL Discovery is serving 128K requests monthly

Developer growth is more than numbers - it’s also about productivity. Productivity means being able to build dapps faster, safer and with easier access to capital and support. In 2022 we’ve seen the following improvements to developer tools and services. 

Improvements to the developer experience weren’t the only way we supercharged the ecosystem. We also introduced developer grants, which is our next stop.

Developer Ecosystem Support

In 2022 we introduced developer grants. Grants help developers work on their new brave ideas and contribute to the open source ecosystem. We received 90 proposals for grants, accepted 35 of the grant proposals, approved completion of 69 milestones, paid out $677k in FLOW tokens to grantees. To take a closer look at Developer Grants on Flow through 2022, check out this blog with further details.

To name just a few projects you might’ve used: CLI integration by Flowser, iOS + Android SDKs by Outblock, Overflow by Bjarte, .NET SDK by Tyron. Not only did we support tools & services, we also extended grants to produce educational material, namely we supported Buildspace, LearnWeb3, and Emerald Academy running their own bootcamps, courses and on-chain certificates.

With all this ecosystem growth, the core Flow technology had to keep pace and sustain it all. Let’s dive under the hood and see what the core team has been hard at work accomplishing.

Key Flow Technology Milestones

Cadence

Cadence was purpose built for web3 and digital assets. After developing mainstream dapps like CryptoKitties on Ethereum, we realized Flow deserved a better smart contract programming language than Solidity. This is how Cadence was born. 

There are three core benefits to Cadence:

Permissionless smart contract deployment & Secure Cadence

The most significant milestone delivered this year was Secure Cadence, which enabled permissionless contract deployment.

Work on Secure Cadence started at the end of 2021 and included a number of important deliverables.

  • Variable transaction fees, which is a key incentive mechanism for fair computation usage
  • Memory usage metering & limiting, providing protection against memory exhaustion attacks
  • Layer of defensive checks to detect resource duplication
  • Refactored error handling to avoid crashes
  • Improved test coverage with automated fuzzing

We completed Cadence and execution runtime Security audit performed by 2 external auditors, as well as run Bug Bounty & targeted Penetration testing. Overall we found and fixed over 10 security issues.

The Cadence team also built tooling to help the community scan their contracts and detect breaking changes.

Secure Cadence was released on Mainnet June 15, and permissionless contract deployments were enabled shortly after on July 5.

New Cadence Features

Over 40 Features were implemented, this year, to highlight a few:

  • Storage Querying API, which makes it easy to search account storage, which was a big pain-point for developers on Flow.
  • Syntax and checks for Immutable values and functions, which is increasing safety for Flow developers by making it clearer which functions can have side-effects.
  • API for bootstrapping capabilities, which makes it possible to share resource capability with specific users in an easy & safe way.
  • Fetch all PublicAccount keys, simplifying public key access.
  • Default implementation for interface methods, which make it possible to update interfaces in a backwards-compatible way.
  • We also added a number of standard library utility functions and extensions as well as REPL improvements.

New Cadence Tools:

  • Cadence testing framework, making it possible to test Cadence code using Cadence for the first time.
  • Cadence Linter for static code analysis

We also deployed over 30 changes that improved Cadence performance across parser, type checker, and interpreter. These changes were a major contributor to improved speed of transaction execution and amount of memory used.

Flow Improvement Proposals (FLIPs)

Independent researchers and contributors from the wider community have proposed and accepted 10 FLIPs so far, and an additional three are still in progress but very close to being accepted. To highlight a few:

  • Cadence Mutability Restrictions - improving safety for Cadence developers.
  • Cadence BorrowContract - Allowing Dynamic import of contracts, simplifying contract code.
  • Publish & Claim for Capabilities, solving capability bootstrapping problem.
  • Attachments, which enable extending of an existing resource - this will make the famous “Kitties Hats” use case very simple to implement in Cadence.

Smart Contract Engineering

The Smart Contract Engineering group collaborates with stakeholders from across the community and Dapper Labs to augment the impact and network effects of contracts deployed on Flow. They are responsible for the development of standards, patterns, or models that simplify onboarding and reduce ongoing work required of builders. 

Earlier this year we released the NFT Storefront v2 and royalties metadata view standards which upgrade the original storefront with several new features: 

  • Manage listings/sales/cleanup for an NFT across multiple marketplaces
  • Improved listing broadcast and discovery events, enabling marketplaces to add listings as they appear on the network
  • Support for royalties via royalty view, commission, and other sale cuts 

Core Protocol

Protocol Performance Enhancements

Flow is designed to scale with demand, and given 2022’s incredible growth, the team has been working on the first big leap in performance. Over the last 12 months, the Flow network TPS throughput grew by 10x from 50TPS to 500TPS with several performance improvements across the board.

In April, we rolled out fully concurrent vote processing to consensus nodes, resulting in an increase of block rate and time to finality by 60%, which made the network a lot more responsive. (figure block rate [blocks/s] ↓). 

Network Resiliency

The goal for Flow is to support permissionless participation of all node types. But this also means that the network must gracefully tolerate malformed messages from malicious nodes. This year, we rolled out a framework to prevent message-level attacks across the network and for detecting attempts of malicious nodes to impersonate other nodes. Based on this foundation, Flow can now robustly tolerate malicious access nodes.

Furthermore, Flow’s resiliency to unfavorable operating conditions and heavy load spikes has dramatically improved. In all nodes, but especially so in consensus nodes, many different messages and events are processed at the same time. It used to be the case that if one of these processing components got overwhelmed, it would hog CPU resources, thereby starving other important components from system resources. In severe cases, this would cause large latencies, timeouts and destabilize network operations. 

In 2022 we have isolated the different processing components, assigned limited CPU resources to each component, added internal queues for temporarily holding work, and moved to a uniformly event-driven software design in our nodes. 

Strong isolation of processing components will also be important for tolerating larger numbers of malicious nodes in the future, because it is significantly harder now to destabilize Flow via network-internal spamming attacks.

We also made several improvements to our incident management process and aligned the node operator community to respond faster to high severity incidents. As a result, the Flow network is now very resilient to unfavorable conditions and load spikes, shown clearly with its 99.71% network availability in 2022. 


Participation Rights for Everyone with New Node Roles

Scalability is the make-or-break moment  — only if networks can scale to millions by default, will millions come. The vast majority of projects rely on two workarounds: sharding (Layer 1) and rollups (Layer 2). These techniques might tackle the immediate technical needs, but they introduce greater risks, minimize the benefits of decentralization and add complexity for developers and end-users in the long term.

Flow’s approach is different: rather than each node doing all the work, Flow’s nodes are specialized along the transaction pipeline. Collection nodes batch the work, consensus nodes secure the work, execution nodes do the work, verification nodes check the work. Access nodes are the interface through which builders can access the network. In 2022 2 additional node types are introduced: permissionless observer nodes and archival nodes to improve data availability.

Faster & Fewer Sporks

Flow is unique in terms of how the network is updated. Rather than slowly adding backwards-compatible changes, we batch breaking changes into bigger upgrades, temporarily shut the network down, upgrade the node software and bootup the network again. The benefits that brings is reduced software complexity, reducing the likelihood of bugs and vulnerabilities, thereby making the network more secure. Furthermore, without the need to worry about legacy designs, the Flow network can evolve rapidly, especially during its early days.

As time goes on, the network matures and breaking changes are less frequent. In 2021, we did 11 sporks; this year only 5. But we are not slowing down on the innovation,  we have added mechanics where the protocol itself can schedule upgrades of the execution and verification nodes at a specified block height. Then Flow will remain responsive and continue to accept transactions.  Only while the execution nodes are rebooting, there will be a minor delay of computing the transactions. 

Lastly we have heavily optimized logic for transitioning the execution state from the old network pre-spork to the new upgraded network. The down-time for a spork has dramatically improved from 4 hours at the beginning of 2022 to 90 mins for the last spork of this year.

Speaking of looking ahead, let’s take a broader look at what’s coming for Flow in the year ahead and beyond.

Looking Ahead: Building for Mainstream in 2023

2022 was a big year for Flow, but 2023 will be even bigger. Here’s what to look forward to in 2023.

Progressive User Onboarding: Meet Users Where They Are

We have to wonder why mainstream adoption for blockchain in general has been so slow. One factor is certainly the limitations in positive user experiences and high quality user friendly interfaces, which both act as barriers to onboarding the next set of users. For most new users, the crypto-scene currently feels a bit like the wild, wild west. 

There are a myriad of situations where they are uncertain of how to interact and they lack trust and security in the services they are attempting to use. While self-custody is perhaps the single most important feature of web3, the next billion blockchain users don’t have self-custodial wallets yet.

Flow will provide tooling for developers that will empower them deploy wallet-less onboarding and get immediate value. This means onboarding new users via email or social identities, and creating a path for users to seamlessly upgrade to self-custody when they’re ready or as the app demands it. 

Mobile First: Bringing Flow to Every Pocket

Building mobile-optimized experiences in web3 is difficult, but mobile accounts for over 60% of internet traffic. The non-custodial wallet experience is too jarring on mobile. For applications that leverage non-custodial wallets to sign in/up or sign transactions, users have to switch between wallet and app for frequent authentication prompts. 

While it might make sense to interrupt a user session to prompt a signature on a financial transaction, many on-chain events should occur without user interruptions. So, for mobile to be successful, it has to be a seamless signing experience.

With custodial onboarding, users won’t have to deal with keys or transaction signing - a web2-friendly experience but creates a walled garden where assets are locked in without any portability. Flow will provide tooling so developers don’t have to trade between best in class UX, security and portability. Lots of exciting development in areas including:

  • Account abstraction via child/parent account model: it will be based on capability-based model for keyless, securely scoped, multi-account mutability on sub-accounts
  • Multi-platform SDKS  iOS and Android SDKs, with WalletConnect library 

Service-less dapps: eliminating platform risks, creating trusts and unlocking new experiences

The old way of building software: You rent a bunch of virtual computer instances from AWS or GCP and install a custom boot image on them that have the services on them that you need. There is a server/platform dependencies on AWS/GCP.

The "server-less" way: You write your API services and computation engines against a services framework like Amazon Lambda. Instead of creating a series of redundant machine images that can each handle thousands of customers, you create jobs that each handle a single customer. And from there onwards it scales based on load but still there is a platform dependency. 

The "service-less" way (using blockchain): You write your API services and computation engines as a series of smart contracts, transactions, scripts, and client code. The smart contracts and transactions run on the blockchain, the scripts run on the Access nodes, and the client code runs in the browser/client application. AWS, GCP, etc. are not involved in any way. 

One of the problems today is that most of the blockchain usage is reduced to merely a database for asset tracking or audit locking.

On-chain contract based games: Flow will showcase how to build interactive, 100% on-chain games eliminating any platform risks. This will unlock the true potential of blockchain: trust, transparency, no platform risk, and composing new experiences on top.

Looking Ahead: Solidify Flow as a stable foundation for dapp development

Stable Cadence: Build once and run forever

One of the top priorities for Cadence is to design and implement the first stable and long-term-supported release of Cadence. This would unlock the real promise of “Build once and run forever.”  

Through this process Cadence will achieve feature completeness, the core smart contracts will be sufficiently battle-tested, and the economics of the system will be sufficiently understood to provide long-term support without suffering from any breaking changes and maintenance issues.

Performance Improvements

Currently, transaction execution is implemented using a tree-walking interpreter, which is not designed for high performance. Ecosystem developers will be exploring the option of switching to compilation which has the potential to unlock performance improvements orders of magnitude above current levels.

Cross-chain Communication Using LayerZero Integration

The LayerZero bridge will enable seamless asset transfers between Flow and the world of blockchains. Today bridging between chains can be an expensive, uncertain, and unsecure process requiring users to pay for gas on both the original and destination chain. Wrapped tokens need to be swapped for native assets, adding additional steps (and transaction fees) to a user’s flow. Liquidity pools on cross-chain decentralized finance applications are fragmented. 

Solving these problems requires a protocol that enables interoperability and composability across chains, while unlocking new areas of design and possibility in cryptonetworks. That's why we have decided to use LayerZero for cross-chain communication. To solve this problem, We are going to use a multiparty, event-based, on-demand approach utilizing their platform. 

Network Availability: Faster & Fewer Sporks 

We heard you loud and clear. The Flow ecosystem has been requesting faster and fewer sporks, so we will be adopting a height coordinated protocol upgrade which will reduce the length of most sporks to under 30 minutes. Reducing spork frequency to every quarter, plus frequent rolling upgrades, will ensure that the protocol is providing more seamless upgrades without compromising the pace of innovation. 

The ultimate goal for the mature protocol is to have sporkless upgrades.

Improved Data Retrievability 

At the moment, Flow's core protocol does not specify any means for permanently storing all of the execution state changes that it commits over time. The amount of data is too large to achieve this, plus it would be a waste of valuable on-chain storage for storing historical data. Introducing observer and archival nodes have allowed users to extract data locally for archival and verification purposes. 

Still, there is a need for an economically viable solution to access historical data without running a full archival node, which currently requires full data center grade hardware. The community will look at novel approaches to run archival nodes on community grade hardware making it easier to extract chain history for indexing and analytical needs. 

Permissionless Staked Access Nodes

The goal is to be fully permissionless for all node types, but the network can enable active ownership with an increasingly broad set of community node operators through progressive decentralization and a stepwise process. 

With the launch of Observer nodes we have unlocked participation rights for everyone but we are excited to announce that we will be making the first staked protocol conforming node type permissionless. The permissionless node operations for a staked Access Node will need a new operator selection algorithm that is transparent to the community and it will also come in with BFT protections against masquerade and spamming attacks.

We’ve shared a glimpse of what you can expect in 2023, but there are more innovations planned across the ecosystem. There is a collaborative plan which will be executed by contributors worldwide, and for the first time in the history of Flow, the team has released a blueprint outlining ecosystem priorities. This document of ecosystem priorities will always be a work in progress. By making information more accessible and organized, we can reduce the threshold for contribution and make collaboration across the community easier.

We hope the roundup of Flow’s massive growth through 2022, as well as a look into what comes next, has been as exciting for you as it has been for us to reflect on how much the entire ecosystem has matured. We can’t wait to see what 2023 on Flow looks like.