Bitcoin Forum
September 26, 2016, 01:55:35 AM *
News: Latest stable version of Bitcoin Core: 0.13.0 (New!) [Torrent]. Make sure you verify it.
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: How it Works (for non-geeks)  (Read 2036 times)
Gavin Andresen
Legendary
*
Offline Offline

Activity: 1652


Chief Scientist


View Profile WWW
December 12, 2010, 05:18:44 PM
 #1

I was sent this question in email:

Why can't somebody just create a version of the software that gives you extra bitcoins?

... and couldn't find a good, non-geeky answer in the FAQs.  So I wrote one:

When you spend some bitcoins, the software on your machine has to prove to the software running on everybody else's machine that those bitcoins are valid.

How does it do that? Well, it is a little bit complicated; you've got to understand how bitcoins are created, and how they are traded.

First, how they're created: 50 bitcoins are created approximately every 10 minutes. Everybody who is trying to create bitcoins is in a race to try to find those 50 bitcoins; they are really hard to find, but, once found, it is easy to verify that, yes, indeed, your bitcoin software found them, so you get to spend them.

Second, how they're traded: Imagine you did find 50 bitcoins (well, your computer found them by running the bitcoin software for a few months or a year– they are not easy to find, and are harder to find the more people who are looking for them). You trade them to me by sending them to my bitcoin address. Inside the software, a messages is created and then broadcast to everybody that says “These 50 bitcoins that we all agree are valid are hereby officially traded to somebody else (me– well, one of my bitcoin receiving addresses, actually).”

Now I've got them. If you try to trade those same 50 bitcoins to somebody else, it won't work– everybody running Bitcoin sees all the trades, so if you try to spend the same coins a second time everybody else's software will reject your attempt to cheat.

And that's it– that's how it works. Bitcoins are scarce because only about 50 are created every ten minutes. And you can't claim to have more than you really have because everybody else can check to see if your coins really were created by the “race” process, or if they were from valid trades.

How often do you get the chance to work on a potentially world-changing project?
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1474854935
Hero Member
*
Offline Offline

Posts: 1474854935

View Profile Personal Message (Offline)

Ignore
1474854935
Reply with quote  #2

1474854935
Report to moderator
RHorning
Full Member
***
Offline Offline

Activity: 210


View Profile
December 12, 2010, 06:59:44 PM
 #2

A short simple answer:

If you create some bitcoins, you have to convince the rest of the network that those coins really belong to you.  The only way to do that convincing is that you have spent time with your computer to create a block and "won the lottery" to be able to claim the next block in the network, and more importantly convince others to build off of your block.  If nobody wants to use your block of coins, you won't be able to spend those coins with any other future block.

So go ahead and try to create as many bitcoins as you care, but key to being able to use them is only if the other nodes in the network recognizes your bitcoins in the first place, with a strict set of rules to make that happen.  You can only do that by showing the proof that you have put effort into creating those blocks.

---

BTW, I think the analogy of a lottery is about the best way to explain this to non-geeks as it is something most people at least understand on a superficial level.  Each block is essentially playing a lottery with each attempt at creating a nonce being the equivalent of trying to win the powerball with a new set of numbers.  If you play more often (have more "tickets" or in the case of Bitcoin more hashes per second), the more likely that you will win.  The odds of a single hash "winning" the lottery of the next block hash is actually much worse than the multi-state lotto, where the odds are represented by the difficulty level.  Of course the "winnings" are also considerably less than the multi-state lotto too.

While it isn't a perfectly accurate depiction of the difficulty level, it can be said that a difficulty of 1 is about the average likelihood an ordinary computer (no GPU client) can produce a valid block in about 10 minutes of "playing the lotto" or trying to generate a hash.  Pointing out that the diffculty is now in the thousands range wouldn't hurt either, and that as more people participate in Bitcoin only increases that difficulty.

1FLK3uUT3Vup5JtkGJVXKHAoS3AZWPcKdv
RHorning
Full Member
***
Offline Offline

Activity: 210


View Profile
December 13, 2010, 12:22:08 AM
 #3

Sorry Robert, but I really like the mining analogy the best. It applies so many different ways it's wonderful. The only thing that is harder to explain with mining is the difficulty. The best way to compare that to mining, would be to say that the bitcoins become scarce for finding as the difficulty increases.

Lottery makes it sound more of a game to me. Something that you need to make sure you've entered or a game of chance. Mining however, you dedicate resources to finding the proof of works that will mint you 50 coins.

