Thanks so much! I had been trying so hard to find out about this mysterious 'puzzle' that the miners are trying to 'solve' to earn bitcoins. You have it so simple, clear, and fun! :)
Keifer, I do not understand how on earth such a great mind only has 552 subscribers on YT. You explain things so well. Your channel needs to be upvoted big time. Love your work! Keep it up. Cheers from Germany ;)
You son of a gun. I’ve been reading about this for ages and I definitely understood it enough for convincing bar chat, but I never really got it front to back. I don’t know what it was, something about the way you laid it out it finally clicked. Thank you so much
Hello Keifer, Thank you for making this video. I, however, still do not understand it quite clearly. Who/what provides that difficult target? is that in a hash format? Where do we get the block header to generate hash value of it? Is it already existing block header or a new one? if it is new one then is it just randomly generated? If you put this whole process in a flow chart then it will make much more sense. My 2 cents
Just wonderful, I been tryin to find out about "bitcoins" for a while now, and I think this has helped. Ever heard of - Vaneath Crypto Cabotage - (do a google search ) ? Ive heard some interesting things about it and my colleague got amazing results with it.
Awesome video! I feel like this is great for people who have a good background understanding of Bitcoin, and maybe just not the specifics, and the trippy shit at the end is on point!
Thanks so much for this thorough explanation. So much better than all the videos that try to explain „Bitcoin in 5 min“. You really touch down on the details.
Good stuff man.. i would suggest you can include more materials, like pictures and stuff but you did a great job explaining it plus that joke was funny haha
Hi Kiefer, thanks for creating this great video. I'm determined to cut through the jargon and waffle contained within most of the material available on Bitcoin, and this video has helped me a lot. I do still have many questions though, some of which may be very trivial to you, so apologies in advance! Firstly, when you say it produces a hash "below the difficulty target", how do you define "below". I have no programming background, and so I'm not particularly familiar with different numerical systems (binary, hexadecimal etc.), but am I right in thinking that you mean to solve the puzzle you need to produce a hash which is a 64 digit hexadecimal number which is below the hexadecimally expressed difficulty target? The reason I ask is that to a layman it's not immediately obvious that it makes sense to say something can be "below" a string of charachters which contains letters. Am I also right in thinking that to increase the difficulty of the puzzle, you need to decrease the value of the difficulty target? And is that because the hash can only take a finite number of 64 digit values, and so the probability distribution of the time take to solve the puzzle (T), given computational power X, is well known? How does a miner prove that they were the first to find a solution? Also, is any solution acceptable, or does it have to be the solution with the lowest Nonce value? (Intuitively I guess it doesn't have to be, because for someone to verify that your solution is the one with the lowest Nonce value they would have to hash every header with Nonce value lower than your solution to prove that those aren't solutions, which wouldn't be computationally trivial). What determines which transactions are included and how many transactions are included in a block? I still don't understand how we get consensus over what transactions have occurred. Is it not possible for a miner to include a fake transaction that was never actually signed and then solve the puzzle relating to the block containing this fake transaction? What exists in the design to stop that from happening?
Yeah I had a tough time figuring out how to explain the "below" concept. the best I can do is to say it has more '0' at the start. I'm not great with Hex either. Yes, it's designed to be about 10 minutes they broadcast it first, it's conceivable that they discovered it second but broadcast it quicker. Nonce value is just there to give any easy way to change the resultant hash without changing any of the other data. The miner decides the transactions, which is why sometimes there are empty blocks. I'm not 100% sure but I think it's because the protocol / client would reject it, and it would cause a fork because other miners wouldn't recognize the block as valid
Great job. Very clear. But a few questions if anyone is still watching the comments: 1) I heard that a typical ASIC miner has 43 separate chips each performing a hash. If this is true, obviously having each iterate the nonce 1,2,3… would be useless. So is there software that coordinates the chips’ nonces? 2) And then if 1 own 50 miners, how would the nonce coordination be done across all the mining rigs? Thx in adv.
I just found your video and really liked the content! You should consider posting explanation videos on r/bitcoin and r/cryptocurrency I think your content would go great! It's exactly the type of stuff I'd actually like to see and it's the things that can bring more people into the world of crypto because they can actually understand it
Man loved it! Keep doing more. The comedic timing caught me off guard 😄 🤣. I was legit trying to expand my knowledge and understanding. Like everyone else LOL, you throw in, like my life... awesome!. Looking forward to more. 💯
Thank you. Bitcoin been out awhile. I been resistant to even investigate. You answered almost all my questions. But how does this activity generate something of value that earns a reward that's also valuable?
But how do you actually turn in your hash once you find it? Where do you get the previous block’s data from? How far behind does this data lag before getting confirmed? If there’s so many transactions how do they all fit on one chain?
This is a great vid. My question (sorry if been asked before) is: If what changes the HASH is changing the inputs within the header (made up of the 6 inputs), you speak about changing the nounce, but nothing else (ie the nounce drives the changes in the HASH) but there is a variable called Time Stamp. Surely that is changing constantly, and therefore you have two variables changing in the HASH Function making it impossible to eliminate / methodically control iterations of HASH calculations? What am I missing? Or does the time stamp just never move?
Good explanation. Is there anything in the protocols that say the nonce value must start with 1 and auto-increment? I guess my question is do all the mining computers all run through the exact same calculations?
Finally an actual explanation of Bitcoin mining!! I knew what a hash function was but I didn't know about the NONCE! That was the thing that cleared everything up! Thank you!
thank you, great video! and you're hilarious!:-) but i still didn't get: 1. how exactly do miners help to verify the transactions? it sounds like they just solve the math problem and create a next block of the new transactions which occurred recently. however, how and where is the "translation verification" occurs? 2. Also, what if there are too many transactions happen at the given time and not enough mining at the same time, what happens to those translations which haven't been recorded in the block yet? they are not recorded in the block until they mined? 3. and the last dumb questions - where the block-chain is stored? I mean all the records of all transactions? Thank you!
1. With some very complex math much of which is still a mystery to me. 2. they sit in the "mempool". a place where unconfirmed transactions sit until it gets put into a block by a miner. 3. the blockchain is stored on full-nodes by many people. you can download the bitcoin client and store the blockchain yourself!
Whoever finds the solution to the cryptographic hash function immediately broadcasts it through the network, which is formed by whoever runs a full node (bitcoin software), independently if they are miners (provide computational resources to the network) or users (client that runs on a computer containing the full copy of the blockchain). The verification of that solution is easy to perform and does not require the extremely high computational resources previously employed to finding the value of the nonce. The validation of the block is done by full nodes, that check that the protocol rules are valid, if they are, it becomes the next block in the blockchain as agreed to its "unquestionable truth" by the network. If the block fails to follow protocols rules of the information contained in the block (wether its intended fraud, cheating, a mistake, or whatever the reason) that block gets rejected by the network, and the very high cost of the resources employed are lost without any economic reward. The economic incentive (current reward of 12.5 btc to whoever finds the solution to the chf) makes it so that following the rules is profitable, while trying to cheat, extremely costly.
So basically its a big giant waste of computational power. I always thought through mining you 'lend' your machine's computational power to research labs which in turn assign a problem to your machine and upon completing the problem , you get paid for, in form of Bit coins. Imagine all the bit coin mining rigs out there working together in a network to solve real world problems, I dont know, the question of gravity, or how to cure aids. or maybe a simulation of galactic clouds etc etc. That would be something.
Funny enough the rigs are useless for anything other than the one hash algorithm. They are ASICs, meaning "Application Specific Integrated Circuits". Anything not specifically designed for bitcoin mining is too slow to matter.
Hi, at 6:58 you said there are 6 things... but I only took note of 5 Version, Timestamp, Previous hash, Merkle root, Difficulty Target. Did I miss anything? Sincere question as I am researching on the topic. Thanks
sir i have questions.... please reply ... if all minners are fighting for the #right #hash by possibility checking ...which one is right .... !!! then how is the mastermine who already decided the #ANSWER i.e a specific 64 character answer,who also decide the if the if that specific 64 is achieved by any one ... congrats he is the winner... who is the mastermine ...
So there could technically be multiple answers that fit the required criteria right? Also when you say that the output becomes the next block, does that mean that the output will go in the header of the next block under "previous block"? If I understand it correctly, next to the header there are these transactions put in the block, how does this attribute to the answer?
1. yes there are large number of different blocks that could be valid. No single "correct block". This is the fundamental fact behind forks. 2. yes that's what makes it a chain of blocks, each is connected to the last via the hash of the previous block. 3. I'm sorry but I don't understand this question.
Keifer Kif Thanks for the fast reply and awesome vid. My last question was about the stuff in the block apart from the header. I thought that rest of the block was composed of the transactions that happened between bitcoin adresses like a ledger, is that correct? If so, does that information get hashed together along with the header to form the new block?
Also sorry for all the questions :). You are the only one who could give me the answers I was searching. One last little question if you don't mind: How does the system make sure that you become the new block by hashing? Like what makes it impossible to generate a random string that is smaller than the difficulty target and fake that you hashed it normally?
Oh yeah all the transactions are outside the header. But the root of the Merkle Tree is inside the header(the Merkle tree being a hash of all the transaction data). I believe it's = just be the header that's hashed into the next block header
No worries, ask away! I'm happy to help. The protocol has checks and balances built in so that if your block is not legit it will get rejected by all the nodes and miner. Because they can see your block your are broadcasting and do the hashes themselves and determine if it all adds up
Great video! . One questions from my side. 1. Once a user submit a transaction, which all data are broadcasting to the network, So that miners can validate and create the next block?
I love this dudes hidden humor hahaha. But he explained this concept really well. The way he is talking to the camera in person sometimes not sounding 100% sure himself lets you emphasize with ihm more which i kinda like. Other explanatory videos often sound like they understand the concept themselves so well and make you feel really stupid for not understanding it right away. What I also liked is that he immediately addresses the stuff you would ask yourself while listening to concepts like these. For example when he talked about performing the hash on the block header to sovle the problem, I asked myself how they can find a smaller number when the hash is always producing the same shit? He immediately refers to the Nonce at the end of the header which I liked. Other videos often forget these kinda stuff and you are left to research or google it yourself.
I am studing blockhain and i know that a block hash is linked to the next block in previous hash and it cant be changed for valid reason. Reason is : because if someone have changed hash then then he/she would have to change in hundreds or millions of nodes/system also otherwise it wont be valid. My question is : If nonce will be changed by some miner then the hash will also get changed and it should be changing the next block's previous hash. correct me if i am wrong. I mean if a miner can change the hash of a block then how he can replicate that hash in all the nodes or system for that block? this is confusing.
if all you are doing is increasing the nonce by 1 until you find a suitable hash, then wouldn’t that mean the fastest computer would always compute the block first?
Most of the people on RU-vid discussing this topic, just seem to regurgitate what other people have written in books and papers. It's nice watch somebody that actually understands the subject matter they are talking about.
I need help on something. I get the hash thing and incrementing the nonce. What I don’t get is how 20,000 Antminer S19 Pro 100 computers, starting at the same time do NOT arrive at the correct nonce/hash at the same time. Does the one computer with the slightly faster clock always win? To answer my own dilemma, my assumption is that N computers are used within a pool. Let’s call this Pool ALICE. A search range, M, of nonces is identified. M is less than less than 2^256 and is calculated using probability theory. And the nonce range assigned the the first computer is 1..M/N inclusive. The second computer is assigned nonces M/N+1..2*M/N inclusive. And so on. Each computer starts mining at the beginning of their assigned range. They keep doing this mining/nonce assignment thing until one computer in the pool solves the puzzle. The pool claims the block prize and distributes it amongst the N computers in that (winning) pool. If some other pool named BOB solves the puzzle first, then Pool ALICE wins bupkiss and starts mining in the next block. Is this generally how the pools work?
Great video thanks. However after being mesmerised by the psychedelic colour scope at the end I snapped out of the trance 6 hours later with no memory of any of it.
What is the miner trying to achieve by doing Proof of Work ? I understand that makes it difficult to change the block as the hacker needs to perform the computation again. But how or when the transaction record in the block get validated or verified ? For example, how/when the miner is going to verify the the transaction initiated by a peer is actually valid ?
Where do the cryptographic puzzle come from, does it get generated automatically by computer every time a chain block is created. Or someone is creating those puzzles for miners to solve??
As I understood only one miner can "win" BTCs per one block. If block is created every 10 min then there is only 144 blocks per day, 4320 per month. My question is - if there are thousands of miners, are most of them mining zero BTC having zero income per month?
To elaborate, i believe that mining pool split the prize on any blocks mined by the pool proportionately depending on how much hash power u contributed to the hashing of the block.
so, there exists candidate blocks with their headers waiting to be added to the blockchain. i thought if the block is already created, it has to be in the blockchain . ıf this is the case, who creates this candidate blocks ? can you elaborate this piece a little cleaner and further?
im not an expert but, the purpose is similar to encryption, but hash is like a final answer to a problem. It is not exactly encrypted, it just takes very long to solve.
I love the outro. Great video. I wonder, what determinate how many transactions is included in the mined block? Are those blocks made in the front by the bitcoin software and mining is just making a hash for them so they can be added to the chain?