Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update 20230323-transaction-fee.md #266

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 24 additions & 44 deletions governance/20230323-transaction-fee.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,23 @@ Despite the trifurcation however, transaction fees on Flow continue to remain in

**Low transaction fee poses threats of attack, necessitates continued token-issuance by the protocol (inflation), and makes FLOW use-cases seem peripheral vis-a-vis other networks.**

In early days of the Flow network, when the number of transactions were fewer, transaction fees were intentionally kept low to encourage network usage. Today however, with Flow’s purpose-built compute platform and web3 utility for the masses driving a growing user-base (18M+ accounts) on the network consistently sending 6M+ transactions in an epoch (week), there is a need to revisit the fees.
In early days of the Flow network, when the number of transactions were fewer, transaction fees were intentionally kept low to encourage network usage. Today however, with Flow’s purpose-built compute platform and web3 utility for the masses driving a growing user-base (30M+ accounts) on the network consistently sending 3-4M transactions in an epoch (week), there is a need to revisit the fees.

Today, the cost of attacking Flow with an inordinate number of transactions is incredibly low, making the network susceptible to attack by malicious actors. Additionally, as exhibited in the table below, despite ~900K daily transactions (sometimes exceeding 1M), total weekly fee collection (~50 FLOW) accounts for merely 0.004% of epoch rewards ([1.3M+ FLOW tokens](https://flowscan.org/staking/history)) paid out to node operators and delegators. During rewards pay-out, the protocol first draws from the transaction fee pool, thereafter issuing new tokens to achieve the target reward rate for each epoch ([explained here](https://developers.flow.com/nodes/staking/schedule)). Low fee collection thus remains a key factor behind Flow’s 5% annual inflation. *Note that a detailed discussion on Flow inflation is out-of-scope for this FLIP and will be comprehensively addressed in a separate proposal.*
Today, the cost of attacking Flow with an inordinate number of transactions is incredibly low, making the network susceptible to attack by malicious actors. Additionally, as exhibited in the table below, despite over half a million daily transactions, total weekly fee collection (~50 FLOW) accounts for merely 0.004% of epoch rewards ([1.4M+ FLOW tokens](https://www.flowdiver.io/tokenomics)) paid out to node operators and delegators. During rewards pay-out, the protocol first draws from the transaction fee pool, thereafter issuing new tokens to achieve the target reward rate for each epoch ([explained here](https://developers.flow.com/nodes/staking/schedule)). Low fee collection thus remains a key factor behind Flow’s 5% annual inflation. *Note that a detailed discussion on Flow inflation is out-of-scope for this FLIP and will be comprehensively addressed in a separate proposal.*

Finally, Flow’s low transaction fee unfortunately makes FLOW use-cases less perceptible to many users. Competing networks such as Solana, NEAR and Avalanche for instance have 300x, 450x, and 1,300x average fee per transaction respectively vis-à-vis Flow, while on ETH, the average fee is ~480,000x (see table below). Given FLOW’s multiple use-cases including staking, delegating, paying transaction fees, paying storage fees, trading assets and participating in experiences built on Flow, it is crucial that FLOW token’s utility is priced appropriately to reflect and surface its value-proposition to users.
Finally, Flow’s low transaction fee unfortunately makes FLOW use-cases less perceptible to many users. Competing networks such as Solana, NEAR and Avalanche for instance have 4800, 300x, and 20,000x average fee per transaction respectively vis-à-vis Flow, while on ETH, the average fee is ~270,000x (see table below). In-fact, despite comparative or even higher number of daily transactions than many other networks, Flow’s daily fee collection is extremely small vis-a-vis most others. Given FLOW’s multiple use-cases including staking, delegating, paying transaction fees, paying storage fees, trading assets and participating in experiences built on Flow, it is crucial that FLOW token’s utility is priced appropriately to reflect and surface its value-proposition to users.

| Network | Daily total txns (est.) | Daily total fee (~$) | Avg fee/ txn (~$) | V/s Flow txn fee |
| --- | --- | --- | --- | --- |
| Avalanche | 2,000,000 | $ 22,375 | $ 1.12E-02 | 1,324 times |
| Bitcoin | 305,700 | $ 296,060 | $ 9.68E-01 | 114,612 times |
| BNB | 2,800,000 | $ 551,696 | $ 1.97E-01 | 23,318 times |
| Cardano | 77,300 | $ 9,599 | $ 1.24E-01 | 14,696 times |
| ETH | 1,000,000 | $ 4,063,415 | $ 4.06E+00 | 480,882 times |
| NEAR Protocol | 420,000 | $ 1,594 | $ 3.80E-03 | 449 times |
| Solana | 17,690,000 | $ 44,206 | $ 2.50E-03 | 296 times |
| Flow | 947,558 | $ 8.01 | $ 8.45E-06 | N/A |
1. *Market prices used are Year-to-date (YTD) moving averages*
| Avalanche | 300,000 | $ 72,975 | $ 2.43E-01 | 20,822 times |
| Cardano | 40,000 | $ 3,128 | $ 7.82E-02 | 6,694 times |
| ETH | 1,200,000 | $ 3,765,136 | $ 3.14E+00 | 268,581 times |
| NEAR Protocol | 7,000,000 | $ 25,000 | $ 3.57E-03 | 306 times |
| Optimism | 650,000 | $ 66,210 | $ 1.02E-01 | 8,719 times |
| Polygon | 4,000,000 | $ 26,828 | $ 1.00E-02 | 856 times |
| Solana | 28,000,000 | $ 1,600,000 | $ 5.71E-02 | 4,891 times |
| Flow | 550,000 | $ 6.43 | $ 1.17E-05 | N/A |
1. *Market prices used are 30 day averages*
2. *Average fee per transaction is calculated by daily total fee/ daily total transactions*
3. *The last column simply divides average transaction fee for a network to the average transaction fee on Flow*

Expand Down Expand Up @@ -71,44 +71,24 @@ Second, while this proposal by itself will only marginally reduce inflation (fro

![TPS-vs-Inflation](TPS-vs-Inflation.png)

Third, this change would make FLOW’s use-cases more perceptible and established, further accentuating its stature as a token of value. The table below shows the average transaction fees of various networks vis-a-vis Flow in the current and proposed scenarios. Simply put, for every dollar that users would pay to transact on the Flow network, they currently pay $450 on NEAR, $300 on Solana, and $480,000 on ETH - for the same transaction(s). This differential would reduce 100x with the approval and implementation of this proposal, yet even with the implementation of the new fee structure, Flow would continue to remain an economically attractive network to transact on. Note that given FLOW market price’s high correlation with the listed tokens’ prices (”R” averaging 0.8+), even a change in FLOW token price or stochastic market volatility would not substantially alter the competitiveness of the proposed Flow fees compared to other networks, as can be seen in the last two columns of the table below.
Third, this change would make FLOW’s use-cases more perceptible and established, further accentuating its stature as a token of value. The table below shows the average transaction fees of various networks vis-a-vis Flow in the current and proposed scenarios. Simply put, for every dollar that users would pay to transact on the Flow network, they currently pay $300 on NEAR, $4890 on Solana, and $270,000 on ETH - for the same transaction(s). This differential would reduce 100x with the approval and implementation of this proposal, yet even with the implementation of the new fee structure, Flow would continue to remain an economically attractive network to transact on. Note that given FLOW market price’s high correlation with the listed tokens’ prices (”R” averaging 0.8+), even a change in FLOW token price or stochastic market volatility would not substantially alter the competitiveness of the proposed Flow fees compared to other networks.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that given FLOW market price’s high correlation with the listed tokens’ prices (”R” averaging 0.8+)

In scientific literature, it is generally discouraged to use symbols (such as R) without precise definition. While there are often commonly used symbols for some specific quantity, these conventions may change over time. Furthermore, given only the symbol, it is often highly non-trivial to figure out what specific quantity is meant.

I assume with R you mean the Pearson's correlation coefficient? Furthermore, not sure what you mean with "averaging", because Pearson's correlation coefficient is usually defined for a sample. Do you mean you average over different tokens? I would just remove the "average".

Suggestion:

Suggested change
Third, this change would make FLOW’s use-cases more perceptible and established, further accentuating its stature as a token of value. The table below shows the average transaction fees of various networks vis-a-vis Flow in the current and proposed scenarios. Simply put, for every dollar that users would pay to transact on the Flow network, they currently pay $300 on NEAR, $4890 on Solana, and $270,000 on ETH - for the same transaction(s). This differential would reduce 100x with the approval and implementation of this proposal, yet even with the implementation of the new fee structure, Flow would continue to remain an economically attractive network to transact on. Note that given FLOW market price’s high correlation with the listed tokens’ prices (”R” averaging 0.8+), even a change in FLOW token price or stochastic market volatility would not substantially alter the competitiveness of the proposed Flow fees compared to other networks.
Third, this change would make FLOW’s use-cases more perceptible and established, further accentuating its stature as a token of value. The table below shows the average transaction fees of various networks vis-a-vis Flow in the current and proposed scenarios. Simply put, for every dollar that users would pay to transact on the Flow network, they currently pay $300 on NEAR, $4890 on Solana, and $270,000 on ETH - for the same transaction(s). This differential would reduce 100x with the approval and implementation of this proposal, yet even with the implementation of the new fee structure, Flow would continue to remain an economically attractive network to transact on. Note that given FLOW market price’s high correlation with the listed tokens’ prices (Pearson's correlation coefficient of 0.8+), even a change in FLOW token price or stochastic market volatility would not substantially alter the competitiveness of the proposed Flow fees compared to other networks.


| Network | Current Avg txn fee | Current Multiple v/s Flow | Proposed avg txn fee | Proposed Multiple v/s Flow | Expected Multiple if FLOW/$ changes |
| --- | --- | --- | --- | --- | --- |
| ETH | $ 4.06E+00 | 480,882 times | $ 4.06E+00 | 4,808 times | 4,040 times |
| BSC | $ 1.97E-01 | 23,318 times | $ 1.97E-01 | 233 times | 182 times |
| Bitcoin | $ 9.68E-01 | 114,612 times | $ 9.68E-01 | 115 times | 940 times |
| Solana | $ 2.50E-03 | 296 times | $ 2.50E-03 | 3 times | 2.4 times |
| Avalanche | $ 1.12E-02 | 1,324 times | $ 1.12E-02 | 13 times | 10.6 times |
| Cardano | $ 1.24E-01 | 14,696 times | $ 1.24E-01 | 147 times | 120.5 times |
| NEAR | $ 3.80E-03 | 449 times | $ 3.80E-03 | 4.5 times | 3.4 times |
| FLOW | $ 1.21E-05 | N/A | $ 1.21E-03 | N/A | N/A |
| Network | Current Avg Txn Fee | Current Multiple v/s Flow | Proposed Avg Txn Fee | Proposed Multiple v/s Flow |
| --- | --- | --- | --- | --- |
| Avalanche | $ 2.43E-01 | 20,822 times | $ 2.43E-01 | 208 times |
| Cardano | $ 7.82E-02 | 6,694 times | $ 7.82E-02 | 67 times |
| ETH | $ 3.14E+00 | 268,581 times | $ 3.14E+00 | 2686 times |
| NEAR Protocol | $ 3.57E-03 | 306 times | $ 3.57E-03 | 3 times |
| Optimism | $ 1.02E-01 | 8,719 times | $ 1.02E-01 | 87 times |
| Polygon | $ 1.00E-02 | 856 times | $ 1.00E-02 | 9 times |
| Solana | $ 5.71E-02 | 4,891 times | $ 5.71E-02 | 49 times |
| Flow | $ 1.17E-05 | N/A | $ 1.17E-03 | N/A |

## **Final Word**

Transaction fees offer many benefits in Flow network’s economic design, including compensating the node operators for the resources deployed to process transactions and secure the network, protecting the network against spamming attacks, and generating long-term stability in the Flow economy via reduced inflation. In a mature state, transaction fees should allow the Flow blockchain to self-regulate transaction throughput in a way where it would always approach optimal throughput. This proposal however is meant to be a starting point for community discussions on how an increase in inclusion fees and unit cost of execution effort could lead to network-wide benefits including economically deterring network attacks and strengthening the overall FLOW economy. The community is invited to share feedback on this post and help shape the economics of FLOW.
Copy link
Member

@AlexHentschel AlexHentschel May 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In a mature state, transaction fees should allow the Flow blockchain to self-regulate transaction throughput in a way where it would always approach optimal throughput.

I feel there is a lot of ambiguity in this sentence:

  • The network itself cannot properly regulate transaction throughput. It cannot add transactions if the network is under-utilized and we don't really want the network to drop transactions if it is overloaded.

My guess what you mean is something like the following:

Suggested change
Transaction fees offer many benefits in Flow network’s economic design, including compensating the node operators for the resources deployed to process transactions and secure the network, protecting the network against spamming attacks, and generating long-term stability in the Flow economy via reduced inflation. In a mature state, transaction fees should allow the Flow blockchain to self-regulate transaction throughput in a way where it would always approach optimal throughput. This proposal however is meant to be a starting point for community discussions on how an increase in inclusion fees and unit cost of execution effort could lead to network-wide benefits including economically deterring network attacks and strengthening the overall FLOW economy. The community is invited to share feedback on this post and help shape the economics of FLOW.
Transaction fees offer many benefits in Flow network’s economic design, including compensating the node operators for the resources deployed to process transactions and secure the network, protecting the network against spamming attacks, and generating long-term stability in the Flow economy via reduced inflation. In a mature state, the network would autonomously adjust transaction pricing such that its throughput approaches the optimum. This proposal however is meant to be a starting point for community discussions on how an increase in inclusion fees and unit cost of execution effort could lead to network-wide benefits including economically deterring network attacks and strengthening the overall FLOW economy. The community is invited to share feedback on this post and help shape the economics of FLOW.


## **Appendix 1**

**Comparison** **of** **Flow v/s Solana transaction fees (current scenario) for specific transaction types**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why remove?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed this because first, we need to wait for Crescendo launch for real data from mainnet transactions broken down by type, and second, Solana's prioritization fee wasn't considered in the analysis as it's hard to average it out by transaction types. I can explain this more in our conversations with the community but including this table in the FLIP no longer makes sense as the data wouldn't be correct


The table below demonstrates how Solana fees associated with different transaction types fare against Flow today, ranging from ~100x for empty transactions to 3x for an average contract deployment.

| | Flow txn fee (US$) | Solana txn fee (US$) | SOL : Flow fee ratio |
| --- | --- | --- | --- |
| Empty Transaction | 1.11E-06 | 1.09E-04 | 98 X |
| Create 1 account | 3.49E-06 | 1.09E-04 | 31 X |
| Create 10 accounts | 2.51E-05 | 1.09E-03 | 44 X |
| Add key to account | 1.11E-06 | 1.09E-04 | 98 X |
| FT transfer | 2.05E-06 | 1.09E-04 | 53 X |
| Deploying a 50kB contract | 3.29E-05 | 1.09E-04 | 3 X |
| Mint a small NFT | 2.11E-06 | 1.09E-04 | 52 X |
1. *Note that Solana also has a [prioritization fees](https://docs.solana.com/terminology#prioritization-fee) which is not considered in the analysis below but is paid by ~48% of non-voting transactions.*
2. *Assumed 1 signature per transaction & Solana’s fee of 5000 Lamports per signature, where 1 Lamport = 1E-9 SOL; and 1SOL = US$ 21.07 (YTD moving average of SOL/US$ market price)*
3. *To create 10 accounts, 10 signatures for creation of 10 accounts were assumed*
4. *Solana-Flow multiple is calculated by dividing Solana txn fee for a transaction type by Flow txn fee for the same type*

## Appendix 2
## **Appendix**

**Resources**

Expand Down
Loading