I like the mining example on a number of other aspects too, as analogies aren't always perfect either.  Mining sort of indicates that steady sustained effort is going to get you the block.

The point though is that the whole thing is random chance based purely upon probability.  The resources, what you devote, is strictly to generate more "tickets".  I'm sure some people feel that way when they buy up blocks of hundreds of lotto tickets as well.  And just like is happening now with Bitcoin, people also put lottery tickets into pools to collectively share any "winnings" based upon various rules of those pools.  I have heard of groups as large as 50-100 people in a pool of that nature win a multi-million dollar lotto too.

The mining analogy breaks down as most miners usually look for a particular vein of ore and stick with that vein where extraction costs and ore quality are rather predictable.  Mining stops when the vein runs out, the mine shuts down, or when the extraction costs become too expensive, such as if the mine gets too deep underground to cost-effectively bring the stuff to the surface.  None of this has analogies to Bitcoin at all.

Also, if you run Bitcoin with a generator for only a few minutes or a couple of hours, your "chance" of finding a block is just the same over the same period of time as if it has been running for weeks or even years.  If you are mining, knowledge of geology and minerals can make a huge difference, as can some test drills to sample rocks at different depths to find what exists "down there".  Mining for weeks will eventually get you something for your effort, where the same can't be said for somebody who has been attempting to generate some bitcoins.  You don't get to 90% of the way to getting a new block.  Either you found it (aka "won" the lotto) or you didn't.  A mining analogy would suggest that a 90% effort to getting the nugget is going to happen where just a little longer similar effort is going to get you that nugget.  That simply doesn't happen at all.

Of course I find that some treat bitcoin creation as a sort of game anyway, and a whole lot of game theory goes into the collection of blocks.

1FLK3uUT3Vup5JtkGJVXKHAoS3AZWPcKdv
farmer_boy
Jr. Member
*
Offline Offline

Activity: 56


View Profile
December 13, 2010, 11:02:48 AM
 #4

I was sent this question in email:

Why can't somebody just create a version of the software that gives you extra bitcoins?

... and couldn't find a good, non-geeky answer in the FAQs.  So I wrote one:

When you spend some bitcoins, the software on your machine has to prove to the software running on everybody else's machine that those bitcoins are valid.

How does it do that? Well, it is a little bit complicated; you've got to understand how bitcoins are created, and how they are traded.

First, how they're created: 50 bitcoins are created approximately every 10 minutes. Everybody who is trying to create bitcoins is in a race to try to find those 50 bitcoins; they are really hard to find, but, once found, it is easy to verify that, yes, indeed, your bitcoin software found them, so you get to spend them.
Why would someone else recognize that I mined some bitcoins? There is zero incentive in itself to do that as you explain it. Why should I not go out and modify my client with the end result being that nobody recognizes any bitcoin anymore and you have a broken system?

Test sending bitcoins to this address: 1P2NYce9Gj2eDN1GQNYaxkjm1npvmdqY4F
davout
Legendary
*
Offline Offline

Activity: 1358


1davout


View Profile WWW
December 13, 2010, 11:06:29 AM
 #5

I was sent this question in email:

Why can't somebody just create a version of the software that gives you extra bitcoins?

... and couldn't find a good, non-geeky answer in the FAQs.  So I wrote one:

When you spend some bitcoins, the software on your machine has to prove to the software running on everybody else's machine that those bitcoins are valid.

How does it do that? Well, it is a little bit complicated; you've got to understand how bitcoins are created, and how they are traded.

First, how they're created: 50 bitcoins are created approximately every 10 minutes. Everybody who is trying to create bitcoins is in a race to try to find those 50 bitcoins; they are really hard to find, but, once found, it is easy to verify that, yes, indeed, your bitcoin software found them, so you get to spend them.
Why would someone else recognize that I mined some bitcoins? There is zero incentive in itself to do that as you explain it. Why should I not go out and modify my client with the end result being that nobody recognizes any bitcoin anymore and you have a broken system?

Because you'll be the only one breaking only your only little subsystem, the network keeping to happily mine and transact while not caring at the same time.

RHorning
Full Member
***
Offline Offline

Activity: 210


View Profile
December 13, 2010, 08:05:24 PM
 #6

Why would someone else recognize that I mined some bitcoins? There is zero incentive in itself to do that as you explain it. Why should I not go out and modify my client with the end result being that nobody recognizes any bitcoin anymore and you have a broken system?

