In this episode of the podcast, Jeffrey and Ajian delved deep into the misunderstanding of Bitcoin's "Gas fee."
Guests: Jeffrey Hu, CTO of HashKey Capital
Ajian, Senior Bitcoin Researcher and BTC Study Contributor
Edited by: HashKey Capital
In this episode of "Hash Out 42," a podcast produced by HashKey Capital, the discussion between two Bitcoin researchers focused on the complexity of Bitcoin network fees, managing transactions, and the challenges of block size. In this segment, Jeffrey, CTO of HashKey Capital, and Bitcoin researcher Ajian discussed in depth the misunderstanding of "Gas fees" in Bitcoin—this term is more applicable to Ethereum's transaction model, emphasizing that Bitcoin's fees are based on transaction size, unlike Ethereum, which calculates based on workload.
One issue worth noting is the congestion and high transaction fees caused by BRC20 tokens on the Bitcoin network. Recently, this trend has not only had a negative impact on user experience but has also led to a significant increase in the UTXO set, potentially bringing uncertainty to the future development of the Bitcoin network, such as increased computational and storage requirements.
The episode also discussed the importance of running full nodes on the Bitcoin network. It emphasized that while running a full node may not have direct economic benefits, it plays a crucial role in maintaining network integrity, resisting censorship, and ensuring trustless verification of the blockchain. This is crucial for protecting individual financial privacy and the ability to engage in free transactions.
Furthermore, the podcast continued to analyze the differences between soft forks and hard forks in the Bitcoin network, as well as the role of miner voting in network upgrades. It used examples of BIP 148 and the Segregated Witness upgrade to illustrate the subjective agency that full node operators can exercise in controversial upgrades. The discussion emphasized that running full nodes gives node operators more power and choice, making a significant contribution to the overall health of the network and individual financial sovereignty.
The episode concluded by reaffirming the philosophical essence of Bitcoin. Unlike other cryptocurrencies that may cater to concepts of power and authority, Bitcoin aims to limit power to protect individual freedom, making its position in the cryptocurrency field unique.
This episode of "Hash Out 42" provides a comprehensive and in-depth learning opportunity for listeners interested in the technical and philosophical complexity of Bitcoin.
Jeffrey Hu: Just now, we also talked about the fees in the entire network, including how to determine whether a transaction should enter a block. It was mentioned that gas fees might be relatively high. So, there's been a recent claim that BRC20 has caused significant congestion in the Bitcoin network, resulting in very high Gas fees. This has made developers and purists very unhappy, so they may need to take some measures as mentioned earlier. Yes, let me talk about this first, because this claim actually raises my blood pressure. Yes, first of all, the concept of Bitcoin's gas fees is definitely wrong. This is not just a habit of compulsive behavior, because Bitcoin actually does not have the concept of Gas fees. You can call it a transaction fee or just a fee, or similar terms. But using the term gas may not only be a misunderstanding in terms of nomenclature, because it is very different from Ethereum, as Ajian just mentioned. The entire computation in Ethereum, including possibly some storage, is priced or charged based on gas, but the fees on the Bitcoin network are all based on the size of the transaction. It calculates how much fee you should charge based on the size of the transaction that leaves a trace on the chain and can enter a block. So, these two concepts are actually quite different, so I still hope that if there is some understanding, it is best to say that the concept of Bitcoin's transaction fee as gas is a significant misunderstanding.
Yes, returning to the misunderstanding, there is actually a larger misunderstanding, which is that BRC20 has caused network congestion or high fees. This is indeed a recent fact, but at least from my understanding, whether it's the recent size of transaction blocks being very large or the fees being very high, which may affect some people's transactions, this is indeed a point where user experience may not be very good. But on the other hand, what I think may be different from the thinking of Bitcoin developers, who may be more restrained, is that I think it is more about the significant growth of the UTXO, which may be more troublesome, because the growth of block size, whether it's the 4M block size caused by an inscription at the beginning of this year, which surprised many people, but I think all of this is still within a reasonable range, because during the activation of the Segregated Witness soft fork, these technical issues, I believe, can be foreseen in the future. In extreme cases, every block may be 4M, which can also be foreseen, including the possibility of a large overall size, many transactions in the memory pool waiting to be packaged, resulting in high transaction fees, all of which can be foreseen.
But there may be something that was not foreseen, which is the significant growth of the UTXO set, as I mentioned earlier. For example, if I go to the bank to deposit money, under normal circumstances, if I deposit 100 yuan, the bank branch can handle it without any problem. But if, for other reasons, all the hundred yuan bills are exchanged for one-cent bills to be distributed to the nodes, it may create significant pressure on the future accounting and tracking.
This may be something that the original developers, or in previous discussions, no one anticipated or expected, that the UTXO set would grow so rapidly this year. I saw some data before, it seems that the entire UTXO set has almost doubled from the beginning of this year to now. I don't know if Ajian has also seen this data or has any corrections or additions.
Ajian: I had a friend before who talked to me about this, and he gave me some data. Today, I updated the data. Around April 21st of this year, the UTXO set of the Bitcoin network was approximately 86 million UTXOs, with a size of about 5 GB. But by November 25th of this year, just about half a month ago, the number had already increased to 140 million, and its size had become 8.74 GB. So, indeed, in terms of approximate numbers, if we calculate from the end of last year to now, the UTXO set has roughly doubled. Some listeners may not understand the importance of the UTXO set. For example, what kind of thing is a blockchain? We know that a blockchain is a record of our past transactions, so the blockchain itself has a volume, which we call the block data, and its size continues to grow with each block.
But another part is that when all the transactions on the blockchain are processed, we can obtain a state. In the case of Bitcoin, we use the UTXO set to represent this state. It shows how many transaction outputs there are after all the Bitcoin transactions on the blockchain have been processed, how much money is in each output, and what the spending conditions are. We use the UTXO form to represent the result after all past Bitcoin transactions have been processed.
So whenever a new block appears, nodes have to do two things. The first thing is to download the block data and save it locally. The second is to verify each transaction in the block one by one. When verifying these transactions, it's natural to query which outputs they are spending and which outputs they will create to save new outputs. The process of verifying transactions naturally involves accessing the previously saved UTXO and checking the identity authentication information provided by the new transactions, including signatures and other information, to see if they meet the conditions and whether they cause inflation, right? Whether it is a valid transaction? In this verification process, it involves the need to retrieve the UTXO you need to verify from the UTXO set and then run some calculations based on its conditions to verify it. The expansion of the UTXO set will lead to an increase in the disk read and write expenses for nodes.
This kind of retrieval work from a large UTXO set to find the UTXOs you need and then process and verify them actually involves greater disk expenses than simply saving blocks. This is why everyone is more concerned about whether the state size is growing significantly. Some listeners may have heard of the so-called state explosion problem or state bloat problem on Ethereum, which is essentially the same problem. For example, on Ethereum, after processing transactions in each block, what is the latest state of the Ethereum protocol, right? There are so many external accounts, so many contracts, and what is the latest state of each contract? If you don't know this latest state, you won't be able to verify the next block.
The same goes for the Bitcoin network. If you don't have the latest UTXO set, you won't be able to verify the next block. So, the expense of the disk is a significant source of operating expenses for you as a full node to continue running and verifying new blocks. So, I am particularly concerned about some recent events at this point.
Relatively speaking, for example, the appearance of a 3MB inscription, I don't think it's so worrying. But now, with the appearance of things like BRC20, including the recent issuance of new tokens, I think calling them protocols is actually very far-fetched, because I have said elsewhere that their security is actually very questionable. With the introduction of these things, such as BRC20, the issuance of new tokens objectively leads to the expansion of the UTXO set. There are also some projects that try to use a method of disguising some data as signatures and putting them in the outputs of transactions, which actually causes the expansion of the UTXO set, and it is actually worse than simply stuffing data into the chain.
So, in the past period, especially in the past month or so, it makes me feel that there is no consensus on some of the most basic things, or that there is actually no sense of awe. For example, when you go out and see a square with many flower beds, even though there are no signs saying "Do not enter" or "Please be gentle with the flowers," not trampling on them is, in my opinion, the most basic moral self-discipline of a citizen.
That is to say, even though no one has told you not to enter, you should pay attention to the impact of your behavior and consider whether entering will cause any problems. It's very confusing, why people don't care about this, but I think the main reason is that many people may not run their own full nodes, so they are completely unaware of all this. They don't know that the service they are using includes the contributions of others. I think this is important, that is, if you know that the service you are using includes the contributions of others, you may be more restrained. Although that's what I'm saying, it may not have any effect on the current situation, which has already become a market full of speculation and bubbles, so saying these things may be futile and quite frustrating.
Jeffrey Hu: Yes, recently I also heard another claim, which is why it feels like the current inscription is more concerning than the previous OPRETURN. It's called a technological advancement, and Luke believes it's a bug that allows more data to be written now, while previously, methods like OPRETURN wrote less data, so developers may not be so averse to it. But actually, based on what Ajian just said, and including my own understanding, I think the problem is not in this area. It's more about how OPRETURN and the current inscription, including the method of disguising data as a public key signature, are actually completely different mechanisms. Although OPRETURN can also carry a lot of data and be used to issue some tokens or transfer some tokens, OPRETURN and the current inscription, including the method of disguising as a public key signature, are different in that… what? OPRETURN does not exist in the UTXO set. The whole meaning of OPRETURN, as you can see from its name, is that at this point in the script execution, just like in a programming language, it will return, it will exit from the execution process at this point. So, it's like I've exited before all my scripts have finished executing, so this UTXO is actually unspendable, and there will be no way to spend this UTXO in the future. In fact, it can't even be considered a UTXO, because it can't be spent, and the first letter of UTXO should be "unspent," meaning unspent transaction output. This output cannot be spent in the future, so you can see that in later node implementations, the UTXO of this OPRETURN output has been optimized, I think it's an optimization or modification, so this kind of output no longer needs to be recorded in the entire node's UTXO set, so it won't cause any additional trouble for the entire node or network. So, in my understanding, this point may be relatively less controversial, and the pressure on the entire network and nodes may be less.
Ajian: Yes. But for example, using the OP_RETURN method, I actually think that in many ways, the two methods can be interchangeable. Of course, for players like those involved in ordinals NFT, they would hope to be able to write the complete media data of the NFT all at once. How to accomplish this? Let's not discuss that for now. The point is, it's not just about what data you write on the chain, the key issue is the impact on the UTXO set. For example, with BRC20, even if you switch to using the OP_RETURN method to write data to the chain, it doesn't change the fact that it ultimately leads to UTXO set inflation. The problem is that the root cause is indeed the use of a flawed off-chain smart contract system. Even if they switch to OP_RETURN, I personally think that users should indeed switch to OP_RETURN from a certain perspective, because the spending efficiency of BRC20 is actually very poor. It always requires two transactions to truly transfer funds, so using the OP_RETURN method may actually lower the cost.
But anyway, what I mean is that the root cause of the problem is indeed the use of a flawed off-chain smart contract system. Even ordinals, who proposed the tracking of Satoshi as the basis for off-chain smart contracts, recently introduced a new protocol for fungible tokens that completely tracks UTXOs. If people use this method, it won't cause as many problems as BRC20, which I think is more in line with everyone's expectations. But from the perspective of recording this podcast today, I don't know when that day will come, which is very unfortunate.
Jeffrey Hu: We can switch to another misunderstanding or misconception, which is that although Ajian has been emphasizing the importance of running your own full node, many people may think that running a full node seems to have no use other than to mint a new inscription or a BRC20 token a little faster or more efficiently. If there are new features, ultimately it seems that miners have the final say. So, what is the significance of running a full node, or the significance of enabling everyone to run their own full node? Many people may not realize this, especially since I saw a report yesterday that made me feel that Bitcoin is actually different from Ethereum, where neither developers nor anyone else has the final say. Code upgrades must be approved by miner voting, so even if developers insist on an upgrade, miners still have the power to not upgrade, or to fork, or to hinder the upgrade. Yes, I don't know how Ajian would view this point.
Ajian: Earlier, Jeffrey mentioned a term, categorizing soft forks and hard forks into one that is a compatibility upgrade and one that is an incompatible upgrade. But I want to take a step back and remind all the listeners that no matter how you describe it, for such a large cryptocurrency project, whether it's Bitcoin, Ethereum, or any other promising cryptocurrency project, such upgrades are very risky and very difficult. It involves not only advance coordination to determine the content of the upgrade, coordination of various stakeholders in advance, and the way they express their opinions, but also the final activation of the entire network in a certain way, meaning that we can now activate new consensus rules or new consensus rules can start providing functionality for users. The entire process is very complex, requires a lot of effort, and always carries inherent risks, and this doesn't change just because we have had many successful soft forks and hard forks in the past, it's the same for any cryptocurrency project.
So, let's not consider other cryptocurrency projects for now. Let's not consider whether there is a miner voting process for consensus upgrades on the Bitcoin chain. There is such a process. Basically, for important upgrades in the past, such as the ones we consider particularly important, such as the SegWit upgrade and the Taproot upgrade, both of these upgrades involved a miner voting process. But do you think that, for example, as an individual running a node, are you just a passive recipient in this process, just accepting the proposal of the developers, or just accepting the result of the unanimous agreement of the miners? No, that's not the case. Why? Let me give you an example. The SegWit upgrade, as a technology, was actually discussed very early, as early as 2011, which is very early, right? But the upgrade was actually activated before 2017, probably starting around 2015, there was a lot of discussion, even you could say attacks and debates, among different roles, whether developers, miners, or other user groups, there was a lot of debate. One key thing was that some people proposed, I forgot the BIP number, maybe it was BIP 148. The general idea was that if you use a client that implements BIP 148, it would push for the activation of SegWit. What does this mean? It means that if you use a client that implements BIP 148, starting from June, you would directly reject blocks that do not support the SegWit upgrade. What does this mean? It means that as a node operator, if a miner mines a block that indicates it does not support SegWit, you would directly consider it an invalid block. Assuming that the majority of the network adopts the BIP 148 method, objectively speaking, if a large number of miners still do not express support for SegWit, the network will fork, and only blocks expressing support for the SegWit upgrade will remain on the chain recognized by BIP 148 full nodes.
This is a very vivid example that shows what a full node operator can do in such a controversial upgrade. This approach caused a lot of controversy at the time, because some people thought it was okay, but some developers thought it would increase the risk of network forks, so it was a method not worth advocating.
Finally, BIP148 was not adopted by the majority, but it is a case that demonstrates that a full node is not just passively waiting for developers or miners to provide a function or reach a consensus before it can passively accept it. In fact, as a full node operator, you may even be very proactive, although this proactivity may be limited and may have a certain aggressiveness, which is detrimental to maintaining consensus in the entire network. However, it still shows that as a full node operator, your decision-making power is actually greater than you might imagine. This is my response to the topic itself.
Next, I would like to add a few points. First, running a full node has not been able to provide economic benefits to individuals for the vast majority of Bitcoin's history. Recently, in the past six months or so, some players believe that running a full node can make their transactions spread faster across the network, thus providing some benefits, which may even directly translate into economic gains. However, for the vast majority of Bitcoin's history, this has not been true. But we still rely on a full node network to achieve some important properties of the entire Bitcoin network, including but not limited to censorship resistance, and enabling everyone to trustlessly verify the entire Bitcoin blockchain. This includes ensuring that the Bitcoin received is genuine, protecting personal financial privacy, and ensuring that the barrier to entry for mining remains low, which many people may not realize.
Imagine if the entire network is left with only three nodes, all controlled by miners. As a small miner, you would have no way to compete with them, as they could withhold transactions after receiving them. When they don't send the transactions to you, you would not be able to earn transaction fee income, making it impossible for you to compete with them economically. Therefore, the accessibility of full nodes is still helpful, even for the low barrier to entry for mining.
So, yes, running a full node may sometimes bring you some economic benefits, but for the most part, it does not. However, it is still very important. This is why Bitcoin developers are always developing more efficient software, adding more effective rules to protect nodes, and considering whether certain behaviors will cause blockchain bloat and UTXO set inflation, to ensure that under certain common values, the accessibility of full nodes is maintained and does not affect the long-term survival of the Bitcoin network and the value of Bitcoin itself.
Running your own full node may not bring you economic benefits, but it can protect your personal financial privacy, ensure that you can trustlessly verify all Bitcoin blocks, and ensure that you do not receive counterfeit bitcoins. At the same time, you can contribute to the network, helping others access new transactions and blocks in the network, speeding up the verification of new blocks, and lowering the barrier to entry for new miners. These efforts are meaningful, even though they do not bring returns. This is also why we are so concerned about many of the issues we are discussing today, such as whether inscriptions will cause blockchain bloat, and whether BRC20 will bring good or bad things to the Bitcoin network. Clearly, if it only causes UTXO set inflation, then it will only be a bad thing.
Jeffrey Hu: Yes, I think all of these are interconnected designs, and modifying one part may affect other aspects, that's my understanding. I also have some additional points to make, because recently, including myself, we have organized a joint reading activity for the third edition of "Mastering Bitcoin" with Pionex. When I was reading the third edition of "Mastering Bitcoin", I realized that my previous understanding of full nodes was overturned. Many people, like me, used to understand a full node as a node that stores all ledger data, because a full node needs to ensure all data. However, the book provides a very clear definition, which is that a FULL NODE refers to what? It is a Full Verification Node, or simply Full Node.
Translated, it means a node that can be fully verified. This means that you are not just passively storing data, but you can actively and completely verify transactions related to you, which greatly enhances the security of your funds. Correspondingly, there is another type of node called a light node or light client, which needs to verify a node. It may need to get a block header from a full node, then request transactions related to itself, and then bring this information over to perform some comparison and verification. In this process, as Ajian mentioned earlier, there may be some privacy issues, as a full node may scrutinize your transactions and may intentionally not send some transactions to you, especially after observing the information you requested, it may create a profile of your various transaction information, which may pose a risk to your future funds or transaction activities.
Yes, so light nodes may be more concerned about transaction scrutiny or filtering. For example, if I want to make a BRC20 transaction and a full node does not support it, what can I do? It's simple, I can run my own full node. Although I don't know if recently people may have an intuitive motivation to run a full node, at least this may be a benefit of running a full node, no one can stop you from running a full node, unless you may burden the entire full node or network. Yes, this is my understanding.
Additionally, I may add that for miners, they may think that high hash power may have a significant impact on the entire network. There may be a misconception that miners have the ability to do anything with a 51% attack, but in fact, it's not. For example, a miner's double spending actually means that if I want to pay Ajian a sum of money, I may end up paying it to someone else, I just changed the course of my own money. It does not mean that after double spending, I can change any information in the blockchain ledger. If I really do that, it would be another kind of hard fork. Yes, this is also not what people may misunderstand, such as what can happen if a miner has more than 51% of the hash power, or what can happen if there is more than 30% of selfish mining. Yes, it's not like that.
OK, so that's the discussion on the significance of running a full node.
Ajian: Let me add a point, and I guess it might offend some people, I know some friends may have a deep-rooted admiration for power, insisting that having power can accomplish many things, and that power itself is a good thing. Having power means that others must obey this power, or fear the impact of this power. In most of the environments we live in, this is true. But Bitcoin is not the result of this admiration for power. On the contrary, Bitcoin is a hope to limit power, to limit any power, in order to preserve individual freedom, and this is the idea behind its development. So, the software of Bitcoin is not created to give power to certain people, or to give power to certain people. Its fundamental philosophy is that it hopes to limit all power in order to preserve individual freedom, fundamentally contradicting the belief that having great power justifies doing anything.
This is also why I think Bitcoin is very valuable, because not all cryptocurrencies have achieved this, and not all cryptocurrencies believe in this. You will see that some projects clearly have this admiration for power, whether it is the admiration for power or the charismatic personality, the worship of extraordinary personality, regardless of any kind of worship, they do not seek to limit the power of such extraordinary personality.
But Bitcoin does, Bitcoin hopes to achieve a system without a single point of failure, it hopes to create a system resistant to censorship, it hopes that every full node can verify the Bitcoin blockchain data at the lowest possible cost, in order to safeguard personal financial privacy and ensure the freedom of individuals to send and receive transactions. It hopes to use Bitcoin to protect personal property, and protect the ownership of each individual's property.
If you think that having power justifies doing certain things, then you will inevitably not be able to appreciate what Bitcoin is in the end, because in your view, Bitcoin may just be something that allows you to quickly become wealthy and gain power from wealth. This may be a side effect at a certain point in history, but in the hearts of Bitcoiners, or in the hearts of those who contribute to Bitcoin, the world they expect is not like this.
免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。