
Sean> How do Bitcoin miners mine? Mike> There's no actual digging involved. Think back to our video on hashing – so a hash function
takes a message of any length and returns a fixed length hash which
hopefully looks quite random right so if you change even a little bit of your
message the whole hash changes, so this is how Bitcoin mining works right in
brief…
So we have a block and at the top of the block is the hash of the previous
block and a number right which we're going to call our nonce this is a number
we're making up let's start at 1 and go up and then here we've got all the
transactions so transactions – one of which will give me some bitcoins because
I'm the miner. The way this works is I start with a random number here and then
I hash this entire thing and I get a hash out the bottom here. To mine
successfully this hash needs to be very very small so let's say for example it
has ten leading zeros as an example if I successfully pick a number where when I
hash this entire thing including the number it has ten leading zeros I've
successfully mined that Bitcoin.
Now that's quite unlikely you've got to
think that each zero & one has a roughly 50% chance of being a one so to get one
leading zero it's going to be about 50% of the time two leading zeros about 25%
of the time and so on the more leading zeros we require the harder this process
is. So it doesn't happen yeah the first time I pick a one I hash it and it
doesn't work so what I do is I go to 2 and I hash it again and I get a
totally different hash which maybe has a different number of leading zeroes and I
go "does this does this work?" no, ok so 3, 4 5, 6, 7, 8, 9, 10 and so on and I just keep
churning away with these random numbers in this "nonce" field here incorporating
any transactions I've received in the meantime until I get this kind of golden
hash that I've been looking for which is very very small so lets say 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 some numbers say 1 0 1 1 and something like
that right now this is sha-256 in the case of Bitcoin
so it's 256 bits long now as soon as I've done that I go well brilliant I've got
some bitcoins i transmit this to the network and everyone sees this and goes
cool and then they take this hash and they put it in the next block and start
mining on that one as well with new random numbers
so every time someone stumbles across a hash which is small enough that's when
they've mined the Bitcoin right and so that's how the difficulty of a network
is changed – you just change the threshold of number of zeros or size of
your hash that you need to be below in order to be successful every couple of
thousand blocks the network will look at how long it took and if like a bunch
more miners have appeared so it's actually starting to get a little bit
too easy they'll they'll increase this difficulty
such that hopefully a Bitcoin is mined roughly every ten minutes
now of course this process is random so it might be less, might be more but on
average…
If a bunch of miners disappeared
suddenly it's taking 50 minutes to mine a Bitcoin (Block?) they'll just reduce this
threshold so that you can mine that little bit more easily. The number of
bitcoins that a miner is awarded is halved every so often as well – so I think is it
at 12.5 at the moment so I will have sort of plus 12.5 for Mike in here as
sort of my benefit of being the miner so this will only ever get actually put
into the blockchain if I'm the one that finds this hash otherwise unfortunately
it'll be someone else's name in here Sean> we've sat here and watched Beast churn
through billions of password hashes – How hard can it be to come up with this
number? Mike> As hard as they need it to be you've got to think that for all the
miners on earth at least a lot of them have got dedicated hardware many
trillions of hashes and they're still only doing it every 10 minutes right
it's not easy to do and they can just keep making this more
difficult until it takes about ten minutes.
In some ways you can't make the problem more easy by buying more and more hardware because it will just make
itself more difficult for you. For now most of my contact with it is via a terminal and I ask it to do things it does them very, very fast. This particular
server has four Titan X graphics cards in it a Titan X is one of the foremost
graphics cards there are new…..