So I just set up my own node, but it's seriously out of sync by like 11 years. I managed to create a receive address using the console, and the blockchain sees it, but I haven’t sent any coins to it yet since it’s on a fresh machine. I found out through Google that empty addresses aren't actually stored on the blockchain. So, how come a blockchain explorer can tell that this address is in use?
You already added the address to your wallet what happens is that your wallet software runs a checksum to verify that the private keys are valid and hence brings that address as one of the public keys. Google doesn't do this instead the rely on data from other nodes which will only be visible if you have at least one transaction.
If you really want to scan that address you can look it up in the mempool there the mempool will always recognise it so long it is a valid address even if there's no transaction yet.
The blockchain explorer will look for transactions, their origin, and their destination, but it can also tell if an address is valid based on its checksum. Most blockchain explorers won't search for an address with a bad checksum. If the blockchain explorer returns any results, including a blank list of transactions, then the address is valid.
Google doesn't run a node and doesn't have a memory pool to comfirm if an address has a balance or not. If you search any blochain Explorer with any address, it will return valid if the address is a Bitcoin standard address, by standard I mean, public key, legacy, p2sh and all Segwit addresses and will give you address history if there has been any transaction in the address.
Most wallet has a pregenerated address as gap limit, I'm not sure the type you are using. Each wallet has their limit, you can always increase the list of addresses. You often see receive address and change address depend on the type of wallet you are using.
There are many Bitcoin block explorers and not all of them do verify checksum so you can try with different Bitcoin block explorers with your Bitcoin address that has no transaction history.
Some blockchain explorers will recognize it while some don't.
Bitcoin block explorers list.
For example you can try with https://blockchair.com/ and https://www.blockchain.com/explorer to see diffference.
I strongly doubt if Blockchair will pull up data for an address with no transactions. I've tried it with Blockchair many times and it only works if you have at least only one transaction. On the other hand the mempool space has always been able to tell it's a valid address but just empty every time I tried.
I'm not sure but I think Blockchair only can confirm an address exists if they can find a confirmation from a node to that address. Mempool on the other hand is a memory centre for all valid data on the Blockchain.
There are no public addresses stored in the Bitcoin blockchain, except when someone deliberately stored them in arbitrary data like OP_RETURN data. The Bitcoin blockchain doesn't need to store or know about public addresses at all.
Sounds strange but it is so. A public address is basically a recipe for a specific type of locking script to be placed on some bitcoins. (Loosely transcribed from the beginning of https://learnmeabitcoin.com/technical/keys/address/.)
The Bitcoin blockchain mostly stores transactions which spend previous transaction outputs (now inputs of a transaction) to new transaction outputs where the public address is a human friendly recipe for a locking script to lock those output coins.
Indeed, https://blockchair.com/bitcoin/address/1JetCashLovesNsavesoLDcarsXb67BAh doesn't give much insight, it wouldn't even show an error if you replace any character to invalidate the checksum of this vanity address (don't send coins to it, nobody has the public key or private key for it, I just fabricated it for the sake of demonstration and joy of OP).
https://mempool.space/de/address/1JetCashLovesNsavesoLDcarsXb67BAh verifies if the public address has a valid checksum and should at least display a zero balance for it as long as no coins have been sent to a valid unused public address.
I'd expect many other Bitcoin explores likely work like mempool.space. I only use blockchair.com if I want to create some fancy filters to search for something special.
Yes, you are right about that but you did not read my post carefully.
I mean checking two Bitcoin block explorers: blockchain.com and blockchair.com to see difference. Difference between two explorers is blockchair.com does not give you any information for a Bitcoin address without transaction history while Blockchain.com does has that.
With blockchair.com, it gives you like
With blockchain.com, it gives you like
You are correct.
An address is just a hash of a 256-bit public key.
Because nobody can guess it except for the person who created it in their wallet (you), it stays out of the blockchain.
So the hash lives only on your computer, and is permanently lost if you delete your keys and addresses via file deletion.
Addresses aren't "stored" on the blockchain, but blockchain explorers aren't merely computers running Bitcoin Core with transactions indexed, serving requests about their findings. They are separate software, each may be implemented differently. For example, Blockchair might store all addresses with a balance in their database, so when a new address is requested (that does not exist in the database), it can be sure it is an empty address.
Following up to what others and I already have written.
I run my own full archival Bitcoin Core node. I run my own personal Fulcrum Electrum server which talks to my local Core node and has clever database structures and indices so that it can serve the transaction history of any valid public addresses when asked by a local wallet or local blockchain explorer.
I also run local versions of mempool.space and bitcoinexplorer.org on my home network. My local mempool.space talks to my Fulcrum Electrum server to get any details of what it has to display.
I guess, if I ask for the transaction history e.g. of this fabricated vanity public address 1JetCashLovesNsavesoLDcarsXb67BAh in my local mempool.space instance, it will ask my Fulcrum for the transaction history of that address. At time of this writing my Fulcrum sais: hm, valid address, checksum OK but haven't seen this public address ever, not in my datastructures, must be empty therefore, no pending unconfirmed transactions in mempool of Core node I talk with and responds back to my local mempool.space: no confirmed transaction history, zero balance, no pending transactions, zero unconfirmed UTXOs.
And therefore my local mempool.space shows me
If a public address has any transaction history, all details about it will be served by my Fulcrum Electrum server and my blockchain explorer can happily display all those details.
-Ok, the sir's question was well explained, because the addresses are generated locally, and only you have the knowledge that it is yours.
but, I have a doubt a little related to this.,
for example,
I generated an offline address about five years agoor more.. and wrote down the secret key of it,
but, after five years, I decided to deposit some satoshis at this address...
And then, the question comes to me,
could another person/wallet have generated this same address?(I believe I may have read about it, including something like Satoshi saying that addresses are like grains of sand in the universe and or something like that, but I don't remember) Well, I can check it on
the blockchain, searching for the same address, and check if it was used....
but what parameter would be used, so that different wallets do not generate
the same addresses?, while these were generated offline and have not yet been used,
and their existence is not known?
......
-I also have another question that happened years ago,
once I got a secret key from an address that was generated in the samouraiwallet,
and I used this secret key in the guarda-wallet ,
which gave me access to another address, which was empty due to my unhappiness,
neither the Samourai support nor the guard support knew how to explain,
And/or I didn't explained it in any way they understood.... but did happen.
@ESG your question is quite different with this thread topic, so i suggest you to create new thread.
The short answer is you don't have worry about it, any decent wallet use good RNG source to prevent that.
Usually it's because both wallet use different derivation path.
I was just imagining the both scenarios in the example you gave. But I would say that even after some years the addresses should still be distinct and safe, unless a non reliable wallet was used. If that is the case, it will likely result to poor randomness when generating the keys which will make the 2256 possible values derivatives ineffective.