Like Macintosh software running on an Apple computer, or a PC application running on Windows hardware, an on-chain transaction is any native transfer of value within a blockchain network.
Don’t be put off by overly the technical-sounding vocabulary. It’s as simple as this: sending BTC from one Bitcoin wallet to another using raw Bitcoin infrastructure is an on-chain transaction. Sending ETH from one Ethereum wallet to another without any add-ons involved is also an on-chain transaction.
The term “on-chain” simply applies to any self-contained blockchain transaction.
But there are some nearly political implications about what a blockchain should be able to do and how it should operate. As this technology begins to proliferate into the mainstream, there are some real questions and concerns over what an on-chain transaction should look like and how quickly it should process.
To better understand what “on-chain” means, let’s compare how Bitcoin and Bitcoin Cash process their own on-chain transactions.
Bitcoin operates by bundling transactions into one-megabyte “blocks,” which are simple computer data representing cryptocurrency transactions between wallets. A one-megabyte block contains about 2,000 transactions, and the network can validate a new block every ten minutes.
This means the number of transactions is fundamentally limited, working out to be between three and five per second. It’s not exactly fast.
Born out of a rift in the Bitcoin community in 2016, Bitcoin Cash is the speedier alternative — it uses eight-megabyte blocks to fit many more transactions into one unit of work. A highly vocal group began lobbying for larger block size in order to scale the network to handle more transactions in the same amount of time, but Bitcoin’s core developers were dead-set against it: long-term implementation of this idea would see the network grow by a gigabyte every ten minutes.
Bringing that much more data into the fold after the fact would add a new layer of complexity to everything, and it would furthermore exclude people from the network who didn’t have hardware sufficiently capable of processing and storing all that new data.
As Satoshi Nakamoto’s original vision of cryptocurrency was one of radical inclusion, the developers declined to make such a limiting decision.
“On-chain” means different things on different blockchains.
Bitcoin is commonly presented as a geographically agnostic payments system capable of serving the world, but three to five transactions per second doesn’t seem to cut it for global service. Consider other payments systems that actually do serve the world without any blockchain required: credit card networks by the likes of Visa and Mastercard can process more than 5,000 payments per second, and even has the capacity to handle many times beyond that.
Bitcoin can’t even begin to compete against a number like that, so it had a significant bandwidth issue holding it back from widespread adoption and casual use cases.
This is why the Bitcoin blockchain forked on August 1, 2017 to give birth to Bitcoin Cash. Representing its transactions in eight-megabyte blocks, this “upgrade” worked to keep the new system reliable, maintain low fees for using it, and fit more transactions into the same unit of work.
So not all on-chain transactions are created equally. Bitcoin Cash derives its name by significantly reducing the amount of time required to receive a crypto payment, as if someone put cash in your hand via the blockchain. And because it happens on its own self-contained network that’s built to different specifications and follows different rules, that transaction is still considered “on-chain.”
What are the disadvantages of an on-chain transaction?
On-chain transactions are supposed to occur in real time in order to keep blockchain transactions secure, verifiable, and transparent. But it often doesn’t happen this way in reality.
It can take an inconsistent amount of time for network nodes to verify an on-chain transaction. What might take seconds to process one day can take a full ten minutes the next. Miners on the network must include the transaction into a block for it to be confirmed.
You can't be sure if your transaction will be included in a block straight away, so in times of high transaction volume, you may need to wait a while.
On-chain transactions can also be identifiable. Although cryptocurrency is commonly discussed as “anonymous” money, on-chain transaction information can occasionally provide insights into who the transacting parties are, and therefore threaten this anonymity.
If someone were closely analyzing transaction patterns involving the same group of addresses, then it only becomes a matter of forensic accounting to narrow down who might be involved.
On-chain transactions also come at a cost. Miners get a piece of the action for their service of confirming a transaction. Depending on a blockchain’s transaction volume at a given moment, this fee might be very high.
This means on-chain transactions might not make sense when a transaction fee is a significant fraction of the total amount of money being moved.
In any case, on-chain transactions are simply business as usual for a blockchain. They’ve been taking place every day since the 2009 unveiling of Bitcoin.
Even though they might occasionally be slow and expensive, they are the core functionality of BTC and the basis for any other use case that you might try to build with the system.