Opinion Please stop participating in the outdated BRC-20 initial coin offering and resist it.

Source: Twitter, Author: @AurtrianAjian from BTCStudy

I’ve heard some outrageous things, but I didn’t know you could be so outrageous. Please stop participating in the “BRC 20” initial offering and boycott it.

You should not participate anymore because technically, this outdated thing will definitely be eliminated. You should boycott it because it will cause the inflation of the UTXO set, and the practical consequences of its application are close to a dust attack.

Before, I have already written that things like BRC 20 cannot be called a “protocol” at all because it simply cannot protect the users who use it. But at that time, I didn’t delve into it, I didn’t know that it is even more outrageous than I imagined.

On the surface, BRC 20 defines two operations for homogenized tokens: “Mint” and “Transfer” …

In each step of each operation, a Bitcoin transaction needs to be initiated and an inscription needs to be written in the transaction input (Inscription, writing data in the block through the input’s witness script). However, in BRC 20, the transaction outputs formed by these inscribed transactions are almost meaningless. That’s the problem.

If you carefully look at the document above, you will find that it says:

“The balance state of BRC 20 can be obtained by aggregating the activities of all these functions”; however, all the activities of these functions are manifested through inscriptions, and none of these functions require the spending of specific UTXOs (or even specific satoshis). Whether you obtain some tokens through minting or transferring, when you need to transfer these tokens later, you don’t need to spend the transaction that gave you these tokens.

In other words, these tokens are not actually attached to Bitcoin UTXOs, their state is completely determined by the inscriptions that have been written in the blocks (as well as the order of these inscriptions); changing the state of these tokens does not require you to have the ability to unlock a specific UTXO.

(The only thing that requires UTXO association is the two steps of the transfer operation, see the following text for details)

This design has a significant impact on the security, economics (scalability), and decentralization of the protocol. First of all, because it is not attached to UTXOs, it naturally cannot rely on the anti-double-spending mechanism of UTXOs themselves. The entire BRC 20 is built on the principle of “first come, first served” based on the ordering of block transactions. Without this “first come, first served” as the ultimate backing, it simply cannot prevent negative balance and repeated spending.

However, the validation mechanism based on blocks instead of UTXOs also makes it impossible to create a lightweight validation mechanism. In any case, you need the full block data to find out the state of an account. (But protocols like RGB and Taro, which are based on UTXOs, do not need this. They only need block headers) This also means that there will be fewer nodes that can afford balance calculation and indexing, and the decentralization feature will be worse.

Perhaps to reduce the burden of calculating the latest state (identifying counterfeit coins), BRC 20 defines a strange transfer mechanism: regardless of how you obtain some tokens, your transfer must be divided into two steps: the first step is to convert some tokens into a “transferable” state (and specify the recipient); the second step is to actually transfer these tokens and invalidate the “transfer inscription” of the first step. Your next recipient will do the same.

Such mechanisms certainly affect user experience and cost-effectiveness. No matter how much discount you can get from the token mechanism, making an additional transaction is enough to offset the benefits you have gained. In addition, this strange mechanism that does not use UTXO also creates inherent barriers when using Bitcoin UTXO-based smart contracts (such as Lightning Network, DLC, etc.), lagging behind the latest generation of protocols.

So I say, BRC 20 is an outdated technology. When the new generation of token issuance protocols can achieve lightweight clients, lower economic costs, and easier integration into the existing Bitcoin ecosystem, BRC 20 still relies on consuming block space to achieve programmability. You can imagine what the outcome will be when ecosystems like RGB and Taro emerge!

Ironically, although the minting and transfer of BRC 20 tokens do not require association with UTXO, it has designed a “quota” mechanism for minting tokens. When minting tokens, the maximum number of tokens that can be minted by a single UTXO can be specified. You should be able to guess what this is for.

Yes, this is to meet the fairness requirements in the “initial token offering” scenario.

It cannot allow one person to mint all the tokens with a single output, so it designed this restriction. But think about it, when UTXO needs to be used as a placeholder, these UTXOs must be small UTXOs-the more fragmented the funds are, the more new tokens can be obtained. The result is the inflation of the UTXO set.

These UTXOs used for initial token offerings are explicitly planned to be 546 satoshis (P2PKH outputs) / 330 satoshis (P2TR outputs), which is only equal to the dust output limit of Bitcoin Core. Spending them itself is uneconomical, and subsequent transfer operations do not require spending them, so they are likely to remain in the UTXO set forever, causing irreversible inflation of the UTXO set.

Transfer operations also leave behind UTXOs. Although theoretically these UTXOs do not need to be small, in the current engineering implementation, small UTXOs are still used. And because BRC 20 does not require the feature of coherent spending of UTXOs, they are permanently left in the UTXO set.

Chart shows that since April 23, 2023 (when BRC 20 started trading), Bitcoin’s UTXO set has expanded from 5 GB to 6.8 GB. I cannot yet prove that all inflation is related to BRC 20, but the growth curve during this period is much steeper than before. It needs attention.


Resist it. If you are a node, you can add this line to the configuration file of the node: dustrelayfee= 0.00005, which will increase the threshold for dust outputs by 5 times (the default value is 0.00001, you can adjust it as appropriate). If your node used to forward BRC 20 transactions with dust outputs, now your node will no longer forward transactions with outputs below 2730 satoshis/1650 satoshis.

However, if these transactions can enter the block, your node will still keep these transactions and their outputs.

If you are a developer, please consider developing a filter to identify BRC 20 transaction outputs, helping us remove these minting outputs and transfer outputs from our UTXO set. Personally, I would choose to run such a filter.

Take action to protect the Bitcoin network.

Like what you're reading? Subscribe to our top stories.

We will continue to update Gambling Chain; if you have any questions or suggestions, please contact us!

Follow us on Twitter, Facebook, YouTube, and TikTok.


Was this article helpful?

93 out of 132 found this helpful

Gambling Chain Logo
Digital Asset Investment
Real world, Metaverse and Network.
Build Daos that bring Decentralized finance to more and more persons Who love Web3.
Website and other Media Daos

Products used

GC Wallet

Send targeted currencies to the right people at the right time.