HashKey Capital podcast Hash Out 42 explores the dark side of the moon where the Bitcoin ecosystem is exploding.
Guest: Jeffrey Hu, Technical Director of HashKey Capital;
Ajian, senior Bitcoin researcher and BTC Study contributor
Organization: HashKey Capital

*Explore the dark side of the moon where the Bitcoin ecosystem is exploding, and welcome to the third episode of HashKey Capital’s Hash Out 42! *
*In this episode, HashKey Capital Technical Director Jeffrey Hu will work with Mr. A Jian, a senior Bitcoin researcher and BTC Study contributor, to discover the truth about common myths about Bitcoin. They will spotlight some of the biggest misconceptions about Bitcoin developers, explore the most topical controversies of the moment, and shed light on the decentralized nature of the Bitcoin network. Please join us through the exclusive perspective of Hash Out 42 to restore the untold stories of the Bitcoin ecosystem and imagine the huge space for Bitcoin ecological governance and future development. *
You’re listening to Hash Out 42, a podcast produced by HashKey Capital. In “The Hitchhiker’s Guide to the Galaxy”, after 7.5 million years of calculations and verification by the supercomputer “Deep Thought”, the final answer to life, the universe, and everything is 42. In this program, we hope to share the final guesses about the encryption and blockchain industry with entrepreneurs, investors, developers, community participants, and regulatory agencies from the Web3 universe.
Ajian: “These developers, in fact, they do not have such great power to affect what you can and cannot do on the Bitcoin blockchain.”
Jeffrey Hu: “Luke, what he wants to do may not be to make some modifications at the level of consensus rules, but more at the level of local clients or full nodes.”
Ajian: "The meaning of this conservatism is that it always puts safety at the most important level, so it will not try anything casually. But you can think that it is not conservative, because it discovered If there is a good solution, everyone will actually actively embrace it.”
Jeffrey Hu: Hello, everyone, and welcome to the third episode of Hash out 42, a podcast produced by HashKey Capital. I am Hu Zhiwei, the technical director of HashKey Capital. Today I am very honored to invite Bitcoin researcher and BTC Study contributor Mr. Ajian to discuss some myths about the Bitcoin ecosystem with us. Then Teacher Ajian, why don’t you say hello to our audience friends?
A Jian: Hello, listeners, my name is A Jian, and I am a Bitcoin researcher. I am very honored to receive the invitation from Hash out 42 to record this podcast with Jeffrey.
Jeffrey Hu: OK, okay, the name of our podcast is actually called Decoding the Gatekeeper Myth. We want to discuss Bitcoin, including some common misunderstandings about Bitcoin ecology. Yes, so I would like to invite Teacher A Jian to talk about some recent myths, because just like the title, I guess there may be a misunderstanding that we have observed recently, and it is also what we are doing. Some of the things discussed before in this podcast episode. That is to say, certain developers are gatekeepers, and they basically have the final say on what can or cannot be done. At this point, this is the first myth that everyone may be more concerned about. Is there anything that Teacher A Jian might want to comment on?
Ajian: This is a myth, or an imagination, that has been long-standing in the Chinese world. Well, you can say it is deep-rooted, or even the most fundamental. It seems to Bitcoin developers, especially the so-called Bitcoin Core client developers, that they are the gatekeepers and have the final say on what they can and cannot do. In fact, this idea has almost no truth at all, because a lot of things are, whether it is by one or a few, or by many Bitcoin Core developers, or other clients This thing that developers don’t like is actually still happening on the Bitcoin blockchain to this day, and to this day when we record the podcast. For example, you may have heard of a developer named Luke recently. Luke has a particularly clear position, that is, he opposes randomly stuffing data into the Bitcoin blockchain. Of course, he himself has not clearly expressed how to define this specifically, what is data related to Bitcoin, what is data unrelated to Bitcoin, and what data should not be written. But then I thought about it carefully, in fact, its core meaning, my own summary, no, I cannot represent it, but my own summary, I think it is an acceptable belief, the Bitcoin blockchain Only data related to Bitcoin’s cryptographic security should be written.
Ajian: What is the data related to the cryptographic security of Bitcoin? For example, each of our Bitcoins is an output. In its script, the public key will need to be specified to confirm that the money can only be spent by the owner of the public key (which private key). ), and when it is actually spent, a signature calculated by the private key behind the public key will need to be recorded on the chain, and this signature will prove that the spend is valid.
These things can be summarized as data related to the cryptographic security of Bitcoin, but there are other corresponding data, such as any of these data, which are similar to additional information, or what happened today. Some people If you want to write a birthday greeting or something like that on it, these are information that has nothing to do with the cryptographic security of Bitcoin, so they shouldn’t be written on it. This is my own personal summary, but Luke’s idea may be It’s better to be closer to this idea, or a little more severe. The fact I want to point out is that maybe Luke doesn’t like this, and he may not be the only one who doesn’t like this, but many people will find that these things still exist today. occurs, and what you do is to say that these blocks that record these additional information, which have nothing to do with the cryptographic security of Bitcoin, are still valid blocks. Including many developers who believe that there is actually no way to prevent these things, that is to say, you are actually technology, and there is no effective technical means that can successfully separate what is meaningful and meaningful for the security of Bitcoin. This data is meaningless. Therefore, it is fundamentally doomed to these things. That is to say, at most you can only play a game of whack-a-mole, or a game of cat and mouse, and a mouse appears. , you catch a mouse, but there is no one-and-done solution.
In short, what I want to express is that, first of all, no matter how you understand it, there are some clearly expressed personal positions of some Bitcoin developers. These developers actually do not have such great power to influence What you can and cannot do on the Bitcoin blockchain. In particular, there is a very important thing, that is, if everyone can understand this matter, they should be able to understand that in fact, whether they are developers or miners, their rights are actually within a certain check and balance structure, that is What kind of consensus rules are chosen in the Bitcoin network, that is, what kind of consensus rules are allowed to become a valid block, are chosen by each node. As a node, you can choose your own. This consensus rule that you think is valid. Of course, you cannot choose a consensus rule that is incompatible with others, but as long as it is compatible with this rule, you can choose a set yourself.
For example, everyone is now hearing about the Taproot upgrade implemented in 2021, but in fact if you run a Taproot upgrade to this version of Bitcoin Core or other clients, your node will not leave the network, Your node still continues to perform its verification function as a full node in the network, but it cannot verify the transaction related to the so-called Taproot output. Pushing forward a little further, in 2017, the Bitcoin network was activated After the Segregated Witness fork, if you are using this version of Bitcoin Core or other Bitcoin clients released before Segregated Witness, you can still run on the Bitcoin network today, which means that you As long as you do not run the transactions related to the new Bitcoin consensus rules after 2017, you can still verify the transactions using the consensus rules before 2017.
What does this mean? It explains what rules are used in the so-called Bitcoin network to limit what we can do on the Bitcoin blockchain? These things are actually decided by a Bitcoin full-node network in a decentralized manner, not by a certain person or a certain group of people. Regardless of whether this group of people is, for example, a certain group of miners or a certain group of people. Developers, this kind of thinking is actually far from the truth. What is the truth that is closest to the truth? This thing is the Bitcoin network, a network composed of all nodes. Now the entire network is public, with 15,000 nodes, 16,000, and even more nodes that are not public, and are operated by these nodes. The author uses a completely equal way to decide which part of a block he will verify and which blocks he thinks are acceptable. This is basically a process like this.
Therefore, there is no such role that a certain person, a certain developer or a certain group of developers can become the gatekeeper of the entire network. If such a role existed, Bitcoin would have failed, because Bitcoin wanted to What it wants to do is a censorship-resistant currency, or what it wants is a system without a single point of failure. If there is such a person and he has such great power, he will become a single point of failure. Fault.
Jeffrey Hu: A continuation of the topic, in fact, there may often be a misunderstanding, that is, in a certain network, it is decided by a certain group of people, so it may be that development was mentioned just now They may also be some miners, etc. They may decide the direction or fate of the entire network. So actually this is a common misunderstanding that I think everyone may have. In fact, maybe Bitcoin is more like what Teacher Ajian just said, it is a relatively decentralized network, a relatively decentralized network, so everyone’s operation The full node still has some meaning of its own in this area. In addition, I have actually seen some news reports recently. Just following the topic of developers just mentioned, there are often news reports that mention a word called core developers. Let me talk about my own feelings first. Whenever I see these words, my blood pressure will rise slightly, because I feel that everyone may not understand some of the things behind this developer that Mr. Ajian just said. Concept, because it may be an error in translation, that is, people may not pay attention to the capitalization, and may interpret Bitcoin Core Dev, which is Core Dev with a capital C, as core Dev with a lower case, which is Bitcoin. Core development, but in fact if we want to do a word segmentation, we should actually divide the first two words Bitcoin Core into one word. As one of Bitcoin, the development of an implementation of the full node we just mentioned Developers, not the core devs of Bitcoin, are not the core developers of Bitcoin. It does not mean that the entire Bitcoin network is decided by these core developers. Then you may see some other networks, such as For example, the core developers of Ethereum may often have some meetings, such as ACD calls or meetings, and they will decide, for example, that there may be some hard fork upgrades or something in January next year. ? However, Bitcoin does not seem to have such a centralized core developer group to discuss the upgrade of network hard forks.
Of course, in fact, for example, Bitcoin Core may have some of its own. For example, if a PR (Pull Request) is raised, there may be some PR Review Club meetings to discuss some of this upgrade, or some Is the proposal pulled by PR reasonable, or does it have other impacts? However, no such core developer will decide the direction of the entire network. This may be a common problem among everyone, and it may also happen frequently. I think it is a misunderstanding that you will encounter. Of course, I would like to mention one more thing about this, which is to show that capitalization is also very important. As a person with a little obsessive-compulsive disorder, I will see this kind of c from Core. If the upper case is regarded as lower case, There will be problems. The same is true for HashKey. The k in our HashKey is often lowercase. In fact, h and k are both uppercase. I don’t know that Teacher Ajian has nothing to add to this core developer aspect. of.
Ajian: Yes, actually my reaction is a bit similar to Jeffrey’s, that is, the blood pressure will rise slightly. I even want to make a more exciting suggestion, that is, if our audience friends hear it, then If someone tells you that the Bitcoin core developers wrote it in Chinese characters, you should reasonably doubt the understanding of the Bitcoin world of the person you are communicating with. I say this very rudely, because there are actually two reasons for this. On the one hand, it is a long-standing misunderstanding. My own personal suspicion is that this misunderstanding must have formed before 2017. That is to say, capital Bitcoin is a Bitcoin Core starting with a capital B and a capital C. It itself, this Bitcoin Core, let me first talk about the origin of Bitcoin Core? Yes, it is the well-known software Bitcoin written by Satoshi Nakamoto himself, the successor of this software. That is to say, after Satoshi Nakamoto left, when some developers were preparing to migrate the entire code base to our current GitHub website, they decided to use a new name, that is, Bitcoin Core, which is B too. It’s capitalized. This C is also capitalized. Do you think this Core must have a great meaning? Actually no, I don’t feel it either.
By the way, people may think that Bitcoin Core only has one kind of client in the Bitcoin world, but that is not the case. Because Bitcoin C ore occupies the largest amount of usage, it is the client of Bitcoin Core, but there are actually clients developed in other languages. For example, there is a client called btcd, which is a Lightning Network implementation. This team, LND, is a Bitcoin client developed by Lightning Labs. It is written in Go language, and some people use Java language. After writing this Bitcoin client, I guess someone will try to use Python or rust language to write this Bitcoin client. Yes, these are very common things, and everyone should also consider another point, which is what? I have said before that in the Bitcoin network, everyone does not have to use the same version of software, nor does it have to use the same set of consensus rules. This means that if you are in the Bitcoin network, you may see that although everyone is using the Bitcoin Core client, some people are using version 22.0, some people are using version 0.21, and some people are using version 22.0. It is version 0.17. In essence, although they all use the Call client, their software is different to a certain extent. Strictly speaking, you should not treat it as the exact same software.
Putting these aside, let’s come back. As for the name Bitcoin Core, maybe when people in the Chinese world first understood Bitcoin, they directly translated it into Bitcoin Core, and then Bitcoin Core developers, you can think of it as a kind of It’s a misunderstanding in translation, but what I want to say is that it may also be affected by the second factor, which is that it is a cultural misunderstanding. What is this cultural misunderstanding? Because I am not sure whether this was affected by some later cryptocurrency projects, such as Ethereum, because Ethereum, although it has some developers or supporters of Ethereum, thinks that they use the same technology as Bitcoin. The same governance structure, or about how the entire network should be upgraded, how this upgrade should be coordinated, and how to determine the upgrade content, they think they use similar or even the same structure, but I want to say that this is not the truth.
The development of Ethereum is actually more centralized than the development of Bitcoin software. The key point is that as Jeffrey said, there is no client in the Ethereum world called Ethereum Core. There is no client called Ethereum Core in the Ethereum world, right? In fact, what you can find now is the Geth client. There used to be the Parity client. Now I am not sure if the Parity client is still maintained. There may be some other clients now, and in the Ethereum world, for example It will have a so-called all core developer meeting, which is held probably every two weeks on Friday night. Then it will say that when certain matters need to be discussed, you will invite some people to attend this meeting. Of course Others can observe, but others may not be able to express their opinions, or whether they can express their opinions is not up to you, right? Rather, the meeting itself has an organizer, who can set the agenda.
Then another very important point is that Ethereum uses the so-called hard fork upgrade model. What does a hard bifurcation mean? A hard fork means that if your node does not upgrade and most people upgrade, then you will no longer be able to join the network. You will be kicked out of the network directly for technical reasons, that is, if you do not agree with the upgrade. , or if you don’t want to upgrade your own software, your node will not be able to continue to exist in the Ethereum network. This is a key difference, which means who has mastered this definition of what we want to upgrade. If we want to update the so-called consensus rules of the Ethereum protocol, it actually has a very large power that can cause some people to be kicked out of the network for a reason that they do not want to do. This right actually constitutes the source of what many people understand as the so-called core developer’s power.
And this imagination is true on Ethereum to a certain extent, but it is not true on Bitcoin. Because Bitcoin has chosen a completely different development method, and the entire community culture is completely different from that of Ethereum, I am thinking that on the one hand, this is a long-standing misunderstanding in translation, and on the other hand It is a cultural imagination. This cultural imagination may be related to your own actual life experience, or it may be related to the development methods of some other cryptocurrency projects.
However, this cultural imagination on Bitcoin is largely misplaced, because there is no such mechanism in Bitcoin that can control such a large power, and in fact, there is no such thing. It’s like your own personal experience that someone can have such great power. Instead, I recommend that you try running Bitcoin Core or any other Bitcoin client yourself.
I know I have. I have some friends who choose not to run Bitcoin Core. He made it clear that he does not run Bitcoin Core. He likes to run btcd, right? This is totally fine. As long as you run these clients yourself, you can, or you can even pick some very old versions of Bitcoin Core, or other clients of this Bitcoin software and try to run them, and then you will know how this works. Something happened.
Jeffrey Hu: Actually, I think Teacher Ajian’s answer just now may actually answer another common misunderstanding that everyone has recently, that is, Luke may need to change a new client, so it will be different from many of the current ones. The implementation of Bitcoin Core is different, so he may want to fork, or Luke, then he suggested that Bitcoin Core add some functions to the new version, which may lead to the fork of the entire network. In fact, this is also a comparison A common misunderstanding is that from the public information we have seen, what Luke wants to do may not be to make some modifications at the level of the consensus rules we mentioned, but more. Certain modifications or filters have been made on the local so-called client or full node level, or some modifications have been made on a forwarding strategy, so as of now, it has nothing to do with the fork. And I actually talked about forks just now, but there is another misunderstanding that everyone often mentions, that is, the Bitcoin development culture may actually be relatively conservative, because every time it is a soft fork, Mr. Ajian What do you think of this?
Ajian: Let me give you some numbers, which may help you understand this more specifically. Or let me ask Jeffrey a question. The first question is, do you think the Bitcoin network has ever undergone a hard fork? The second question is if so, how many times do you think it was?
It is now clearly recognized by everyone that the number of changes to the consensus rules of the Bitcoin network is 21 times in total, including Taproot upgrades. However, there are some differences in the way of counting or defining it. For example, one of my favorite Bitcoin workers should be called a worker because he is not a developer. He is Jameson Lopp. He himself believes that the Bitcoin blockchain was formed for some unexpected reasons. In his opinion, this split is not necessarily considered a hard fork. In his opinion, there has only been one hard fork on the Bitcoin network. If I remember correctly, it should be 2013.
For what purpose? In order to add a special opcode to the Bitcoin script, which is NOP, when encountering this opcode, your script should not do anything. When encountering this opcode, you can think of it as just A placeholder, yes. If you don’t do anything when encountering this operation, then this operation that doesn’t do anything is completely redundant. So what is it for? It is to help with future soft fork upgrades.
That is to say, the old node, once upgraded this time, is a node that can understand the syntax of the NOP opcode, so when you encounter this node, you will not do anything. But those nodes that use the new consensus rules, when encountering a NOP operation code, may clearly determine that it has certain semantics, and then execute its semantics, and then complete the so-called consensus rules. Soft fork upgrade, so that’s fun, right? You have had 21 consensus rule changes, and only one was a hard fork, and this hard fork still provided help for subsequent soft fork upgrades. Therefore, it can be considered that among the many upgrades of the Bitcoin network, they are all soft fork upgrades.
So let’s go back to a question, that is, the culture of this soft fork upgrade, regardless of where it comes from, what is its objective impact on the Bitcoin network? Will it make Bitcoin developers more conservative? I think there are two aspects to this. One aspect is that Bitcoin developers are not conservative because of soft forks. In other words, you can think that everyone’s understanding of the Bitcoin network is that there is something for this network. It cannot be sacrificed, that is, security. Security in all aspects includes, for example, if we talk about nodes, can you resist this denial-of-service attack and DOS attack, right? And when you use public keys as individual users, or when you use scripts, is it safe? Or is the consensus of the entire network safe when you execute it? These security features are the most important thing about the Bitcoin network.
Given this most important priority, you will naturally find that Bitcoin developers will not try any possible development direction, and their main development direction must be to strengthen the security of Bitcoin. , this is one aspect. So if some people think that not everything can be done on the Bitcoin network, or that adding new features seems to be very slow, and think this is a sign of conservatism, their first impression is correct. But as for the matter itself, and whether you should understand it as a conservative, I think it is a reservation. Because what I’m going to talk about next is in Bitcoin, for example, in the Taproot upgrade in 2021, it uses the Schnorr signature, which is very interesting. Where is the interesting thing? We know that Bitcoin is the earliest cryptocurrency project to appear. When it first appeared, it chose to use the ECDSA algorithm for electronic signatures, and the elliptic curve he chose was carefully selected by Satoshi Nakamoto. He avoided the one used by more people and chose the one used by fewer people.
Then we will find that many cryptocurrency projects have inherited this, including the later emergence of Ethereum or other projects, they continue to use ECDSA signatures. But there are also some later projects that will use some variants of the Schnorr signature, such as Ed25519. If a friend who knows cryptography will know this Ed25519, for example, in the later Polkadot, he will use Ed25519. There may be some other projects that will also use this algorithm. In fact, this kind of signature is also a variant of Schnorr signature, so it will be very interesting. It was the successors of Bitcoin at that time who continued to choose ECDSA signature. And it is still used today, and it is even planned to continue to be used, or at least when it is not particularly active in using a new signature algorithm, Bitcoin does it for some on-chain efficiency, that is, to save on-chain space. Or in order to make the transactions on the chain more compact, or because of the use of Schnorr signatures, because Taproot also uses Schnorr signatures to achieve a very interesting usage, that is, a single address can include both the key and the key. This spending method, including the spending method of this script, can achieve something like this.
For various reasons, Bitcoin chose to support Schnoor signature. Is this a conservative thing? That is to say, isn’t it a very bold thing in itself? It is an innovation in every sense that I can imagine, a very bold innovation. Just before Taproot was upgraded, on the Bitcoin network, you could clearly distinguish between the output of a single public key, which is generally the form in which individuals save their own funds, and the script output, which is generally possible. It is a personal wallet, or it may be the output form used by a more complex contractual agreement.
Before Taproot, you could distinguish these two outputs on the chain. After the Taproot upgrade, these two output forms were combined into one, which is a very bold thing in itself. According to me, I think this is a very, very wonderful thing, worthy of the word innovation in every sense. So you can say that it is conservative, but it is not conservative at the same time. The meaning of this conservatism is that it always puts security at the most important level, so it will not try anything casually. But you can think that he is not conservative, because when he discovers a good solution, everyone will actually actively embrace it.
Jeffrey Hu: Yes, I particularly agree that this is an upgrade to the Schnorr signature, because now we know that many of the other blockchain projects just mentioned may actually be at least at their own native address. At this level, if you want to add a new signature method, or change the original elliptic curve, there will still be great resistance. It may be due to technical architecture reasons, or it may be due to the entire culture. Or it may be a reason for community discussion. We will see that it will actually be very slow, and some other methods may be used, such as adding it to smart contracts to make it compatible or some other way. But it’s not like Bitcoin. Basically, you can think of it as a native way to add a signature. I actually quite agree with this.
Let’s go back to what happened with Luke’s client just now. It was an additional topic that we talked about just now because it was about forking. In fact, I personally don’t particularly like the word fork. I don’t know A Jian. Teacher, I think the word fork often causes some misunderstandings. For example, the one mentioned just now may cause network partitions due to some computing power or bugs. In fact, it may sometimes happen. What some people consider to be a hard fork or something like that is actually what I understand as a soft fork or a hard fork in the usual sense, which can be replaced by another technical term. Soft fork is actually a compatible upgrade, while hard fork is actually an incompatible upgrade, that is, you add more new functions, which may be your own node, or you think it is the node that originally ran the old software. It cannot appear in the new network. If it is in the Bitcoin network, I actually think this perspective can be reversed. If a node needs to do some hard fork upgrades, it is actually its own If it forks itself, then this is also a relative concept, because it no longer abides by a consensus rule of the entire network.
Let’s talk a little more. This time Luke did this, maybe he wanted to modify the node, but in fact, it happened more at the level of soft fork or hard fork we are discussing. It has not yet touched upon the level of the entire network block consensus, and sometimes there is a heated argument on the Internet, but in fact the more discussion is that this node may actually fork directly, but in fact What he does as a node has not yet reached that level. If we understand it intuitively, Luke actually does it at the level of the entire transaction memory pool, or at the mempool level of the transaction pool. It just does it. Some transaction filtering or some modifications to the forwarding strategy of some nodes.
So how to understand it specifically? I can expand this a little further, because you may have used Metamask or other wallets more often, so we can see that if you want to send a transaction, you basically only need to click a few buttons to make the transaction. It was sent out. In fact, the transaction on Bitcoin, from when you try to write a transaction to the final confirmation, basically I understand that it can be divided into three steps. The first step is the information you need to sign the transaction. This In the first step, a signed message has been generated. The second step is to put this signed information into the entire transaction memory pool. The third step is to package it into the block. This is the signed information. In fact, the process is also very important.
The first step, for example, in the Lightning Network, both parties can actually hold each other’s channels in the Lightning Network. The two parties can hold each other’s part of the transaction information signed by the other party. If the other party does evil, they can use this to I then add my own signature information to the other party’s signature information, and then I can broadcast it to punish the other party for doing evil. So this is a step to use signature information in the Lightning Network. In fact, it corresponds to the first step of issuing a transaction. Then the second step actually means that if I want to send a transaction, I will broadcast my signature information. into the network, and then I allow other nodes to process it. Then the node will do some legality verification after receiving it, and then forward it.
So what Luke is doing this time is actually mainly in the second step, that is, does my entire node need to perform some kind of filtering or processing after receiving it? Because he believes that there may be some transactions like some of the BRC 20 transactions that may put too heavy a burden on the network, so he does not want to forward them at this level or at the level of the mempool library.
So far, it has not actually touched on the consensus level of the entire network. In the end, if the entire transaction is required, in some mining nodes, based on the information in the entire current mempool, including some of the previous block Information, only after calculating the hash value will the entire current transaction be packaged into the block. This is the level of consensus on the entire network.
So you can actually see that Luke’s modification this time is just a modification at the mempool level. In fact, it has nothing to do with the fork. Yes, and I actually thought of an example before, how to explain this matter more vividly. What is the example I thought of? I just don’t know if Teacher Ajian thinks it’s appropriate. I can talk about my idea. In the past, there may have been more people. Some people would go to bank branches with a lot of their own change. I want to save money. For example, I took a dime of 1 million. If you want to go to a bank branch to deposit money, then the bank branch may naturally have two thoughts. That is, there may be nothing you can do about it. Now that you are here, I must deal with it, right? The banknotes you took are all real banknotes, so I will definitely have to process them. This is in accordance with the regulations of the entire central bank. I have to process them. Then it may take me a long time. I may It takes a long time to send a dedicated person to process it, put the money into the currency detector one by one, count it, and then deposit your money into the bank after the processing is completed. Well, this is a kind of thing, so my bank branch is very responsible to its users. Then there is another kind of bank branch that will be annoyed by such malicious customers. Just say, this kind of customer should not come to my bank branch. You can go to other bank branches. I will not accept this kind of too much. As a customer of small-denomination banknotes, if you don’t go to other bank branches, then the customer at this time may have an idea and say, eh, why doesn’t your bank branch follow the regulations of the central bank? Why doesn’t it accept it? Is there a requirement for my client to save money? In fact, this bank branch may be a little unfair, right? I’m not saying that I want to go against the central bank. It’s just my bank branch. I really don’t have more manpower to serve such a small-denomination customer, so I may issue some of my own regulations, such as I won’t handle banknotes worth less than 100 yuan. Maybe I only handle the deposits and withdrawals of whole bills worth 100 yuan. For the rest, you have to find other branches by yourself, or you can simply open a bank branch by yourself. Go deal with it.
So this is actually similar to, if we bring it back to this example, if we think that Luke may be a hard fork, it may actually be a bit unfair to its original meaning. He is not like a bank branch that wants to go there. Set up another central bank to handle the authenticity of the entire banknote, or how to keep accounts. He just feels that this own node may not spend more resources to process transactions like BRC 20 or Inion.
Ajian: Jeffrey’s metaphor is really, really good and very vivid. Let me add a little bit, that is, if most people say that they do not often pay attention to this technical information, they may not be able to distinguish what consensus rules are and what nodes are willing to accept a transaction into their own transaction pool and forward it to others. A node refers to its own rules for other nodes that are connected to itself. One of the above rules is called consensus rules, and the other is called transaction pool rules, or transaction pool verification rules. They are different. .
Why? Because you can think of a consensus rule as one, to a certain extent, you can think of it as a looser thing, why? Because it only determines whether a block is valid, and the so-called transaction pool rules defined by each node only determine whether I want to accept a transaction and forward the transaction, then it Stricter rules than consensus rules may be used.
why? Because the consensus rule stipulates the validity of a block, then the node can naturally delegate part of the work of filtering out invalid transactions to the miners. Why? Because you must ensure that your block is valid, otherwise if your block or transaction is rejected, you will not get any benefits at all.
So you can reasonably assume that he will collect all valid transactions, and because he has already paid a lot of proof of work, I will spend a little more time to verify this block, which is a good thing for me. It’s something that’s completely affordable and doesn’t have too many downsides. But if a transaction comes out of thin air and follows an uncertain path in the network to reach me, you don’t know whether it is a valid transaction or an invalid transaction.
If you have to completely perform verification on every transaction you receive, in fact, this matter itself is very time-consuming and resource-consuming, so the node’s approach must be to confirm this transaction first. There are some characteristics of the transaction that are very simple to verify, and then these characteristics will determine whether I should continue to further verify the transaction, or if it no longer meets these characteristics, I will simply not verify it. I just wait and see if the miner is still willing to package the transaction. If he is willing to package it, I will verify it, right? It is such a process. Most of our listeners or other friends cannot, or are not able to think of this, because the networks that we often use do not have this layer. This is a layer. This is basically exclusive to UTXO or transaction output. It is only when you use the form of transaction output to express a sum of funds and its spending conditions that you need to consider this issue.
why? To give you an example, if you are in Ethereum, all its so-called smart contracts are a kind of account, including your own, which is controlled by a private key, but it is also an account. This design of Ethereum That is to say, all its core purposes, that is, all the processing complexity, must be placed in the contract, and the contract code itself can identify it.
What transactions can be processed and what transactions cannot be processed? All transactions on the Ethereum list are initiated by an external account, right? The serial number used by an external account is called a Nonce value. There may be some ambiguities, but you are right to call it a serial number, because every account has this serial number, and the following This serial number needs to be post-processed, so each account uses an unused serial number to initiate a transaction, and then when it is confirmed by this block, it enters the latest state of the determined Ethereum. Gets processed and then gives you a result, right? So in the Ethereum model, all the complexity is placed in the smart contract account, and its node tries to ignore the final execution result of the instruction carried by your transaction.
That is to say, each of your transactions is actually just a transaction initiated by a certain account, and then some instructions are carried in the transaction, that is, what will be the results of these instructions when executed. The node does not care about it at all, it only cares about you. Have you paid a certain amount of this transaction fee? So for a network like Ethereum, the transaction pool rules of this node are actually very simple, relatively speaking, it will be simpler, because it only needs to verify, first of all, whether your account has enough to pay your gas fee, right? Then it depends on whether your serial number has been used before. If it has been used, it is an invalid transaction. In other words, I should choose a transaction to save in my transaction pool by comparing the high and low gas fees.
As for the information and instructions attached to his transaction, what do they mean? He doesn’t care, he doesn’t care at all, so the rules of his node’s transaction pool are very simple. But in a model based on transaction output, such as UTXO like Bitcoin, the verification of your transaction pool must be more complicated.
Why? Because you will worry about, for example, whether his expenditure is a valid expenditure. That invalid expenditure cannot enter the block. This is a characteristic of Bitcoin. So, you will naturally produce a series of To save its resources, we call it a heuristic method, or some advanced verification measures and rules that are implemented earlier than signature verification to protect this node from being used as much as possible. DOS attack.
Let me give you another very interesting example. I wonder if you have heard of Nervos Network. Nervos Network’s transactions and funds are also based on the output of transactions, but their form is called Cell, right? In fact, its structure is very similar to UTXO, so they will also produce some in the Nervos Network, which is to aggregate some transactions that have been broadcast in some networks before the miners, to do some aggregation for them, and then hand them over to the miners. To make a complete package, an intermediate aggregation layer will be added. The emergence of this aggregation layer is actually due to the characteristics of UTXO, because the characteristics of UTXO mean a lot of your transaction itself and the instructions it carries. It will be clearer, and it will be more complex.
So on this basis, some so-called verification rules for the transaction pool must be generated to help the node determine whether it wants to allow a transaction to enter its own transaction pool. Because when he enters your transaction pool, you have to save the transaction, and you will also forward it, right? It’s something that requires resources, so that’s probably what it’s all about.