As of this recording, Cardano has around 30 network parameters. Parameters are the mechanisms that control HOW the Cardano Blockchain works. Today we are talking about the max_tx_size parameter.
In episode 5 we learned about the parameter that controls how big each block that’s added to the Cardano blockchain can be. The other parameter that controls how much and what kinds of data can be stored on the Cardano blockchain is the max_tx_size, or the Max Transaction Size. The max_tx_size parameter controls the maximum size an individual transaction that goes INTO a block can be. The current value of the max_tx_size is set to 16 Kilobytes.
If the entire block size, as we said in ep 5 is the equivalent of a 45 page document, the max_tx_size is the equivalent of a 2 page text document.
max_tx_size is interesting for a couple reasons. First of all, there are some fundamental differences of opinion in the blockchain community about how big or small the transaction size limit should be.
If the blockchain is meant to be the source of truth for all our digital contracts currently mediated by third parties, then 16 kb is not enough for storing loan documents, digital art, or many financial contracts. This is playing out now in the Cardano community where many teams and artists turn to other blockchain-compatible technologies like IPFS for storing digital assets. Other times, teams — including our team at Lido Nation — turn to other blockchain-like structures, such as Arweave, to store large pieces of data — while storing the metadata about the data on Cardano. At Lido we use Arweave to store images associated with our NFTs on Cardano.
The Bitcoin community was viscerally divided on whether or not to increase their block size — to the point that the community split. People who wanted bigger blocks created their own version of Bitcoin. After that divide, there was Bitcoin, with the original size limits, and Bitcoin Cash, with new, higher limits.
So some folks would like to store larger files directly on the blockchain. Bigger files means the blockchain can fit a wider array of use cases, like storing images. It also means that smart contracts can do more in a single transaction, resulting in overall less transaction fees and faster processing times.
In the opposing camp are those that believe that it’s best to keep transaction sizes smaller, in order to protect security and scalability. These people would point out that we don’t just want to store things on the blockchain; rather, we want to build a system that can serve the globe without becoming too expensive to operate. In addition, blockchain gets its security from many individuals and companies around the world independently running copies of the entire blockchain. If it becomes too expensive for individuals to host and run the entire copy of the blockchain, the math behind it purports that the blockchain will necessarily become more vulnerable to security breaches. In this school of thought, the best solution is to use technology like IPFS and Arweave to store larger-sized data, while using blockchain to record the more-compact metadata about the data.
Another reason max_tx_size is interesting is because it might affect the choices that you make, as an individual or as a company, about which blockchains you use.
If you care about specific blockchain properties like security, decentralization, or data provenance you might care about the max_tx_size on your favorite blockchain. If your business is built around creating blockchain transactions you might also care about the max_tx_size. Larger max_tx_size can mean faster cheaper transactions in the short term since blockchain applications can do more in a single transaction instead of having to make multiple trips. However over time it can become more expensive to run the chain. In that case, the cost of transactions might go up anyway to continue to encourage businesses to keep operating the network. It would be likely to raise the cost of entry for new network nodes, which would discourage new businesses from creating new servers to help operate the network. In this environment, only big operators working at a large scale can make a profit by participating in running the network.
As a person making regular transactions, understanding max_tx_size can help you decide what time of the day you submit your transaction by looking at times of the day blocks tend to be full and avoiding those windows. This can mean your transaction takes 30 seconds to make it into a block or 5, or 10 minutes. In cases where you’re making a time sensitive reservation, like purchasing a digital collectible or ticket, the faster the better!
If you have a business that needs to process many transactions that convert to another currency, timing when you submit your transactions means saving on exchange rate slippage. Because there’s only so much tx can go into a single block, roughly in the order they are received, this can mean you have two minutes before making it to the top to be put into the next block. Since the price of trading one crypto for another depends on live data, that price can change by the minute. The less you have to wait for your transaction to be put into a block, the greater your chance of getting the rate offered at transaction creation.
Another reason you might care about this value is if you’re trying to build a company that stores data on the blockchain. The smaller your piece of information is, the more chance it will fit into a block since many blockchains will skip bigger transactions in their preference for assembling the fullest individual blocks as possible. Choosing to build compact transactions can lead to less waiting times, or greater slippage protection for your users.