You already have 2 great answers from
thecodebear and
odolvlobo, so a lot of what I say may repeat some of what they've already said. Also, since this is in the "Beginners & Help" section of the forum you'll want to keep in mind that the actual technical details might be a lot different than how you might assume it works from things you've read and heard, and probably even a bit different than the level of detail that's provided in this thread.
I'm a fairly new (eight months) Bitcoin owner,
Welcome! There's a lot of great information available on this forum, and some very knowledgable and experienced people that are all willing to help you understand anything that confuses you. Note, you'll also find a LOT of misinformation, deceit, and outright lies here as well. Be careful, and don't always trust something you're told. Misinformation does tend to be called out when it shows up in public threads, so if you're unsure wait and see who confirms or denies what's being told to you. Be extra cautious about information that is given or requested over direct messaging, since the public won't be able to point out risks to you there.
so have not had a long history owning it,
Even 8 months is significantly longer than the majority of people in nearly every country. Everyone that has had some bitcoin for more than 8 months was at the same point as you once in the past.
but have been interested in it for some years.
Glad to hear it. It's very interesting development.
I'm also an old guy (78 years)
I know 90 year olds that have had some bitcoin for more than 2 years now and that enjoy occasionally discussing bitcoin. Compared to them, you're a spring-chicken.
which definitely puts me at a disadvantage with such a technical product.
You're curious, and you're seeking answers. When it comes to understanding Bitcoin, that puts you WAY ahead of many people I know that are under the age of 30.
I've got a few questions about Bitcoin, and thought this would be a great place to get some answers.
I hope my answers and/or the answers others have already provided are what you're looking for, but if anything needs more clarification, just let us know.
1. I've heard a lot about the process of mining, and how miners are rewarded for their work with Bitcoins, but it's the process of mining I don't understand.
Depending on just how much detail and technical understanding you're looking for, in some ways that can be a very complicated thing to understand. The basics aren't too bad though. You may, however, discover that things you've heard elsewhere, or things that you thought you knew, turn out to be completely wrong. Keep that in mind as you try to learn from what you find here.
I do know there's a great amount of computing power, and energy, required, and I'm aware the process validates a Bitcoin transaction,
Here's the first point where what you frequently hear might not quite line up with the way things actually work. There are 2 processes that are frequently confused, "validating" and "confirming".
Validating is the process of making sure that a transaction hasn't broken any rules. For example, it must include a valid signature, and it can only spend bitcoins that already exist and are under the control of the private key that signs the transaction. This process is performed by EVERY peer node on the network regardless of whether they are performing any portion of the mining process or not. When a node receives a transaction, if it determines that the transaction is invalid, it will not share the transaction with ANY of he peers it is connected to. That keeps the bad transaction from propgating across the network and clogging up communications. Futhermore, since a node is supposed to validate a transaction before it shares it, if a node receives an invalid transaction it may ignore any further transactions from that node for a period of time (to avoid wasting time repeatedly inspecting bad transactions from the bad node).
Confirming is the process of including a transaction into "the blockchain" so that all participants in the Bitcoin system can agree on which transactions have happened and which have not.
Validating is VERY fast, and uses VERY LITTLE computing power.
Confirming is a somewhat random process, but the software is written to try and keep the AVERAGE time between new blocks added to the blockchain close to 10 minutes. If there were only 1 person in the entire world that was performing this action, then it wouldn't require much computing power or energy. As more and more people choose to participate in this activity, the computing power and energy requirements go up to keep the average at 10 minutes (the reverse is also true, power and energy requirements go down when there is less participation).
with Bitcoins being the reward for that validation,
Keeping in mind the difference I explained above, there is no reward for "validation". Every node does it for free. I suppose you could say that "protecting yourself from accepting a false history" is its own reward?
The reward that you seem to be asking about is for "confirmation". That reward is the sum of two things. There are brand new bitcoins that the miner is allowed by the software to assign to themselves (or wherever they like), and there are transaction fees from all the transactions that are included in the block that the miner adds to the blockchain which the miner is also allowed by the software to assign to themselves (or wherever they like). Approximately every 4 years (exactly every 210,000 blocks) the quantity of new bitcoins that the miner is allowed to assign is cut in half. Meanwhile, as bitcoin grows in popularity, the sum of the transaction fee grows. At some point in the future, as the quantity of new bitcoins created gets smaller, the majority (and then eventually ALL) of the reward will come from the transaction fees.
but what exactly is taking place to make that validation, and how does the system both determine it's a valid transaction, and also detect a fraudulent transaction?
As we've all described, if you're asking about mining, then you aren't really asking about the validation. If you're asking about the validation, then you aren't really asking about the mining. Just how much detail are you looking for on each of those processes?
For "validation", does it answer your question to say the following?
- Software checks that the bitcoins being spent in the transaction exist and haven't already been spent elsewhere
- Software checks the total value being assigned to the new "address" is not larger than the sum being spent
- Software checks each of the bitcoins being spent have a valid signature from the private key that they were previously sent to
Or are you looking for more detail about any of those steps?
For "confirmation", does it answer your question to say the following?
- Software selects transactions to include in a "block"
- Software builds a block header for that specific set of transations, containing information about the block such as an identifier of the previous block in the chain, and a timestamp
- Software hashes the block and checks to see if the result satisfies the difficulty requirement
- If so, the block is complete and is broadcast to all peers.
- If not, the header is modified and the process repeats until either a valid block is received from someone else or the difficulty requirement is satisfied
Or are you looking for more detail about any of those steps?
2. How are the individual transactions distributed among the miners?
All transactions are generally shared with all nodes regardless of whether they are mining or not. There is nothing FORCING a mining node from sharing the transactions that it receives with other mining nodes, but unless a miner writes their own custom software, the reference node software generally shares all standard transactions with all peers.
I know that computing speed is critical,
Specifically the speed of computing SHA256 hashes is critical. We've reached the point where the hardware that does this is all specially designed to do that, and only that, as fast and efficiently as hardware designers can get it. That hardware would be useless at any other form of computing.
but is it a race to validate a particular transaction among multiple miners at the same time, or are the transactions assigned to individual miners?
Not exactly. As mentioned, each solo-miner (or mining pool operator) is allowed to use any criteria they like to choose which of the valid unconfirmed transactions they'll include in the block they build. As a practical result, since there's money to be made, generally they all choose the transactions that offer the highest fees per byte. Therefore, they are largely working on mostly the same transactions at the same time. However, since each needs to include a transaction to pay themselves their reward, the blocks will never be 100% identical. Therefore they all get different hash results since they are all hashing slightly different blocks.
If it's a race, does it mean a miner can do all the work but then get beaten to the finish line and not get any benefit from his work?
Yes, sort of. Since it's effectively a random process, there's never any "progress" made towards the solution. Any single hash could be the solution, and if it isn't all you can do is modify the source data (the block header) and try again.
There are about 144 blocks "solved" per day. Imagine that you have enough hashpower to (on average) get lucky once every 14400 blocks. In that case, you could occasionally be VERY lucky and get the very next hash solution. However, you could also get very unlucky and might not get a solution for an entire year. It would be nice to receive 1/100th of the block reward every day rather than waiting to get lucky enough to get the whole thing, but the blocks don't work like that. This is why mining pools have become popular. A mining pool can build the blocks and block headers, and then send those out to pool participants to handle running the hashing hardware. Then, when any single member of the pool happens to get the lucky hash, the pool can can split the reward up and share it among all the participants.
3. What happens to an individual Bitcoin when it's split?
This is going to get a bit more difficult to conceptualize. As others have pointed out, there isn't really anything you can point to in a transaction such that you can say "that's the bitcoin". The word "Bitcoin" is really more of an abstraction that we humans use to make it easier to talk about transferring control over value.
Transactions have "inputs" and "outputs".
An output has a requirement and some value. The value is simply an integer that indicates a total amount of "satoshis" under the control of that output. If someone wants to spend the value in that output, they need to be able to meet the requirement. The most common requirement is effectively a requirement to provide a digital signature of the transaction that can be validated with some data that is embedded in that output requirement. This is how "bitcoins" are "sent to an address". The "address" is really just an encoding of some data that will be needed for validating the signature.
An input is an identifier that specifies an output from some other transaction, and a bit of data that satisfies the requirements of that referenced output. Referencing an output in this way is commonly called "spending" the output. The blockchain rules only allow an output to ever be referenced ONCE in an input. So, once a transaction is included in the blockchain, the output that it "spent" can NEVER be spent again. Transaction outputs that haven't been spent yet are called "Unspent Transaction Outputs", typically shortened to UTXO.
So, a transaction gains control over value by "spending" one or more UTXO (listing them in the inputs) from various other transactions and satisfying the output requirements for each of those UTXO (supplying the valid signatures). It then assigns that value to one or more new UTXO with requirements that someone else has the ability to satisfy, thereby giving them the control over that value.
As you can perhaps see, it's possible to spend just one UTXO, and then create multiple new UTXO each with just a portion of the value from the "spent" UTXO, effectively "splitting" that value into smaller amounts each under the control of multiple others.
Is it a situation where a Bitcoin can be reassembled from it's components after it's been split,
Again, as you can perhaps see from the description above, it's possible to use a transaction to "spend" many UTXO, and create just a single new UTXO, effectively "combining" all that value into a single new UTXO.
or will the splitting just continue until all that remains are billions of tiny components?
When the value assigned to a UTXO is small enough, it can cost more in transaction fees to spend it than it's worth. This is commonly referred to as "dust", and that value tends to be trapped in those outputs unless/until someone decides that they don't mind paying a higher transaction fee with no benefit to themselves.
I'm sorry if these are silly questions,
They are not. They are very common questions for beginners, and there is nothing obvious or intuitive about the answers.
but I really appreciate getting some help to understand the Bitcoin world a little better now that I'm a part of it.
Happy to help.