Safex: The Dynamic Block Size

This article explains the Dynamic Block Sizing, Transaction Fees, and Ring Size (Mixin).

Safex: The Dynamic Block Size

In some of the previous articles we described what blockchain and blocks are: Blocks are packages of information linked to other blocks using cryptographic connections. The original blockchain was Bitcoin blockchain. Its block can not increase in size to accommodate an increase in transaction volume on the chain. That kind of cryptocurrency is called ''static block size cryptocurrency''.

For high use static blockchains, this leads to a situation where the number of transactions awaiting processing in the transaction pool grows at a pace faster than the blockchain can process them. The transaction fee costs often spiral out of control, as people start intentionally paying more in fees to expedite the processing of their transactions (as miners select the transactions with the highest fees for best profitability). At times of intense blockchain activity, this causes a roll-on effect.

In early 2021, this phenomenon led to gas fees for Ethereum exceeding $100 per transaction and BTC transaction fees regularly being $20 to $30. For High Net Worth individuals moving large amounts per transaction, this fee can be tolerated as an insignificant percentage of the overall transaction. However, for those people looking to move smaller amounts, the transaction fee becomes an obscene percentage of the overall transaction.

Dynamic block sizing and dynamic fees, as used by Safex Blockchain, resolves this issue. As the number of transactions increases, the blockchain is algorithmically programmed to adjust the block size and transaction fee. All coins based on the CryptoNote algorithm (e.g., Monero) have this dynamic capacity.

In static block size cryptocurrencies, like Bitcoin, the block cannot increase in size to accommodate an increase in transaction volume on the chain.

Transaction fees are also dynamic and adjust automatically, based on the following formula:

fee = (R/R0) * (M0/M) * F0


  • R: current base block reward
  • R0: reference base reward
  • M: current median block size limit
  • M0: minimum block size limit
  • F0: 0.01 Cash (Nominal fee is presently 0.01 SFX)

Note: increases to the median block size results in a Dynamic Block Size Penalty to mining rewards, which also has the practical effect of delaying the annual block reward adjustment (per the emission curve) by a small amount.

For those who want a profound explanation of these dynamic adjustments, much has been written about this mechanism for Monero.

The base fee is then used to calculate the actual transaction fee, depending on the amount of data being sent in the transaction.

Another factor that affects Transaction Fees is the nominated ring size, also referred to as mixins, which adds additional signatures to the transaction for obfuscation purposes. This is the purpose of the Ring Signature system.

Safex Wallets have a default ring size of 7, which means 7 additional transaction signatures are mixed into the transaction. Any third party looking at the transaction has no way of telling which of the 8 signatures relates to the actual transaction being made.

These additional signatures add additional data to the transaction size, which results in a more expensive transaction fee. When preparing to send a transaction in the wallet, users can select different mixin values according to their personal preference. The cli wallet allows the user to enter any value; however, GUI wallets provide a dropdown selection from 1 to 7.

The last factor affecting transaction fees is the Priority setting. Not currently implemented in the GUI wallet but available via the cli wallet, the Priority option allows the user to pay a higher transaction fee to get their transaction processed more quickly. This would only be a factor when there are more transactions in the pool than those that can be processed in a single block. A deeper explanation of Transaction Priorities can be found here.

Read similar blog posts.