 Lorenzo asks, where are UTXOs stored? Well, what are UTXOs? They are unspent transaction outputs. They are in the blockchain, meaning that every transaction has transaction outputs. If you have a copy of the blockchain with the transactions in it, the transaction outputs are in that database. They are not in an easy-to-find database, because they are just in the transactions. Unless you know the transaction ID, so you can look up the transaction, and then find the outputs that the transaction has, those outputs are sitting in the blockchain, but not in an easy-to-find way. Now, if you create a transaction index and add a watch address, what your node software, for example, Bitcoin Core, will do is it will create a separate index for the database, your wallet index, that indexes all of the UTXOs by script corresponding to addresses that you are watching, so that at any moment in time it can look up, by address, and find specific UTXOs. In that case, you have the same database, but you have it indexed by UTXO entry, by script entry, script pub key, as it's called, in order to be able to quickly look up all of the UTXOs belonging to a specific address. But Bitcoin Core only does that for specific addresses that you tell it to watch. It does not build that index for everything. So the UTXOs are stored in the blockchain without being fully indexed, and they're only fully indexed when you tell Bitcoin Core to watch specific addresses. Now, if you are building a block explorer, let's say you're running the infrastructure for blockchain info, block stream info, block cipher, or blocker.io, one of these block explorer websites that allow you to search and find the balances of addresses, well, they're building a fully indexed database of all UTXOs and all addresses that they keep updated all the time. That takes a very big amount of disk space to store, and that's a much more complex database. And they do that because they need information, and they can't be calculated and re-scanning that database. So they store a full UTXO set indexed by a number of different indices, so they can look these things up very, very quickly and present them on your screen, and that's custom software that they built to do this. Your wallet doesn't do this. So the UTXO is stored where it's needed, when it's needed, for the purposes that it's needed. Enrico asks, Bitcoin dust, could you please explain what Bitcoin dust is, why it's bad, how it can be avoided, and if in the long run, in the extreme scenarios, it could damage Bitcoin owners or the network itself? Alright, Enrico. So what Bitcoin dust is? Bitcoin dust is amounts of Bitcoin that have become part of the UTXO set that are no longer spendable because the cost to spend them in transaction fees exceeds the value of the Bitcoin itself. So, for example, if I create a transaction, and part of the change in that transaction, or one of the payments in that transaction, is an amount that's maybe a thousand satoshis, a couple thousand satoshis, or something like that, then the cost to spend that single chunk of Bitcoin, that's only a thousand satoshis, is going to be more in fees, or I'll end up paying a significant percentage of it in fees, and therefore it is in practice unspendable. Okay, here's the key point. In practice unspendable, at the current price and fee point of Bitcoin today, that doesn't mean it's unspendable forever. It may become spendable in the future as perhaps the price of Bitcoin goes up, and the relative percentage of fees goes down so that, again, it becomes profitable or valuable enough to spend with a lower fee. So, Bitcoin dust, the definition itself changes. There is a specific definition, which is, I believe, anything under 546 satoshis, I can't remember the exact number, but there is an amount that you simply can't create below. So, there's a minimum amount of Bitcoin that you can create in a UTXO, and that's to prevent the creation of really ridiculous amounts of dust. In the beginning, on Bitcoin, you could create a one satoshi output, which effectively, at any price of Bitcoin, with any level of fee, automatically is dust. You can't do anything with that, so it just sits there unspendable, and it takes up memory and disk space on the Bitcoin blockchain in order to keep track of an amount that really can't be spent. It's like the loose change you find in your couch, where if you carry that around in your pocket, all you're going to do is make a hole in your pants and ruin your pants, and you're not eventually going to be able to buy anything with it, because it's such a tiny amount. So, does it damage Bitcoin? Not really. It just sits around doing nothing, and depending on the level of dust it is, if it really is true dust, like amounts that are so tiny that you can't spend them on the Bitcoin network today, or ever, then it's just going to sit around forever. However, if it's marginally dust, where today at the current fee level, and the current Bitcoin price is not worth spending, but maybe in the future it's spendable again, then it's pretty harmless. This is really about how your wallet is configured to handle these amounts. So, preferably your wallet will be intelligent enough to avoid creating amounts that are too small to spend in a profitable way in the future. So, it will certainly avoid the absolute dust limit that's in the protocol, but it will most likely, your wallet will try to avoid creating any small amount of UTXO that really isn't very useful to the wallet. And that's about having a wallet that does good coin management. So, dust is harmless, but it can be a nuisance. Must the crypto dust in the mempool ever need to be cleaned up due to high usage of RAM for the nodes as time goes, and more transactions can keep dust? Not necessarily. Dust is a problem, but it's not really a problem for the mempool. Dust is a problem for the UTXO set. These are two different things. The mempool is the list of currently outstanding, unconfirmed transactions that are waiting to be confirmed in a block. Whereas the UTXO set is basically the collection of all Bitcoin that can be spent, that has not been spent, which is all of the little chunks that make up the almost 17 million Bitcoin that have been mined so far, that are sitting as transaction outputs and have not been spent. That database is the one that accumulates dust, because if you create lots of really, really, really tiny fragments of Bitcoin, then the database, imagine this, we've got almost 17 million Bitcoin that have been mined so far. And if all Bitcoin is kept in one Bitcoin amount, there would be 17 million chunks to keep track of, but a lot of these amounts are kept in much smaller chunks, which means that there are more than 100 million, I believe, unspent transaction outputs, which are the minimal units of Bitcoin. Among those are hundreds of thousands of pieces of dust, which are very small amounts of Bitcoin, that in current conditions, given the fees and the capacity of the network, cannot be cost-effectively spent, because the amount is small, and the fee would be more than the amount if you created a transaction with them. Cleaning up that dust is not easy, but one of the things you have to consider is that in the future, we might arrive at a time when the value of dust is higher, and there may be circumstances where, due to greater capacity of the blockchain, it is possible to spend that dust in a way that makes economic sense. We don't really need to clean up dust now, it might happen in the future. It is not a problem for the mempool, but it is a problem for indexing the full UTXO set. It does impose a bit of a resource burden on the nodes that are keeping that UTXO set. If they keep it in memory, then it is a RAM problem. If they keep it on disk, then it is a disk access problem. What do you do when you have all of your UTXOs in a single address? What do you do when you have all of your unspent transaction outputs in a single address? Basically, all your coins in a single address. Tim Tim asks, over time, I have accumulated some Bitcoin, but against all advice, all of my UTXO are in a single address. I understand this is bad for privacy, but it is less secure. Once I spend one of my UTXOs, the public key behind the double hash, the address, is revealed, and the key pair is more vulnerable to future attack possibilities. What Tim Tim is talking about there is the rather remote possibility of a successful quantum computing attack in the future. To which address reuse makes you more vulnerable, and no address reuse makes you more resilient. If your public key is revealed only when you make a spend, and if you keep using the same address, then that public key, if one day there is a quantum computer, big enough to crack it, would be a problem. It is a really remote possibility for the foreseeable future. The privacy implications alone are worth reconsidering this situation. If you have all of your UTXO, all of your coins in one address, that means every time you make a payment, the person you just paid, who knows who you are, can look at where the payments came from, and look in that address, and know how much crypto you have, because it is all in that address. From a privacy perspective, it is terrible. What can you do to get out of the situation and be more private and secure? One of the things you can do is construct transactions that send payments to other addresses in your own wallet, in amounts that are not obviously just transfers between wallets that look perhaps like payments to merchants. If you do enough of those transactions, you will spread the crypto you have in that one address across many different addresses managed by your hardware wallet. Tim Tim mentioned he has a hardware wallet, and will also spread some of that to the change addresses in your wallet. All of that will make it a bit more private for you. There are other techniques, which I can't recommend, because it depends on your jurisdiction, whether these things are legal or not. You can use various things like coin-mixing tools, like join-market or coin-join, in order to mix your own coins in your own addresses, so that you maintain better privacy. You need to look up in your jurisdiction whether that is something you can do. A follow-up question for Mark. I would be very interested to hear how to best consolidate UTXOs while maintaining privacy. The answer is, you can consolidate them into bigger amounts, but spread across multiple addresses, so that you still maintain privacy. You don't want a lot of really tiny UTXOs that are very difficult to spend, because if we find ourselves in a situation where network fees go up again, that UTXO becomes unspendable. You look for opportunities where transaction fees are very low, during times when the network is underutilized. You use those opportunities to consolidate small-value UTXO into larger-value UTXO, but you should not consolidate into one address. Instead, you should consolidate into multiple addresses. If you are taking five or six small UTXOs and one part of your transaction, pay it out to five or six different addresses and different amounts on the other side of the transaction, and that is going to break it up a bit. It is not perfect. Again, if you want to do it properly, then you will need to use some kind of join tool that does that properly.