My Bitcoin, Litecoin, and other cryptocoin adventures
You have very likely heard of the term ‘”mining difficulty”, and perhaps you’ve encountered the terms pool difficulty and network difficulty. Perhaps you are a bit confused spil to what thesis terms mean and why the pool difficulty always seems to be so much lower than the network difficulty.
You may even wonder why on earth anyone would want to increase their pool difficulty voluntarily? Well, if you want to learn about thesis topics, you’ve come to the right article.
I’m going to simplify several aspects of this explanation to make it spil effortless to understand spil possible without compromising the core idea.
Bitcoin and its related cryptocurrencies have an amazing capability for self-balance. You’ll see this via the system, but one place where you see it often is ter the mining difficulty. The mining difficulty determines how difficult it is to solve a block, but that may not tell you much so I’ll attempt to elaborate on what that means.
I’ll have to be a bit technical, however, but I’ll attempt to keep it ordinary.
Mining is the process of attempting to find a hash value for a block of transactions. You need to understand what this means to understand mining difficulty.
Building and Solving Blocks
When a miner starts running, it will wait for fresh transactions ter the Bitcoin network. It will then add those transactions into a block of gegevens. Every miner does this, albeit for pools, the pool will accept the transactions and build the block for you.
Example: Alice sends Bobs 1 , which she does through hier wallet by signing a transaction using hier private key. She then broadcasts that transaction to the network, and spil soon spil the transaction has propagated through the miners ter the network, Bob will see that there is an incoming transaction of 1 coming to his wallet.
However, the transaction will still be unconfirmed, it has simply bot added to the blocks that miners will attempt to solve.
Miners will continuously attempt to solve this block of gegevens. The process of solving is a cryptographical task which involves generating a hash for the block. For Bitcoin and several other cryptocoins, the hash algorithm used is SHA-256, and for Litecoin and Novacoin, the algorithm is Scrypt.
A hash is essentially a checksum that is unique for the underlying gegevens (the gegevens is called the message) so that if the message switches, so does the checksum. For example, you can have a hash value for a opstopping or document (the message), and because the hash will be unique for the message, you can verify that the message has not bot modified since the hash wasgoed generated. If someone tampered with the message, the checksum will switch too.
The benefit of a hash is that it is unlikely to predict what it will be te advance without actually performing the computations to generate the hash. However, it is very effortless to verify that a hash belongs to a message, simply by repeating the hashing computation and witnessing that the results are the same.
Solving a block means that the miners attempt to find a hash value for the current block of transactions that is below a certain limit. This limit is determined by the current difficulty of the Bitcoin network. The higher the difficulty, the lower the hash value voorwaarde be.
Because it is unlikely to predict the result of a hashing computation without doing the computation, the only way to find a hash that has a value below a certain limit is thus to perform a loterijlot of hashing computations.
“So,” you ask, “hashing is fine, but if the block or message does not switch unless fresh transactions come ter, why would a miner need to generate thousands or millions or billions of hashes? Wouldn’t the hash always remain the same?”
Superb question! Of course, if the block remained the same, the hash value would also be the same. That’s why miners add a nonce to the gegevens. A nonce is just a random lump of gegevens, te Bitcoin’s case it is an incremental number, that the miner adds to the block to create a unique message. It does this for every computation.
Example: For simplicity’s sake, let’s say the block or message wasgoed AAAA. The miner will add a nonce value to the block, say 1, and generate a hash from AAAA1. If the hash value for that message is not below a certain limit, it will increase the nonce value to Two, and generate a fresh hash from that message (AAAA2). This goes on and on until you finds a nonce that combined with the current block message yields a value under a certain limit.
Once you find a hash value below the certain limit, you have solved the block and can submit the solution to the network and voorkeur your prize. You actually create this prize money yourself, but the other knots ter the network will only permit you to spend it after it has bot verified ter the network. Verification means that your creation transaction voorwaarde be part of a solved block.
Once you have solved the block, however, everyone will embark solving a fresh block by collecting fresh transactions, adding nonces, and solving hashes. Also, at this point, Alice’s transaction, being part of the block you just solved, is considered to be confirmed once. Bob can choose to accept only one verification, or may wait around for other blocks to be solved to further secure that there is no possible way that there is anything wrong with the transaction.
The ‘certain limit’ comes back to haunt us, but that too is relatively elementary to explain.
Why Difficulty Switches
Because the output of a hashing computation is more or less random, the chance of the hash value being below a certain limit becomes increasingly less likely the lower that limit is. The Bitcoin network adjusts the difficulty automatically to ensure that a block is solved around every ten minutes.
Let mij illustrate with an example.
Let’s say, for the sake of plainness, that the hash value range is 1 to 1000, and the difficulty starts at 1, meaning the difficulty is 1000/1 or just 1000. Also for the sake of plainness, let’s say you manage to calculate 1 hash vanaf minute.
You generate a hash, and the chance of your hash value being below 1000 is 100%. Thus you ‘solve’ the block very lightly because every hash value will match.
However, let’s say the difficulty increases to Four. Now you have to find a hash value that is below 1000/Four, or 250. All of a sudden, the chance of finding a hash is just 25%. Still, you manage on average to find a hash after Four minutes.
Let’s further say that wij increase the difficulty to 100, so you have to find a value that is below Ten. Ter this case, on average, you will only be able to solve a hash every 100 minutes.
Eventually, you determine to bring a friend overheen to help calculate. Your friend, strangely enough, is exactly spil quick spil you are to calculate hashes, so now you have a hash rate of Two hashes vanaf minute. With this, you manage to solve the 100 difficulty hash at just 50 minutes.
Bitcoin does not like any of thesis situations because it wants a fresh block to be solved every Ten minutes. Thus, the network will adjust the difficulty so that with the number of people attempting to solve a block, combined they are able to solve one block every ten minutes.
Te our example, because you and your friend solves Two hashes vanaf minute, that means the difficulty should be 20. If your friend falls asleep of chooses to play Xbox instead, your rate of solving drops to 1 vanaf minute again, and the network difficulty adjusts down to Ten again. If two of your friends druppel by, the difficulty increases again to keep the entire system ter a beautiful balance.
Note: The numbers aren’t this ordinary ter reality, but this serves spil an effortless to understand example.
Oh, and other coins have different rates of distribution, but the principle works the same. Litecoin, for example, wants a fresh block solved every Two.Five minutes.
I you are mining te a pool, you may have seen another kleuter of difficulty, which is the pool difficulty. The pool difficulty is usually much lower than the network difficulty.
To understand this, you need to understand how a pool works.
When a miner starts working for a pool, the pool server will send the block to each miner and ask it to commence solving it. However, instead of having the miner solve a block with the network difficulty, the pool sets another, much lower difficulty. The miner then has a much lighter task of finding a hash value that is below that share, and can thus submit their nonce values much quicker.
Of course, it doesn’t help anyone to solve a block with much lower difficulty than the network because the network won’t accept it spil a solution to the block. Thus, when the solutions from the miners come into the pool, the pool checks to see whether the solution is above the network difficulty, and if not, it simply discards the value. If the miner solution is keurig and above the network hash value required, the pool can submit the solution to the network, receive the prize, and distribute that prize to the pool miners spil adequate.
Let mij again vertoning this with an example.
You and four friends, Alice, Bob, Charlie, and Donna, determine to mine for Bitcoin. However, rather than each of you attempting to mine alone, and after all, Charlie is indeed bad at math, so he most likely wouldn’t be able to make much at all, you determine to pool your efforts.
You nominate Charlie spil the pool ‘master’, and the network difficulty is 200, meaning you need to find a number that is below Five (te the range 1-1000 spil te the previous example).
You, Alice, Bob, and Donna starts calculating hashes at a rate of 1 hash vanaf minute. However, you submit your solutions to Charlie even if the hash value is below 100 (meaning a difficulty of Ten).
Why would you do that? Well, every solution that has a number overheen 100 is assured to be a wrong solution, so you can just throw them away. However, you have proven that you have done some work, so Charlie records your subordination for straks sharing of the prize.
Charlie not being spil good with math, can now simply check the solutions you, Alice, Bob, and Donna submit, and see whether the value you submit is below Five too. If not, he can simply throw away the result, and wait for the next result to come ter.
At some point, Alice comes up with a solution of Trio. Now Charlie sees that the number is below the network difficulty and thus submits the solution to the network. Of course, depending on how you agree to share the prizes, you all get a lump of the prize, even if Alice wasgoed the one to find the juist solution.
Here’s a trick question for you: Why doesn’t Alice just keep the solution ter hier pocket and take the entire prize herself? After all, she finds the right number and can lightly submit it herself rather than sending it to Charlie for sharing with the others.
Bitcoin has a trick up its sleeve to prevent that from happening. You see, included te the block message that the pool generates is the transaction that sends the prize to Charlie. Thus, if Alive submits the solution herself, that’s fine, because Charlie still gets the money. If Alice switches the address to hier own then hier solution is no longer valid, and won’t be accepted te the network.
I hope this makes it lighter to understand how mining and mining difficulty works, but feel free to ask questions or leave terugkoppeling te the comments below.
a) Visit my sponsors to let them know you appreciate them helping mij run this webpagina.
b) Donate Bitcoins! I love Bitcoins, and you can donate if you’d like by clicking the button below.
c) Spread the word! To the left, you should find linksaf to sharing this article on your dearest social media sites. I’m an attention junkie, so sharing is caring te my book!