There are two pieces to recognizing a block that is generated:  fellow miners and "non-miners" on the network.

The selfish incentive to somebody who generates a block is that they want to be a part of the "longest chain" (in terms of demonstrated CPU effort), and as a result they want to grab as many blocks made by others and tack their own block onto the end of that chain.  If "their block" is on the longest chain, all other chains or blocks will be ignored by the design of the network.  Nodes which aren't miners will ignore those block chains which don't have that proof of work.  Therefore under "normal circumstances" it really is to the advantage of a miner to recognize any block which is generated... provided it follows the current proof of work standards so it won't get rejected.  Other miners will in turn want to build upon that longest chain as well at the expense of shorting chains.

The "non-miners" will recognize a block you make because you have included their transactions into that block, including future transactions they may be involved with if they are receiving Bitcoins.  Therefore it is in the self-interest of a non-miner to propagate at least the blocks their transactions are coupled with, and on a more general note also other transactions as well if they ever expect to receive some of those bitcoins from others.

1FLK3uUT3Vup5JtkGJVXKHAoS3AZWPcKdv
sarah331
Newbie
*
Offline Offline

Activity: 6


View Profile
December 17, 2010, 09:20:48 PM
 #7

I like this "non-geek" version of explaining things.  For newbies it's very helpful and much easier to follow.  For me, I like the lottery analogy, but it still leaves too much room to be seen as a game of chance.  Anyway, I think we should make an effort to post more "non-geek" versions of things.  Just an idea Smiley

Sarah
 vCloud Director (http://www.bluelock.com/bluelock-cloud-hosting/vcloud-datacenter/)
FreeMoney
Legendary
*
Offline Offline

Activity: 1246


Strength in numbers


View Profile WWW
December 18, 2010, 04:35:50 AM
 #8

I think the lottery analogy only helps if the person is hung up on figuring out why they aren't "getting closer" to finding a block.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
RHorning
Full Member
***
Offline Offline

Activity: 210


View Profile
December 18, 2010, 06:58:21 AM
 #9

I like this "non-geek" version of explaining things.  For newbies it's very helpful and much easier to follow.  For me, I like the lottery analogy, but it still leaves too much room to be seen as a game of chance.  Anyway, I think we should make an effort to post more "non-geek" versions of things.  Just an idea Smiley

From a legal perspective, I'm not entirely sure that running Bitcoin is legal in the particular location I'm at due to anti-gambling laws.  I happen to live in one of the few places in America that doesn't permit a lottery of any kind at all, even though neighboring states (I live about 15 miles from the state line) do sell lotto ticket.

The whole point of the coin generation is all about allocating the initial 21 million bitcoins anyway, and it should be pointed out that transaction fees are likely to be a much larger draw in the long run for running a "miner".  It still is a lottery in terms of who is going to get the next block, but you can demonstrate real "work" being put into processing the transactions to collect the fees, and that is beyond the effort to create the hash to "win" the block.  That might be sufficient to get past the anti-gambling laws... and the fact that no money is being tendered to "enter" the lotto other than using electricity and other resources.  Perhaps more like a sweepstakes entry like the Publisher's Clearinghouse, but you get to keep sending in additional entries to win the "grand prize" that isn't really worth that much anyway.

The purpose of the mining analogy is to hide the fact that it is a probability based allocation system.  You can build off of the concept of a miner to say that a computer is trying to dig through hashes sort of in the fashion like you are sorting through a pile of rocks to find a gold nugget.  Unfortunately that isn't how mineral mining really works either except on a superficial level and only for some minerals as well.  If you wanted to use a mining analogy, it would be more like everybody running Bitcoin is in the same mine and sorting a stream of rocks where from time to time you happen to find a gold nugget.  The problem with that analogy is that it doesn't explain how only one person gets any nuggets at a time or how it stops somebody from working extra hard to find nuggets independently of anybody else.  The analogy really breaks down fast in part because it is a poor analogy.

1FLK3uUT3Vup5JtkGJVXKHAoS3AZWPcKdv
Cdecker
Hero Member
*****
Offline Offline

Activity: 487



View Profile WWW
December 18, 2010, 08:40:25 AM
 #10

Well since there is no single person selling tickets to win the generation lottery (market niche? xD) it isn't technically a lottery. I'd simply say that it's a way to select an attorney that is going to sign and thus verify your transaction.

Want to see what developers are chatting about? http://bitcoinstats.com/irc/bitcoin-dev/logs/
Bitcoin-OTC Rating
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!