text:
PPLNS implementation
Quote from Meni Rosenfeld's post explaining PPLNS:

Choose a parameter X, which represents multiples of D to include in the window when difficulty is static. X=2 is a good choice. When a
  share is submitted, assign to it a score of 1/D, where D is the
  difficulty at the time the share is submitted.
When a block is found, pay (sB)/X for the last share (the one before the winning share), where s is the share's score and B is the
  block reward. Continue backwards, paying each share based on its
  score, until you reach a share which brings the total score of the
  shares counted above X. Pay that share the amount (sB)/(tX) * min
  (r,t), where r is the score required to bring the total to exactly X
  and t is the score of the winning share. Don't pay any older shares.
If the pool has just started, and a block is found before there are shares totaling a score of X, there will be leftover rewards and
  it should be decided what to do with them. It doesn't matter much, but
  I recommend that the operator keeps them (in a macroscopic view, if
  the pool ever changes, this is compensation for the funds needed to
  cash participants out). Other options include donating to charity, or
  distributing among the miners.

So far so good. One thing I'm struggling to understand is where the difficulty of a share itself fits into the picture. How do I scale the reward by share difficulty without screwing up the algorithm?
Update:
What I also would like to know is how to handle cases where the network difficulty recorded with a share is different from the current network difficulty.

Re update: that is exactly what the post explains!  You use the difficulty recorded with a share to compute its score.  The "current" network difficulty (i.e. difficulty at the time the block is mined) never enters the computation at all.

Well, that post is quite old. Variable-difficulty shares weren't a thing then.
That said, I'm pretty sure the fix is as follows: When a share is submitted, the post says you should assign to it a score of 1/D. Instead, assign to it a score of d/D, where d is the share's difficulty. That's it.
Also, you should have a look at https://bitcoil.co.il/pool_analysis.pdf, specifically the "unit-PPLNS" part of section 3.3. It's slightly more complicated, but IIRC it has the advantage that it is still hopping-proof when the block reward can change (which is much more relevant now than it was back then).
As for changes in the network difficulty - the score is based on the historical difficulty, and the current difficulty is not used at all in the calculation.
If this seems odd, consider that if the current network difficulty is higher, than each new share has less chance to become a block and reward historical shares, but on the other hand, have a lower score and thus more shares are needed until the historical share is out of the window. So it evens out.

When a share of difficulty d > 1 is submitted, treat it as though d shares, each of difficulty 1, were submitted simultaneously.

So in essence the algorithm description assumes Diff1 shares and the calculated score must be multiplied by share-dificulty?

@OliverWeichhold: Well, it assumes all shares are of equal difficulty; that difficulty doesn't necessarily have to equal 1.  You could have some "base difficulty" d0, and a share of higher difficulty d is treated as d/d0 base-difficulty shares.  It wouldn't change anything.

Actually, while this gives a reasonable approximation, it's not as accurate and general as keeping it as one share but giving it a score of d/D instead of 1/D.


text:
What keeps a dominant Bitcoin client vendor with the majority of the market share from unilaterally changing the protocol?
I've been asking this in the comments, but I'll be more direct.
If a third-party Bitcoin client, say "iBitcoin" (for example), becomes the dominant client by acquiring most of the market share, what would keep the vendor from unilaterally changing the Bitcoin protocol to their own advantage?
The question
Consider the following:

iBitcoin gains 75% market share because, well, it's so awesome
At some point the vendor decides to change the rules so that it starts mining its own branch on the blockchain, but with a block creation fee that's significantly higher and can be adjusted at will. (See rules below)
iBitcoin users don't care because they are still able to exchange bitcoins back and forth with users of other clients, nor do users of other clients care. It's all hunky-dory in Bitcoin land. (See rules below)

Here are the rules that iBitcoin follows:

The iBitcoin branch is a copy of the main branch, block for block, with the exception that a second coinbase transaction is included paying out to the iBitcoin vendor's address. All coins in the iBitcoin branch can now trace their origin back to either the main coinbase or the secondary coinbase. Let's call these extra coins "new bitcoins" (BTC2). The main branch won't accept transactions from these coins, but that's OK.
Proof-of-work is eliminated in favor of the vendor's digital signature. Block signing happens on a central server.
To keep things simple, a transaction can include as its inputs either bitcoins (BTC) or "new bitcoins" (BTC2) but not both

Now the UI shows new bitcoins separately so that the user knows that these new bitcoins can't be paid to someone who uses a different client (like the Satoshi client), but they can be paid to another iBitcoin user. In other words, iBitcoin users accept payments in BTC or BTC2, others accept only BTC. The two currencies trade separately on the exchanges.
Thanks to the network effect, almost everyone eventually switches over to iBitcoin (or a compatible client). Gresham's law says BTC eventually becomes an item to be hoarded, just like gold, whereas BTC2 is used for day-to-day commerce, just like the dollar.
Please explain flaws in my design of iBitcoin and why it won't work.
Are we in trouble?
What keeps this from happening? As it see it: nothing. It's going to happen eventually. I call it the "embrace and extend" attack.
If this indeed works (and that's my question), then the vendor doesn't even need 75% market share to begin with. It could start with 5% market share and a scheme for giving out 100 BTC2 for every new sign-up, along with a referral scheme so that users have an incentive to bring in more users. Since BTC2 is pretty much created out of thin air, the rewards could be increased until a significant adoption rate has been achieved. Rewards could also be in BTC instead of BTC2, or even in US dollars for that matter. Achieving adoption is no big deal.
Also note that "BTC2" is the red herring here. It's not about creating an alternate currency, it's about creating an alternate blockchain that is controlled by the vendor. Hash power is overrated; if you control the clients, you own the game.
Back to the question: What keeps this from happening?
If the answer is that the Bitcoin community would never accept such a thing, well, sure, I'm sure the "World Wide Web" community said the same back when Microsoft was still working on Internet Explorer 1.0. I wonder how things would have turned out had the US Department of Justice not stepped in.
If the answer is that a Bitcoin client that deviates from the rules of the Bitcoin protocol is not really a Bitcoin client, again, that's like saying a web browser that does not render HTML as per the rules set out by the W3C is not really a web browser. It's technically correct, but it doesn't mean anything. For all practical purposes the version of Bitcoin that has the majority of the market share is the "real Bitcoin."
So I hope that I'm wrong and that there is in fact a defense built into the protocol.

What you are describing there is a client that is a hybrid of Bitcoin and something else.
For instance there is nothing to stop you starting ManishCoin and writing a ManishBitcoinSuperClient. If you can get enough people to believe in ManishCoin then it becomes a useful currency.

So I hope that I'm wrong and that there is in fact a defense built into the protocol.

Why do you need a defense against people having what they want? If people prefer such a system to Bitcoin, then they should leave Bitcoin for this system. People should have what they want.
"People want it but shouldn't have it for their own good" is not an argument people should accept.

Fair enough! I guess the best defense is education.

Where Bitcoin happens is not in the iBitcoin client, but in the mining process. If you take this into account, this is exactly what all the talk about the 51% attack means. If not, then @jim618's answer applies: you'd be using something else than Bitcoin.
And Bitcoin is not only the client, it's the whole infrastructure of exchanges, payment processors, vendors etc. Microsoft didn't turn the internet into Micronet either.

Google is doing a good job of turing it into Googlenet though.

Any attempt to change the rules so that previously invalid transactions are now valid results in a fork. Having 75% of the world hashing power but being on a fork that 75% of the people won't accept is not very useful.

Okay, supposing Pear inc do create iBitcoins using the protocol you suggest.  I would expect that BTC2 would plummet on the currency exchange relative to BTC.
Here's why:

BTC2 can be printed by Pear inc and nobody trusts them.
1BTC2 must be worth < 1BTC since the spender could just spend the BTC directly in the BTC2 blockchain
1BTC2 must be worth < 0.5 BTC since the spender could swap the BTC in the BTC blockchain for another BTC after spending it in the BTC2 blockchain
1BTC2 must be worth < 0.25 BTC for similar reason
and so on

Of course, this only shows that the particular "embrace, extend, extinguish" attack you describe will not work.  They may be others that will.  What I think is needed is a Bitcoin vulnerability database....

This would amount to a Trojan. The only difference between the "attack" you're describing and a legitimate version upgrade is whether people are aware of the changes they've agreed to, and that depends on how closely the behaviour and code are being scrutinized by the community and whether the distribution chain is trustworthy. This probably has a lot to do with why nontechnical people tend to distrust cryptocurrency and what's built on it.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
litecoin minerd errors
i have run through this tutorial but when i run:
c:\ltcminer\minerd.exe -a scrypt -r 1 -t 4 -s 6 -o http://127.0.0.1:9332 -O pete345234.2:1

i get errors:
json_rpc_call failed, retry after 30 seconds

do i need to use the litecoinpool.org url instead of 127.0.0.1? also does the password matter for minerd.exe
i'm a bit stuck...
edit 1
i changed the command to this:
c:\ltcminer\minerd.exe -a scrypt -r 1 -t 4 -s 6 -o us2.litecoinpool.org:9332 -O pete345234.2:1

but still the response is the same error message.

minerd was too old a version:
minerd --version
cpuminer 2.2.2

i downloaded cpuminer 2.3.2 and now everything is sweet. the command to get minerd working is:
minerd.exe -a scrypt -r1 -t4 -s6 -o stratum+tcp://us2.litecoinpool.org:3333 -O pete345234.2:1

Yes, use your pool adress instead of yours.
Password usually doesn't matter, however you can set it on pool website.
This tutorial shows creating your own pool, but since this question also shows that you are a begginer, start by mining by someone else.

it doesn't work. any more ideas?

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Bitcoin block hashing algorithm. nonce
Referencing the Bitcoin wiki, what is the auhoritative source for providing a hash of the previous block? Or do miners keep listening to latest blocks?
How is hash of the Merkle root generated?
Can a miner generate a block with no transactions? That means generating block by keeping hash Merkle root as all 0s.
One more question:
nonce size is only four bytes (32 bits). Given version, previousBlockHash, hashMerkleRoot, bits are constant, would it not be very easy to iterate through all possible nonces?
2^32 = 4 G = 4 G hash machine can finish this task in one second.

-1 Please ask only about one topic per question post.

What is the auhoritative source for providing hash of previous block?
  or do miners keep listening to latest blocks?

There's no authoritative source, that's the whole point of Bitcoin. Miners keep listening for latest blocks, yes. They decide for themselves which block to accept. And since all miners (and clients) are programmed to accept only valid blocks (where its header hash is equal or below than the current target) they soon reach consensus upon which blocks are valid.

One more question: nonce size is only 4 bytes(32 bits). Given version,
  previousBlockHash, hashMerkleRoot, bits are constant, would not it be
  very easy to iterate through all possible nonces? 2^32 = 4 gigs = 4
  gig hash machine can finish this task in one second.

More often than not, just that 4 byte nonce is not enough randomness to find a block. Miners constantly add new transactions - therefore the hashMerkleRoot isn't really constant.
Also I think there's an extranonce field which adds more space.

You cannot create a block with no transactions at all. Every block needs a coinbase transaction which claims fees and subsidy for the miner. Because of that, the merkle root can never be emoty. Also, it is inside this transaction that the extraNonce is located, so it affects the block header through the merkle root.

@PieterWuille thanks I removed that part of my answer. Perhaps you can answer more specifically on the issue of the transactions as I also wasn't aware of it.

@PeterWuille Could you please point me to any documentation about extraNonce and generating MerkleRoot.

@Htaras the extranonce is documented here:
https://en.bitcoin.it/wiki/Transactions#Generation
Miners also tend to play with the block time to add extra randomness, especially in pool mining. This is one of the reasons block times are a little all over the place.


text:
Wladimir's new GPG key
I just went to install the latest version of bitcoind and discovered that Wladimir has signed the https://bitcoin.org/bin/bitcoin-core-0.12.1/SHA256SUMS.asc file with a new GPG key: https://bitcoin.org/laanwj-releases.asc. His previous key was https://bitcoin.org/laanwj.asc.
Some Googling turned up this notice on reddit but he doesn't say why he started using a new key. Does anybody know why he switched keys? Are there any good reasons to switch keys? Should I be worried?

I chatted to Wladimir about this. He hasn't switched to a new key, he's just using a separate key to sign binary releases.
Additionally, he has signed the new key with the old key, so there's an audit path.

any idea why he's using a different key to sign the binaries?

Separation of responsibilities - if one is compromised it does not compromise the other, and it can be revoked without affecting the other.

Maybe he is worried his old key was compromised somehow? If that is the case I would be careful about trusting anything signed with the old GPG key after the soonest date it could have been compromised.
I don't see a reason to worry about future releases he signs with his new GPG key.

in the reddit notice he says he is continuing to use his old key to sign git commits, so he must still trust it.


text:
Nonce in Merged Mining
When mining Bitcoin, the nonce is included in the header, which is then hashed and checked to see if it is below the target threshold.
Everybody can verify that the header does indeed hash below the threshold. However, in merged mining, according to the wiki, the hash of the auxiliary chain's header is included in the parent's coinbase txin script without the opportunity to change the nonce in the auxiliary chain. The parent's nonce is incremented as usual but the aux hash remains the same.
How can we then verify the auxiliary chain?
is it because the parent nonce makes its way into the auxiliary chain through the parent header's hash? even so it seems that this would not help for verification because the aux chain's hash no longer need meet any threshold criteria.

To verify the auxiliary chain, you need to prove that a certain amount of work has been done upon the latest block in that auxiliary chain. As with any form of mining, this involves computing a hash to be below a threshold.
However, it doesn't matter that the pre-image of the hash has a lot of other irrelevant data in it too, so long as it contains the relevant auxiliary-block header in there somewhere. I.e. from a proof-of-work perspective it makes no difference if you calculate this:
while(h > aux-threshold) {
    h = hash(aux-header + nonce)
    nonce++
}
result = nonce

versus this:
container = hash(hash(aux-header) + other-data)
while(h > aux-threshold) {
    h = hash(container + nonce)
    nonce++
}
result = nonce

Both will take the same amount of work and both will prove that the work has been done on aux-header. This is so because container can be proven to contain the aux-header, and since aux-header and other-data are stored in the aux-chain block and the hash can be re-computed at any time.
So, for merged mining, container is actually the hashed header of the parent-chain block and aux-header just needs to be included in the parent block somewhere. It really could be included anywhere so long as the parent block passes the verification process. For example, you could include the aux-chain-header-hash as an address in a multisig transaction, or as a piece of data that gets placed on the stack but never popped off in one of the transactions. Yet, the easiest place to put it is in the txin script of the coinbase transaction. This always contains arbitrary data anyway, and its location at the top of the chain means that other-data can contain the smallest number of merkle branches.

why the downvote mystery downvoter?

Please consider using proper capitalization, it makes longer texts much easier to read because sentence beginnings are more visible.

You verify the auxiliary chain precisely the same way, except you must also check that the auxiliary chain's header is properly included in the parent's coinbase. From the point of view of the auxiliary chain, you can think of the entire primary chain header as part of a giant nonce.

i think its not so useful to think of the primary-chain-header-hash as part of a nonce, since the primary-chain-header-hash must be below the aux-chain threshold, whereas nonces don't have this property of needing to be below a threshold.

@mulllhausen If you define nonce as "value the chain doesn't care about that get hashed to produce a value that must be below the target" then it makes sense to think about all the primary chain stuff as part of the nonce on the auxiliary chain.

but we do care about some of the values in the primary header - for example a correct merkle root is a requirement. i agree that parts of the primary header are equivalent to a nonce - just not the whole thing.


text:
only getting 52khs on Litecoin mining with a Nvidia GTX670
I want to give mining a try with the current video card i have. I know its not good for mining but its a start. I use cgminer and link it with WeMineLTC. For some reason I only get 52 KHash/s. I saw my GPU is at 100% and it isn't overclocked. What should be the reason I only get this low hash per second? I saw on this page it should be around 112 000 KHash/s.
This is my bat file
cgminer.exe --scrypt -o stratum+tcp://global.wemineltc.com:3335 -u workIt -p totallymypsw -I 13

You shoud instead use cudaminer for this. I use the same card and I have a mining rate of 150khash.
The reason why you get a low mining rate is because Nvidia cards use CUDA cores to do most of their calculation and most of the miners do not use them since the best graphic cards for mining are AMD cards (and they do not have CUDA cores).
I dont know where you saw that 112 000 Khash/s (mostly because you forgot to give the link) but I doubt that a single card could do that with litecoins (but its possible with Bitcoins).

I added the page. So the Hash rate of bitcoins is different than litecoins? Thanks for your answer!

Yeah, your link is for Bitcoin mining, refer to this page for Litecoin mining: https://litecoin.info/Mining_hardware_comparison

Actually didn't know what hash per second was. I thought it was a standard value like Mhz but it more like complete calculations per second. Thanks for your help!


text:
What happens to a person's bitcoins if they should happen to die prematurely?
What happens to a person's bitcoins if they should happen to die prematurely?  Will those coins be lost forever if no one knows that person's wallet info?

Yes. Those bitcoins will never be used again unless someone creates a private key that hashes to the same public key.


text:
Can blocks remain capped to 1MB forever?
This is perhaps more of an economics question than a bitcoin question, but I'm wondering if it would be viable to leave the block size capped at 1MB for all time and simply let a series of rules govern which transactions get included into a mined block, e.g.:

paying a higher fee gives higher priority
older coins get higher priority
bigger spend gets higher priority
etc

This would incentivize people to rely more on off-chain transactions (e.g. gyft cards), or sidechains, to accumulate many payments into a single transaction, and perhaps to delay transactions if they do not wish to pay high fees. And one benefit would be that the blockchain would not grow beyond a size which would fit on a single user's hard disk. This would keep bitcoin decentralized without any need for a hardfork.
Are there any fatal flaws to this notion?

According to Andreas Antonopolis:

Blockchains are never going to scale in the base layer, but Bitcoin can [scale] and its going to be a combination of both second and third layer scaling, as well as base layer scaling. We'll increase the block size again - already did - we'll do it again, if necessary - not to support bare transactions, but to support more second layer scale on the base layer, when necessary.

I think by "second layer technology" Andreas would include:

lightning networks
sidechains
other kinds of off-chain transactions
etc

And it should be noted that he has said before that he would not advocate any current implementation of bitcoin technologies at risk of getting burnt again.

The blocksize topic correlates directly with the current 7 transaction per second (TPS) ceiling Bitcoin has that was recently brought to light before US Congressional Testimony. https://en.bitcoin.it/wiki/Scalability describes the 7 TPS ceilings under "Current bottlenecks".  Ignore block framing data fields, the 7 TPS limit implies that ~4200 transaction (10*60*7) with each being ~238 bytes in size fitting nicely into the 1MB block brown bag. A careful examination of the top of blockchain-dot-info will indicate the real world is a little more complex, and the 7 TPS ceiling is extremely optimistic, most transactions will be significantly larger than 238 bytes size! My mining Payouts alone are ~4K in size.
The tweaking of the blocksize a very hot/political topic. Remember the March 12, 2013 Bitcoin forked Blockchain issue??? (http://bitcoin.org/en/alert/2013-03-11-chain-fork) It is too early for me to tell what the trade space pros & cons [system's engineering truth concerning the trade space analysis of alternative (AoA) results for backward compatibility, scalability, security, sustained decentralization... measures of effectiveness (MOE) and measures of performance (MOP)] is for increasing the current 1MB block size in the Blockchain.
Ignoring state politics, in the end, the dynamics between stability of developer solutions, hardware engine solutions, miners and pools will ultimately determine the block size(s) supported in the future.
See:

http://keepbitcoinfree.org/
https://bitcoin.stackexchange.com/tags/blockchain-fork/hot
http://www.reddit.com/r/Bitcoin/comments/1owbpn/is_there_a_consensus_on_the_blocksize_limit_issue/
http://www.reddit.com/r/Bitcoin/comments/ioeob/an_alternative_to_supernodes/

+1 Concerning your "censoring the sharing of truthful public information really sucks". I am not sure what you are referring to. New users can only use a limited number of external links in posts, somebody already suggested an edit to your answer in order to fix them. If you are referring to something else, please feel free to open a question in [meta]. Altogether, it is more constructive to keep content (Q&A) and discussions about how bitcoin.SE works separate.

simply let a series of rules govern which transactions get included into a mined block

The Bitcoin protocol has no way to enforce such rules.  Miners have complete discretion as to which transactions they include in  a block.  Your first suggestion (higher fee gives higher priority) will happen naturally if miners are greedy, but there's no way to make them select blocks on any other basis, nor any clear way to incentivize them to include older or larger transactions.
If such rules were to be mandatory, at minimum there would have to be a hard fork to adopt them into the protocol, and even then it's not at all clear what the new protocol would look like.   Suppose a miner omits a "high-priority" transaction in favor of one to which your rules give lower priority.  If the rule is mandatory, then his block should therefore be invalid.
But remember that it has to be possible to validate the blockchain after the fact. If someone is downloading and verifying the blockchain months later, how will they have any way of knowing that this high-priority transaction was in the mempool at the time and therefore this block is not acceptable?  This seems unworkable.
Bitcoin Core used to follow priority rules by default, with some block space reserved for transactions with high "bitcoin days destroyed" (older and larger), but this was strictly voluntary, and any miner could patch the code or use different software if they wanted to do something different.  Their blocks would be accepted just the same either way.  And in fact, as soon as transaction volume reached the point where it was more lucrative to include higher-fee transactions over those with higher BDD, miners began to do so in short order, and eventually Bitcoin Core gave up and removed its BDD rules in favor of a purely greedy algorithm.

"eg" means "for example". You could really put anything in the dot points in the original question - it doesn't have to be exactly what I wrote there. And likewise with the example of gyft. Also what you write here, is not true: "But remember that it has to be possible to validate the blockchain after the fact." segwit is one case where it is no longer possible to validate a block by purely relying on the bitcoin protocol (signatures are no longer stored on the blockchain with segwit).

Actually, I believe it fits the classical definition of a soft fork, since no previously invalid block would be declared valid. Enforcement would require only that previously valid blocks/transactions are made invalid, which is a soft fork. Soft Fork on investopedia.com | Softfork and Hardfork in Bitcoin terminology on bitcoin SE

@mulllhausen: There might be a semantic argument here.  You could say segwit adds additional data to the blockchain.  Alternatively, under segwit you can still validate the blockchain after the fact if you have some additional data which can itself be validated after the fact.  But for any prioritization rules I can imagine, I can't think of any way that you could prove after the fact that they were obeyed, that doesn't create severe vulnerabilities or centralize the currency.  Even allowing for a soft or hard fork.

@NateEldredge yes i think it is a semantic argument. you misunderstood my usage of the word "rules" in the question. i was not necessarily intending "rules" to mean "the bitcoin protocol". i was mainly thinking of economic rules, which is why i said, "this is perhaps more of an economics question than a bitcoin question" and went on to talk about incentives.

@mulllhausen: Okay.  But it's not clear to me how you could give miners an incentive to prioritize in any way except highest fee.

@NateEldredge what is good for bitcoin is good for holders of bitcoin. that includes miners.

It's worth the time to read the December 2013 three page "Chicago Fed Letter" titled "Bitcoin: A primer" description that the Federal Reserve has about Bitcoin, see http://www.chicagofed.org/digital_assets/publications/chicago_fed_letter/2013/cfldecember2013_317.pdf.  There is truth in the assertion that "There are on average about 30 bitcoin transactions per minute (Visa transactions average 200,000 per minute). The average bitcoin transaction size is about 16, i.e., on the order of $2,000 (the average Visa transaction is about $80)". See https://blockchain.info/charts/n-transactions-per-block for the truth about Bitcoin transaction rates. This is at the heart why the Bitcoin block size is so contentious. For existential reasons, extreme care has to be exercised by the Bitcoin Community for picking a course of action. Strategies need to be established to not grow too quickly, and establishing symbiotic crypto currency allies to load balance the anticipated demand for crypto currency transactions while an optimal an optimal decentralized architecture is identified enabling Bitcoin to scale by at least three orders of magnitude while sustaining it decentralized characteristics. Making block sizes too large will leave mining operations in the hands of only a few, which puts us back into the same centralized banking paradigm. This is the big challenge! Some big decisions need to be made. Bitcoin Technology is in its propeller-driven bi-plane era, getting it into the space/jet-age will take considerable work and cooperation.

Increasing the 1MB limit is already in the works. It will happen soon. Having users run into this limitation would ultimately hurt bitcoin. It wouldn't make sense to cripple bitcoin in one area in attempt to incentivise it in another. I think there are better ways to incentivise bitcoin gyft cards.

do you know what the new limit will be? and will it result in an unmanageably large blockchain? or are there other changes planned to compress/prune the blockchain being implemented simultaneously too?

I don't think they have decided yet on the new limit. Bitcoin clients don't have to hold the entire blockchain. Right now most clients do, but I'm sure we'll see options to let users opt out.

Interesting looking back at this: "soon" was about four years, and even then it was increased modestly and in a roundabout manner (segwit).

I do not believe that blocks will remain capped at 1MB forever and BIP141 changes things slightly. For one thing, it doesn't make economic sense for blocks to remain so small as the block reward is reduced, as it erodes the utility value of bitcoin through ever higher fees as demand is increased. This is also reflected in the value of BTC.
I do not believe that block size should be unregulated or any larger than is necessary.
In simple terms, if each miner makes a block that is (current average valid network-wide mempool transaction count) x ( 1 / (144 x n days ) ) = number of transactions to be included in block then in n days all valid transactions will be confirmed and all fees collected. This could account for a far higher amount (and cash value!) of fees than current user frustration through limited supply and all its complications would eventually allow. At the moment this user frustration is called an auction model for limited bandwidth.
The first difficulty to resolve is, how to determine current average valid network-wide mempool transaction count since the mempool is not in consensus? And how many should be n days?
See also this answer:
https://bitcoin.stackexchange.com/a/69478/75001

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Can each Bitcoin and Satoshi be uniquely identified?
I'm pretty sure I've read somewhere that BitCoins have an "address", so they can be uniquely identified.
What I want to know is:

Does each Satoshi have it's own unique identity?
How is the identity of a Satoshi formatted? (providing 1 is true)

Bitcoins and satoshis do not have unique identities.
However, Bitcoin balances are stored in uniquely identifiable "transaction outputs" that can only be spent by the owner of the recipient address.

Example:
   Alice sends Bob 1 BTC, Bob uses it to send another payment.
When Alice sends Bob a payment of 1 BTC, she signs a transaction that deducts 1 BTC from her funds and creates a new transaction output that is worth 1 BTC and can only be spent by Bob, the owner of the recipient address.
Bob now wants to send 0.4 BTC to Charles. The transaction output from Alice's transaction is now used to fund this new transaction. The transaction creates two new outputs: One with 0.4 BTC that is associated with Charles' address, and one with 0.6 BTC associated with Bob's address (it is the change). The first transaction output (from Alice's transaction) is consumed by the transaction.

Unspent Transaction Outputs are identified by the (unique) hash of the transaction they were created in, and their position in the list of outputs.

Can each Bitcoin and Satoshi be uniquely identified?
1. Does each Satoshi have it's own unique identity?
No.
If I show you transaction xyz on blockchain.info, you can see where the groups of satoshi's have gone (the transaction outputs) and you can see where the satoshi's have come from (the inputs) BUT you cannot identify which of the input satoshi's are given to each of the outputs.
You can also click on each input to find the transaction whose inputs were spent to create that output, and you can do this all the way back to the coin genesis every time but every time there is an input and an output all of the satoshi's are grouped so you cannot find an individual satoshi.

Each user of bitcoin need have at least one address to receive coins. I just created an address 18TGt8oGgLzkCpjxMbiRfvbDo9NqGisopp, which due to the properties of how it is generated, is presumed to be unique.
If someone sends me any bitcoin they will be taking a coin from an existing balance on THEIR account (another bitcoin address) which will need to be signed using their private key. Once the transaction has been broadcast to the network, it will eventually make it into a block which will allow you to then spend it by signing it over to someone else.
While balances are generally expressed to users in whole bitcoin units, or sub units such as bitmil, transactions are expressed in satoshis. For example, if you were to give me a 1 bitcoin tip for this awesome answer :P the transaction would be of 100000000 to 18TGt8oGgLzkCpjxMbiRfvbDo9NqGisopp.
For more information on transactions and how they work, you can check out this page on the bitcoin wiki: https://en.bitcoin.it/wiki/Transactions

I'm aware of wallet addresses, but I want to know if the coins themselves are uniquely identifiable. I'm assuming they must be identifiable in one way or another in order to prevent forgeries etc?

When you spend a coin you are spending a previous output (e.g. 100000000 to 18TGt8oGgLzkCpjxMbiRfvbDo9NqGisopp from 1anotherbitcoinaddress or from generate), which becomes the input for the current transaction. Each unique satoshi need not be identified but the input(s) needs be greater or equal to the output(s).

No, coins are digital divisible units even when it's noun refers to a physical indivisible unit.
There are nothing like I have 1/2 of this coin and 1/4 of that other indeed even the balance concept it self is ill defined in bitcoin due to multiple signature transanctions and other type of scripts.
Your balance is just the amount of Bitcoin that you can spend with the private keys you have.
On the other side as every transaction is traceable in the blockchain you can follow the trace of every generation transaction (the one that gives you the block reward) but there is nothing like a coin id.


text:
Wasted satoshi due to transaction fees
Say I have a wallet containing 1000 satoshi, and I want to transfer this to another wallet, but it doesn't cover the transaction fee, do I just waste it?

I don't have the private key to the wallet as it's an iOS wallet
The wallet won't let me set a zero transaction fee

Is it BreadWallet? You can restore that in Mycelium, afaik.
As to your actual problem: just leave it, file the seed words somewhere safe, and maybe one day it'll be worth actual money.

It's the IndieSquare wallet. And there aren't any seed words :-(

Oh wait...yes there are :-)

Deposit some Bitcoins into said wallet from another wallet, then withdraw the full amount (deposited amount + dust amount). That way your dust UTXO will be used to fund the withdrawal transaction back to your destination wallet.
Caveat: this action will cost more than the dust UTXO itself. But who's to say 1000 Satoshi wont be 1000 dollars in future

If the fees will cost more than 1,000 satoshi, why does it matter what 1,000 satoshi will be worth in the future?  If it costs you around 15,000 satoshi (current average fee for a resonable confirmation time) per transaction, and you need 2 transactions to pull this off, it means you are spending 30,000 satoshi to get 1,000.  It doesn't make any sense regardless of the BTC/USD conversion rate.

If one is patient enough and happy to broadcast the transaction during a not so busy period, one may get his transaction included in the Blockchain for FREE by broadcasting to a node with free relay policy and hoping that a miner picks up the transaction. It is a long shot, but perfectly doable.


text:
What encourages Bitcoin miners to relay blocks?
Lets say I'm mining bitcoins, and I've just received a new block that someone else has mined. What encourages me to send that block to anyone else.
I can understand how the original miner wants to send the block around the network (so their block becomes part of the chain) but what incentive do other nodes have to send it around? Wouldn't it be better to not to spread the block, but then build your own block on top of it, in which case you'll then be two blocks ahead and more likely to be added to the chain?
Of course, if everyone does this the result would be terrible, but what incentive is there to encourage people (other than the original miners) to spread blocks besides altruism?

As long as the block reward is much higher than the transaction fees, this is totally not an issue: mining isn't an incremental process, it's a bruteforce probabilistic one.
I.e. in a single moment your chance of solving a block isn't higher if you have been mining that same block for some time: the chance is always the same.
Hence, once a block is relayed to you, you just add it to the blockchain and start immediately to search for a new block on top of that one.
Since the risk of your block being orphaned (currently you'd lose 25BTC ~= 3750€) is many orders of magnitude higher than the cost of relaying it (I'd estimate it a bunch of satoshis), it is always more convenient to relay it.

I agree, and might summarize/add: if you are a miner you want the block you are mining "on top of" to be as widely distributed as possible because you want to minimize the risk of building on a orphaned fork.

I don't think that answers the question. Suppose that you receive a block. Clearly, you should mine on top of it, but why should you relay that block to other nodes if bandwidth costs money?

@NickODell because the risk to have your mined block orphaned (~2650€ currently) is much higher than the cost of relaying a block (a bunch of satoshis, I'd guess?).

@Lohoris Good point.

@NickODell edited accordingly

@Lohoris: Doesn't relaying the block increase the risk of your block being orphaned? Orphaned blocks occur when you mine a branch which is beaten by another branch yes? Then you wouldn't want to extend other nodes branches, as that means they're more likely to orphan your block yes?

@Clinton we are talking about relaying a block you are mining upon, so decreasing the chances of your eventual new block being orphaned.

OT: lol for some reason I misread "Clitcoin" instead of "Clinton", lol.

Good idea for another coin

The core problem with hoarding is risking work on an orphan chain. If you horde a block and start working on its successor you risk the network finding another legitimate block and forking the master block chain. If that is the case (unless you have significant processing power behind you) you will be working on a branch that will be orphaned in favor of a longer block chain, granting you nothing for your mining efforts.

There's no need for an additional incentive. It's enough that the sender wants to send it and the recipients want to receive it. The miner who found the block wants to get it to as many people as possible so they get the reward. The other miners want to receive it so they can build on a longer chain. That is sufficient.
If it ever got to be an issue, which I can't imagine it ever being, Bitcoin clients could drop connections to nodes that don't pull their own weight. Thus if you refused to relay blocks to a node, it would refuse to relay blocks to you. Though more likely the solution would simply be for more mining pools to take care to directly interconnect.

"The miner who found the block wants to get it to as many people as possible so they get the reward. The other miners want to receive it so they can build on a longer chain." <- This explanation is lacking the case the question is about. There is a third party: This part of the answer does not cover the case where another miner received a block, and now decides if he should send it on or not. Furthermore, the question is also not about theoretical countermeasures which could be implemented in the future. It is about the current situation.

@DanielS. This is the Internet. If X wants to send information to Y, Y wants to receive information from X, and both X and Y are connected to the Internet, a third party can't do much to stop them. As for "the current situation", there is no evidence this problem exists in the current situation. We need to address some future situation where this is an actual problem. (You can't turn your car to avoid running off the road miles before the curve.)

Original poster's hunch is absolutely correct.  Miner has every incentive to send his newly found block to peers immediately.  Any delay only harms its chances of being built into the permanent chain.
Miner is also very anxious to receive new blocks mined by others, so he can build at the tip.
But to relay a new block mined elsewhere only helps other miners to build at the tip, and therefore harms our miner's chances of producing the next best-block.  The optimal strategy for our miner is to relay the block mined elsewhere only when he has found his own block on top of it.
For this reason, the network of non-mining full nodes plays an under-appreciated role as intermediary between miners.  Full nodes have nothing to lose by relaying blocks promptly.

@TomHarding is correct in that a miner cannot void a block mined by another miner simply by not relaying it. The block gets propagated anyway, through other nodes.
It is worth pointing out that the problem you describe is related the problem of selfish mining, where, given some assumptions, a "selfish" miner has the incentive to avoid publishing a block he himself mined, and start working on the next block on top of that "private" block, hoping that at the same time, the rest of the miners are doing futile work (being unaware of the private block which would eventually make it into the blockchain). Of course, the selfish miner is risking losing the reward on the unpublished block if it doesn't make it to the blockchain eventually, but under some assumptions, this can still be a profitable strategy for him.


text:
Can I use Bitcoin mining as a data furnace to heat my home?
One of the waste products from Bitcoin mining is the heat that is given off by the GPUs. On cold days could this excess heat be used to warm a home, essentially creating a data furnace? When it gets warmer then the rig can be optionally shut down.
As I understand it, the income generated from mining bitcoins at least pays for the electricity so long as you have a rig that is capable of meeting the difficulty. This would therefore imply that so long as you have already got a suitable rig lying around the house (e.g. for gaming) then running it up during the day would be useful. If the house also had solar panels then that would also benefit the earning potential.
Are there any calculations available to support/refute this?

Yes, you can use a Bitcoin mining rig to heat your home.
Whether or not it's worth doing depends on a number of things, such as:

Whether you have a heat pump, or would otherwise install a heat pump (they generally give you 3kW of heat for around 1kW of electricity)
Whether of not you have other heating that is more cost effective than electric heating (eg a wood or gas fire)
Whether it's convenient to have a mining rig in the location you want heated (you lose efficiency if your heat is produce away from where you want it)
The current exchange rate of Bitcoins (and the difficulty of mining them), and how those values change over time for at least the payback period of the mining hardware
The price of electricity
The noise produced by a mining rig. They tend to be quite noisy, so it may be a disturbance to leave it running overnight
Your technical ability to maintain the equipment, and your time available to do so. If it has a problem and you don't have time to fix it, you stop earning mining income.

There's no guarantee that mining earnings will pay for the electricity to run them, let alone pay for the cost of the equipment and the labour incurred maintaining it - this is dependent on the demand for Bitcoins, and your costs. There's always a risk that the exchange rate will drop to the point where it's not worth mining at all, or that new technology (eg ASICs) will make your hardware obsolete before it's paid for itself.
Any web-based profitability calculators that exist won't necessarily take into account all the factors above, and none can predict the Bitcoin exchange rate, so their usefulness will be minimal. I recommend just creating a spreadsheet to do the calculations. To include the value of the heat output in your calculations, consider what you would need to otherwise spend to obtain the same heat output, and include that figure as profit on top of the mining profit (but also of course account for the cost of electricity to run the rig).
To predict the electricity usage of a particular setup, see this hardware comparison - a carefully built rig can run 4 graphics cards which might output 600-800W (or more) of heat. Using a desk fan (or similar) to keep strong air flow on the rig should reduce the potential of a convective flow of air taking the rig's heat straight up to the ceiling, where it won't be felt in cold weather.

Here's a graph that uses the price of $0.15 per kWh  http://blockchain.info/charts/miners-operating-profit-margin
It shows a 25% profit margin at current difficulty levels.  This is way down from the levels seen in the 1st half of 2011 but is up from the break-even levels (or small losses even) from Oct. and Nov.
Mining is just a slightly less risky gamble than buying bitcoins outright. Individual circumstances such as the marginal rate you pay for electricity and the benefit you receive from the heat generated will need to be considered to determine whether or not mining is worth it to you.

So, a Bitcoin mining thermal power plant is quite possible.. :)

@vi.su. usually a power plant works the other way round ie generates power!

@highly-irregular, may be a 'hash plant' that generates hash using heat energy, and produces electricity as byproduct. :)

Additional factors needed to take into account: 1) Heat produced by the mining rig per kW of power consumption, and 2) Hashrate per kW of power consumption.

ASICs might make a data furnace idea easier since they take up much less space to generate high hash rates per watt.  The Block Erupter USB project puts an ASIC in a powered USB stick package.  Imagine a series of these ASICs coupled to a standard home baseboard radiator heat sink and controlled by a low power Rasberry Pi computer with Wifi to the net.
As long as you are buying a device that breaks even on power, the primary cost factor is upfront cost to buy the hardware.  Right now, they cost about $200 per Block Erupter for 300 Mhash/sec at around 3 Watts of power.
At that price, getting to the 1200 Watts typical for a room heater would cost $80K for 400 units.  However, you could recoup this investment by selling the bitcoins generated.  After deducting power costs, you could recoup the cost in only a year at current difficulty levels.  Break even could take much longer than a year though as many ASICs are now hitting the market and will increase difficulty levels.  But the point remains that after recouping your hardware cost the heat becomes free.
For those of you living in California this is not a big deal, but free heat to anyone living in Scandinavia would certainly be appreciated.

I live in Florida so it's not very cold but when it does dip down I just start mining :D and tuck myself into bed!
By the way, most people have to pay for electricity to heat their homes anyway so the fact you get Bitcoins is just an added bonus to the mining-for-heating!

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
pycoin deriving wrong addresses from private key
a well known private key is the sha256 hash of correct horse battery staple it yields:
uncompressed address 1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
compressed address 1C7zdTfnkzmr13HfA2vNm5SJYRK6nEKyq8

however i am unable to reproduce this result on pycoin 0.53. the sha256 hash is
c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a

but when i use the command-line utility ku in pycoin to import this secret in hex it does not yield the above addresses:
$ ku H:c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a

input                        : H:c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a
network                      : Bitcoin mainnet
netcode                      : BTC
wallet key                   : xprv9s21ZrQH143K2yLSxbXemfny4nZroqhpiXEQ1MYx8vo2k7HRXypsWesNr7GkWT\
                                 uU9CeaW7QeR38NjjaSfZBAAZVkVEpXwEkxLLXP2q1iFUd
public version               : xpub661MyMwAqRbcFTQv4d4f8ojhcpQMDJRg5k9zojxZhGL1cuca5X984TBrhQw9ZJ\
                                 nvDdzsrjWG8nv4fsWjSU9HpX7pR3RKh2mezryhwXqvkF3
tree depth                   : 0
fingerprint                  : b501bac5
parent f'print               : 00000000
child index                  : 0
chain code                   : 5bbf1322eb26e8568dab5fdb60eb1dce21b0184ba5f6302a363d3d6fa673c630
private key                  : yes
secret exponent              : 10158881283648126355615721166211734569721037983262304808955335053160859610224
 hex                         : 1675b9196a0315b28d60cf62d835ca9e0c7756655f1ae267e72e87cd94f4ac70
wif                          : KwyNQchak8YmPrMjiZubCDbTGupAFPjQGp2A1mE2feyEkgjhPzNF
 uncompressed                : 5HzBHgMXJUYDKmiQGmACNaDLYhWiWziKsFjQLf7aTRv52NeoYhE
public pair x                : 51123819464118526280373633109955475860846079595385829435773454059765711587420
public pair y                : 69375255639189423482159707295881791099365542658018779127323111014791716296211
 x as hex                    : 71070e700787e78e1810b2843c0723fcf25643f9de9bb90fca95ca2941dd485c
 y as hex                    : 996100d13953e2d4815df164d89d27e8af148c31e2847631acc45928c89c5613
y parity                     : odd
key pair as sec              : 0371070e700787e78e1810b2843c0723fcf25643f9de9bb90fca95ca2941dd485c
 uncompressed                : 0471070e700787e78e1810b2843c0723fcf25643f9de9bb90fca95ca2941dd485c\
                                 996100d13953e2d4815df164d89d27e8af148c31e2847631acc45928c89c5613
hash160                      : b501bac5295fc5a812879a5483c456b554e0f994
 uncompressed                : c76a0a580bb6582e3f7e5e80324b0241b63f6eeb
Bitcoin address              : 1HW5NtrRYqmvvF36hxvGFf7e4F2voLyVk2
Bitcoin address uncompressed : 1KBQVzU9DnJCDZPe1r1T9SkrJAniJ2PUCx

looks like i was using pycoin wrong. for some reason the hex private key is not imported using a H:. the following works fine:
$ ku c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a

input                        : c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a
network                      : Bitcoin mainnet
netcode                      : BTC
secret exponent              : 88985120633792790105905686761572077713049967498756747774697023364147812997770
 hex                         : c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a
wif                          : L3p8oAcQTtuokSCRHQ7i4MhjWc9zornvpJLfmg62sYpLRJF9woSu
 uncompressed                : 5KJvsngHeMpm884wtkJNzQGaCErckhHJBGFsvd3VyK5qMZXj3hS
public pair x                : 54652445751364966014814199642702485207468864303823415690143529040235143060593
public pair y                : 72966369330535479126907188414667138321635397511721864437822996012971795952725
 x as hex                    : 78d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71
 y as hex                    : a1518063243acd4dfe96b66e3f2ec8013c8e072cd09b3834a19f81f659cc3455
y parity                     : odd
key pair as sec              : 0378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71
 uncompressed                : 0478d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71\
                                 a1518063243acd4dfe96b66e3f2ec8013c8e072cd09b3834a19f81f659cc3455
hash160                      : 79fbfc3f34e7745860d76137da68f362380c606c
 uncompressed                : c4c5d791fcb4654a1ef5e03fe0ad3d9c598f9827
Bitcoin address              : 1C7zdTfnkzmr13HfA2vNm5SJYRK6nEKyq8
Bitcoin address uncompressed : 1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T

i think ku H:c4bbcb1f... may be the way to import a bip32 private key, whereas ku c4bbcb1f... just imports a regular private key as secret exponent.


text:
What is a good way to concisely explain Bitcoin?
Often I'm asked to explain Bitcoin to someone and occasionally I come up with something stellar that really nails it, but most times it's a rambling incoherent mess.
What I would like to see is a short and simple explanation of what Bitcoin is that is suitable for someone non-technical to understand.

Bitcoin is a new kind of money. It's the first decentralized electronic currency not controlled by a single organization or government. It's an open source project, and it is used by more than 100,000 people. All over the world people are trading hundreds of thousands of dollars worth of bitcoin every day with no middle man and no credit card companies. It's a startup currency which has never happened before.
Bitcoin is the first digital currency that is completely distributed. The network is made up of users like yourself so no bank or payment processor is required between you and whoever you're trading with. This decentralization is the basis for Bitcoin's security and freedom.
Email let us send letters for free, anywhere in the world. Skype lets us make phone and video calls for free, anywhere in the world. Now there's bitcoin. Bitcoin lets you send money to anyone online, anywhere in the world for less than a cent per transaction!
Bitcoin is a community run system not controlled by any bank or government. There's no wallstreet banker getting rich by standing between you and the people you want to send and receive money from.
Bitcoin is more efficient than all competing currencies. This will drive its adoption in the same way computers were adopted, in that computers made people more efficient in competing in the marketplace. A currency has value by it being widely used. Bitcoin is a startup currency with a deflationary bootstrapping economy. Its use spreads by providing the speculator incentive.
Bitcoin is going to be the biggest opportunity for innovation that the world has seen since the industrial revolution. An idea whose time has come.

Adapted from the New to Bitcoin?  Start here! post on the bitcointalk forums that has received over 250,000 views:
Introduction to Bitcoin
Forget most things you've heard.  People discover Bitcoin in a variety of ways, but usually pick up some sort of misconception like "Bitcoin gives free money to people with computers" or "in order to use Bitcoin I have to use a program that wastes electricity for nothing" along the way.  Here is a good summary to help you understand Bitcoin in general, by focusing on what Bitcoin is and what problem it solves.  These two things are not typically well explained on most websites, and it is difficult to appreciate just how effective a technology Bitcoin is until they are understood.
What Bitcoin is:  An agreement amongst a community of people to use 21 million secure mathematical tokens--"bitcoins"--as money, like traditional African and Asian societies used the money cowry.  Unlike the money cowry:

there will never be more bitcoins
they are impossible to counterfeit
they can be divided into as small of pieces as you want
and they can be transferred instantly across great distances via a digital connection such as the internet.

This is accomplished by the use of powerful cryptography many times stronger than that used by banks.  Instead of simply being "sent" coins have to be cryptographically signed over from one entity to another, essentially putting a lock and key on each token so that bitcoins can be securely backed up in multiple places, and so that copying doesn't increase the amount you own.
Because bitcoins are given their value by the community, they don't need to be accepted by anyone else or backed by any authority to succeed.  They are like a local currency except much, much more effective and local to the whole world.  As an example of how effective the community is at "backing" the bitcoin: on April 4th 2011 30,000 bitcoins were abruptly sold on the largest Bitcoin exchange, consuming nearly all "buy" offers on the order book and dropping the price by nearly 1/3.  But within a couple of days, the price on the exchange had fully rebounded and bitcoins were again trading at good volumes, with large "buy" offers slowly replacing the ones consumed by the trades.  The ability of such a small economy (there were only 5 million out of the total 21 million bitcoins circulating then, or about 3.75 million USD worth at then-current exchange rates) to absorb such a large sell-off without crashing shows that bitcoins were already working beautifully.
What problem Bitcoin solves:  Mathematically, the specific implementation of the bitcoin protocol solves the problem of "how to do all of the above without trusting anyone".  If that sounds amazing, it should!  Normally a local currency has to trust all kinds of people for it to be able to work.  So does a national currency.  And in both cases, that trust is often abused.  But with Bitcoin, there's no one person who can abuse the system.  Nobody can print more money, nobody can re-use the coins simply by making a copy, and nobody can use anyone else's coins without having direct access to their keys.  People who break its mathematical "rules" simply end up creating a whole different system incompatible with the first.  As long as these rules are followed by someone, the only way Bitcoin can fail is for everyone to stop using it.
This marvelous quality of not having to trust anyone is achieved in two ways.  First, through the use of cutting-edge cryptography.  Cryptography ensures that only the owner of the bitcoins has the authority to spend them.  The cryptography used in Bitcoin is so strong that all the world's online banking would be compromised before Bitcoin would be, and it can even be upgraded if that were to start to happen.  It's like if each banknote in your pocket had a 100-digit combination lock on it that couldn't be removed without destroying the bill itself.  Bitcoin is that secure.
But the second way of securing the system, called the blockchain, is where the real magic happens.  The blockchain is a single, authoritative record of confirmed transactions which is stored on the peer to peer bitcoin network.  Even with top-notch digital encryption, if there was no central registry to show that certain bitcoins had already been "paid" to someone else, you could sign over the same coins to multiple people in what's called a double-spend attack, like writing cheques for more money than you have in your account.  Normally this is prevented by a central authority, the bank, who keeps track of all the cheques you write and makes sure they don't exceed the amount of money you have.  Even so, most people won't accept a cheque from you unless they really trust you, and the bank has to spend a lot of money physically protecting those central records, whether they are kept in a physical or digital form.  Not to mention, sometimes a bank employee can abuse their position of trust.  And, in traditional banking, the bank itself doesn't have to follow the rules you do--it can lend out more money than it actually has.
The blockchain fixes all these problems by creating a single master registry of the already-cryptographically-secured bitcoin transfers, verifying them and locking them down in a highly competitive market called mining.  In return for this critical role, the Bitcoin community rewards miners with a set amount of bitcoins per block, taken from the original limited quantity on a pre-agreed schedule.  As that original amount gradually runs out, this reward will be replaced by fees paid to prioritise one transaction over another--again in a highly competitive market to ensure the lowest possible cost.  The transactions are verified and locked in by the computational work of mining in a very special way so that no one else can change the official record of transactions without doing more computational work than the cumulative work of all miners across the whole network.
In conclusion:  All this mathematical technology may be a bit of a mouthful, but what it means in practice is that Bitcoin works just like cash.  Bitcoin transactions are intentionally irreversible--unlike credit cards or PayPal where chargebacks can invalidate a payment that has already been made.  And there are no middlemen.  Transactions are completed directly between the sender and the receiver via the peer to peer network.
Because of Bitcoin's intricate design, the network remains secure no matter where or how you process bitcoin transactions.  Which is incredible--no one else has ever tried to create a system that worked this way!  All previous monetary systems have relied on trusting somebody, whether it was the king, town hall, the federal reserve, or banks.  Bitcoin doesn't.  It's guaranteed instead by the laws of mathematics, and that's why it has everyone from technologists to economists very excited.

Bitcoin has a lot of complexities making it tough to describe in the time of an elevator ride.
Still, it can be described as:

A distributed system for people to send and receive payments
  anonymously, instantly, reliably, and for free. Payments are made in a
  new kind of money whose total supply is limited and not controlled by
  any party. E-commerce would benefit and services, for example escrow
  or securing and remotely accessing your wallet, could be built on this
  technology. Think BitTorrent meets PayPal.

https://en.bitcoin.it/wiki/Elevator_speech

The only problem with that: bitcoin transactions are not sufficiently anonymous, instantaneous nor free.

Quite concisely, bitcoin is to money what email was to letters . . . and the post office is in trouble.

Bitcoin is an internet currency.
Bitcoin is a decentralized currency.
Bitcoin is a predictable currency.
Bitcoin is open source.
Bitcoin is getting stronger every day.
Bitcoin is an experiment that has grown rapidly as interest in the idea spreads.
Bitcoin makes it easier to sell things over the internet.
Bitcoin allows anyone to pay anyone else.
Bitcoin has strong privacy: you should be able to choose who knows about your financial transactions.
Bitcoin can reduce the costs of everyday goods, by making the financial markets more competitive.
Bitcoin is a chance to revolutionize the financial system, making it fairer and more democratic.

Bitcoin is a mathematically secured currency system which enables ultra low fee internet commerce using coins and fractions of coins which are in some ways similar to traditional cash.
Acting something like a shared accounting ledger, the record of all transactions is stored in a semi-anonymous way within the network of bitcoin participants.  This means that there is no company, government or authority with whom you need to identify yourself and open an account. Simply running the software provides an initially empty wallet on your device which can receive Bitcoin from any other Bitcoin user - and can also easily be loaded via Bitcoin exchanges operating in many countries and accepting various currencies.
The issuing of coins into the system occurs via computers specifically set up to process transactions and assist in securing the network. Commonly referred to as 'mining' - this is open to anyone, but requires additional computer hardware and incurs electricity costs.
Issuance occurs at an ever decreasing rate, topping out at around 21 Million full coins some time well after 2030. As coins can be traded even in tiny fractions, this allows more than enough to go around, no matter what size the economy they are a part of. Products and services may ultimately be priced in hundredths or thousandths of a bitcoin if ever the scale of the bitcoin economy warrants it.
(Hmm - concise is hard. Maybe the 1st 2 paragraphs as intro is enough though.)

Recently I stumbled across this question as I was supposed to explain what Bitcoin was to my 5-year-old nephew.
As the question states that it needs to explain the concept of bitcoin to a non-technical person, I took it a step further and explained it to the kid, who knows nothing (literally).
So here goes my 2 satoshis on what is the best explanation (according to me and the kid).

Bitcoin

The time when computers were made, they were pretty dumb. They could understand only Yes (1) and No (0). This information of Yes and No was stored in a box called a Bit. A computer was made of a lot of such boxes.
A few decades later a very noble man, Mr. Satoshi wanted to help the dumb people, as smart people used to take their undue advantage by asking the dumb people to trust the smart people.
So, he created what is called a Bit-Coin, where Bit means something stored inside a computer and Coin means money.
This bitcoin was such that it didn't require anyone to trust others (Trustless). Now you might be wondering how is this possible, well, bitcoin stores all the information (about giving or taking bitcoins) in a chain of boxes (Blocks) and everyone has a locked and framed photograph of these boxes, which they could only see but not change. There were a lot of people working for Mr. Satoshi to help him store a lot of different copies of these framed photographs. They got paid in a lottery system.
What if there's new information and we want to include record; the people doing jobs for Mr. Satoshi were all are given a random question to solve. The one who solved this question first won the lottery and could open the locked frame and attach the new box's (containing the information) photo, only to the end of the current chain of photographs of these boxes. These people weren't allowed alter the existing chain of photographs.
Now that everyone had the same set of photographs, there's no need to trust anyone.
It gave birth to a true person-person (peer-peer/p2p) online network for exchanging money.
P.S. This was explained to a 5-year-old kid, hence a lot of analogies have been constructed, which may or may not exactly translate to the core of bitcoin technology.

Bitcoin is the currency of the future.
In order to understand why this is true, there are two key pieces of information that a person must have:

The first is an understanding of how money actually works: how it is created, how it enters the marketplace, and what exactly makes it valuable.
The second is an understanding of the Bitcoin community and system.

The short answer is that Bitcoin does everything you'd like a currency to do, and it doesn't have any of the drawbacks associated with any of the other currencies available.
It is amazing acceptable as a currency to every honest and rational person who also really understands money, and it is a magnificent protest against everything that is wrong with politics, wall street, the global central banking system, and our grossly manipulated economy.

Oh, you want more details?  Great!
Here's a great explanation in 104 seconds:
http://www.weusecoins.com/

You want even more?  That AWESOME TOO!
The below is a bit meater, but it's important information to understand the real problems that Bitcoin solves.

Every currency has it's own rules for it's creation.  Some currencies are made out of a precious commodity that is inherently valuable (like gold and silver coins, or in the past: shells and jewelry), some currencies are paper for easy exchange but backed by a commodity (like gold or silver certificates), but most modern currencies are simply paper that is printed by a private central bank empowered to print a nations currency by that country's government.
Modern currencies enter the marketplace by being lent out through a series of banks that charge interest.  The country's central bank prints the money and lends that money out to the big banks in the country at the "discount window" interest rate; these banks then lend out the money on consumer loans through their branch banks.
This system ensures that there is never enough money for all the people to pay off their debts.  It ensures that there are always people who will be motivated to work for money.  This system also allows the banking industry to basically control when there will be massive defaults and foreclosures.  Defaults and foreclosures are built into the system itself.  A quick visual example to demonstrate this:  imagine if there was no money in a country of 2000 people, then half the people in this country all borrowed $1000 from their chosen bank, injecting $1M worth of currency into the country, and these individuals who received loans all agreed to pay back $1100 a year later (the loan plus $100 interest).  The banks are going to get a vast amount of that money paid back to them, and the people who aren't as good at getting money will lose their assets which the banks will seize through foreclosure.  The banks themselves did nothing to create value, they did not put up the money themselves, they borrowed it from the central bank, and they sold the FHA compliant mortgage to a federally insured government sponsored enterprise like fannie-mae or freddie-mac, which get bailed out at tax payer expense... so the banks don't really have to deal with foreclosed properties either.  The foreclosed properties end up going to HUD, and someone else will take out another loan to buy them.
This system works incredibly well for the banking industry, they get to collect interest and seize properties without having put up any capital themselves; their loses are pushed onto the tax-payers through bailouts; and their profits accrue to shareholders.
Politicians accept this mostly because they don't understand it, or if they do, they have positioned themselves to benefit from it.
This system provides those in the government (and those with connections to the government) with easy access to new money; The Federal Reserve, a private company, with private and secret shareholders, is empowered by the federal government to be the sole printer of Federal Reserve Notes (US Dollars), and in exchange, the Federal Reserve MUST purchase any treasury bonds that the US Treasury requires it to purchase.  This arrangement means that the US federal government may issue an unlimited number of US Treasury Bonds without fear of ever not having a buyer for them.
The four reasons that US Dollars (Federal Reserve Notes) are considered valuable are:

US Citizens are forced (under penalty of asset seizure and imprisonment) to pay taxes using US Dollars
EVERY US Dollar currently in existence (and many more that are not in existence) are owed as debts to banks who were able to create loans as the vehicle for injecting money into the economy.  (Thus fear of asset seizure [foreclosure] drives debtors to get US Dollars to pay off their debts).
The US Court System has established that Federal Reserve Notes are "Legal Tender for All Debts Public and Private", this means that all penalties and fees imposed by any government body in the US must be denominated in US Dollars, and any debt may be discharged in US dollars.  (This means a contract that was originally between two people and said that Bob would pay Jean one ounce of 0.9999 gold, if Bob fails to pay and Jean takes him to court, the court will assert that Bob owes Jean a debt, and the amount will be denominated in US Dollars, and Bob will be able to discharge his debt to Jean in US dollars.  This is the meaning of "Legal Tender for All Debts Public and Private") AND FINALLY
Other countries are forced (under OPEC rules) to use US Dollars for making exchanges of oil; this dramatically strengthens the international demand for US Dollars.

The basic reason US Dollars are valued is because the people agree to these rules.  Debtors cannot simply walk away from their debts (though now, more than ever, people are);  Tax Payers cannot pay their taxes with any other currency; and individuals who are found liable in a lawsuit are required to pay in US Dollars.  All of these actions fundamentally introduce the use of real or threatened police force against anyone who does not deal with Federal Reserve Notes in the US (and similar laws exist in other countries).
Additional information how how force and covert aggression are used against countries that resist participation in the Global Banking System, you might consider reading: Confessions of an Economic Hit Man.
The bottom line is that most modern currencies are injected into society only with the creation of debt, and then the government uses threat of asset seizure and imprisonment and taxation and fines/fees to ensure that the currency is accepted.
Bitcoin is a purely electronic currency.  It is created using very precisely controlled and agreed upon algorithms that are open source and totally transparent.  No one is forced to use it, and it is not based on debt.
It is valuable precisely because rational and honest people don't want to manipulate, control, and enslave debtors.  Bitcoin is the ultimate economic self-defense against dishonest individuals who have found their way into leadership positions within the banking industry, individuals who have positioned themselves as the Gods of Money, and who seek to use violence and threat of asset seizure against individuals who have had difficulty earning sufficient money to pay their debts (debts largely entered into as a pledge on the part of the debtor, and for which the creditor did little more than authorize an electronic funds transfer).
Bitcoin is fast, global, secure, largely anonymous, and less expensive than nearly any other transaction processing services (compare rates with credit card merchant services, paypal merchant services, and the many other bank fees associated with having an account).
Bitcoin is valuable because the community of users all agree that it is valuable.  And every person who uses Bitcoin, who recognizes the value of this idea, strengthens the value of the currency.  It is an idea whose time has come.
Create a Wallet, let people know that you accept Bitcoin.
Learn more about Bitcoin.
Consider purchasing Bitcoin on an exchange market.
Consider operating a Miner.
Buy something with Bitcoin.
Help others discover Bitcoin as well.
Bitcoin is a perfect opportunity to help educate others about the realities of Money.
Continue your own education.
An excellent documentary that presents the almost unbelievable and borderline terrifying history of money is "The Money Masters" ( http://www.youtube.com/watch?v=lXb-LrVkuwM )
We are a community of individuals who are honest, strong, and fully grounded in reality.
You are invited and welcome to participate in the paradigm shift and the revolution.

There's a good reason for why when people try to understand Bitcoin and ask the most obvious question "What is it?" they only get even more confused and discouraged. This reason is the fact that this question doesn't really have a single concrete answer and usually receives multiple answers from those who do understand it that include a lot of technical speak and jargon. Hence the likely additional confusion.
So instead of asking what it is I'd like to propose a different question: "Who is Bitcoin?" and the answer I'd argue couldn't be simpler: Bitcoin can be virtually anyone from a business man in Chile to a wallstreet banker in New York to a grandmother in England to a college student in China, anyone with a computer or another device connected to the internet and running the free Bitcoin software can be part of Bitcoin.
Those who run this Bitcoin software on their device not only do so but they also get connected directly to each other forming a person to person or in technical speak a peer ot peer network.
The really brilliant aspect of it all is this next part where these people using the Bitcoin software connected to each other are able to issue, own and trade units of account, a digital currency - called bitcoins - where because of how the Bitcoin software is coded, and done so completely openly for anyone to see, they don't even need to trust any person who's part of the network other than the laws of mathematics to be virtually certain that the person giving them some bitcoins is following the same exact rules as they are.
With this picture in mind to sum it all up in technical speak: Bitcoin is a payment system with a digital currency in a decentralized peer to peer network. Does it make any more sense now? I hope so.

The realistic, honest answer to this question is that Bitcoin is a "Digital Commodity".
Bitcoin cannot currently be described as a digital currency since it cannot, practically, fulfill the basic functions of a currency.  The wildly fluctuating USD/BTC exchange rate alone means there is price instability.  How would YOU like to offer your labour for a few BTCs only to find, the very next day, that you're going to get paid MUCH less (or MUCH more) in USD.  And, no, you can't ignore the USD/BTC exchange rate and just deal within the BTC community because everyone measure the REAL 'value' of BTC by the exhange rate.
Bitcoin can, and must, currently be described as a digital commodity with a wildly fluctuating, uncertain, speculative USD price.
I make no judgement about BTC's future usefulness as a genuine digital currency.  Just pointing out that what it IS (now) is very different to what it MIGHT be in future.

Bitcoin is a global payment network on the internet. It is self-sustained and allows users to make payments between individuals like cash.
Instead of a company being the referee, Bitcoin is governed neutrally by rules asserted through a network of computers running the same open-source software.
Bitcoin is completely transparent, in that anyone can see every transaction, yet private as the identity of sender and receiver remain unknown.
New currency units are solely added as recompensation for verifying the network's transactions, yet their number is finite. The currency units are valuable because they are scarce and useful.

For non-technical users, I found this video to be extremely clear and helpful in explaining the details of how Bitcoin works:
How Bitcoin Works Under the Hood

Bitcoin transaction is a verifiable message that says that user Alice gave certain amount of bitcoins to user Bob. Bitcoin it self is just a number mentioned in bitcoin transaction and it could be a small fraction. 21 million bitcoins is the maximum number that would ever be in circulation.

I think most people don't get the decentralized part. To explain, I have made a few questions and their answers:

how are bitcoins created?
how does it prevent double spending?
how do we avoid central authorities?

Bitcoin is a distributed ledger. Everyone knows how many bitcoins are around and which address sent how many to which address (sort of).
A1. Bitcoins are created at a controlled rate. Once every 10 minutes (currently 25 bitcoins every 10 minutes). The first one to solve a hard problem gets awarded those coins.
A2. Bitcoin transactions are public. So everyone can check if a transaction is a double send.
A3. Central authorities are removed because of the mining reward every 10 mins. This consists of the 25 bitcoins plus any transaction fees. It requires people to process ("verify") new transactions in the form of a solution to a hard puzzle. The first one to solve gets the reward. A majority (51%) of the network breaks ties if two solutions are presented at the same time. Once the solution is accepted by the network, the trasactions are considered "verified".

What is bitcoin?
Bitcoin is digital cash.
Okay, why we need bitcoin?
It is global, so you can send money to your family living in Zimbabwe immediately and with low transaction fees.
Okay, so Bitcoin is an organization that provides this payment service?
No It is decentralized. Basically, anyone in the world can join the network and help network validate the transactions. Thus, there is no single party validating the payment transfers but users like me and you can also validate it. It is peer-to-peer decentralized digital cash.
Okay, so what is stopping me or any user from validating wrong transaction?
You can join the network without any permission but if you want to move transactions to the valid set of transactions then you have do some work (computation) first. Once you povide proof of your work then only you can add transactions to valid set of transactions.
Okay, so if I want to transact I have to work everytime?
No normally users don't do work, they send their transactions to miners. Miners gather all the transactions and do work and add valid transactions after regular intervals.
Okay, why are they called miners and how do they manage valid set of transactions?
So, valid transactions are distributed among blocks. Each block contains many transactions and every block are chained together to form blockchain of valid transactions. Miners provide proof od work done to add block of valid transactions to blockchain. And whenever they add a new block to blockchain they get some newly generated bitcoins as reward. That's ,how supply of bitcoin is managed. And bitcoins are created from thin air and awarded to block-adder, they are called miners.
Oh cool, a bit clear now.

Cash on the internet.
It can be spent anonymously, and stolen if you're not careful.

I know he asked for 'concise', but he also asked for 'explain'.  This might be a little too concise, while still not being accurate.  It's not really anonymous, you know.

Bitcoin is a digital currency stored on the internet that allows users to send value without asking a third party for permission. It is secure because it rewards users who validate transactions and is independently reviewed by thousands of peers.

bitcoin is a type of currency which has its value established cryptographically, meaning that each blockchain, or record of transactions, is secured by cryptography.
The experience of paying for an item in bitcoin is similar to any banking app (paypal, bank of america, online banking) , however, the technology is drastically different.
Bitcoin relies on a decentralized, global network of computers to verify the truth of the transactions in the blockchain.
Bitcoin is the most popular form of cryptocurrency, but there are over 1600 all with their own configurations of features. The current market cap for all cryptocurrencies is over $250 billion.

Bitcoin is like digital coins that live on the internet. Instead of using paper money or coins from your piggy bank, you can use Bitcoin to buy things or send money to friends. It doesn't need a bank, and you can keep track of all the digital coins with special computers. Just like video games have points or coins, Bitcoin is a kind of money you can use on the internet.
Bitcoin is a type of digital or virtual money that exists only on the internet. It's not controlled by any government or bank, and people can send and receive it directly to each other without needing a middleman, like a bank. This makes transactions faster and often cheaper. To ensure that everything is secure and accurate, a network of powerful computers, called miners, work together to maintain a public record of all transactions, known as the blockchain. People can use Bitcoin to buy goods and services from businesses that accept it or exchange it for traditional money, like dollars or euros.

I really love the video Ever wonder how Bitcoin (and other cryptocurrencies) actually work? by 3Blue1Brown.
The video doesn't use vague terms such as digital money, digital gold or mining. It rather starts off demonstrating how you might use a common ledger to keep transactions between with your friends so you don't have to settle up all the time. Building on top of that, it builds bitcoin from scratch.
It also tries to give you a basic understanding of digital signatures and hashes without too much of a headache. It is a little bit technical, however if you want to really understand the fundamentals of Bitcoin, you need to have at least somewhat understanding of basic cryptography.
Go watch it.

Just tell them bitcoin is Digital Gold, everyone understands why gold is valuable... yet they don't understand WHY specifically. Same idea should be used to sell Bitcoin, not EVERYONE needs a thorough understanding...


text:
What would be the second greatest bottleneck in the mining process? after the hash generation of course.
Lets pretend theres a fantasy world where I can produce an infinite amount of hashes no time at all...
What is the next biggest bottleneck for bitcoin mining?
Is it the bitcoin client? Is the client multi-threaded?
How many requests per second can I send into a bitcoin client for trying hashes?
Or will it be another factor?

You make one call to bitcoind using getblocktemplate to get a template for a block. Then you can generate all the work you need.
In the fantasy world you would find a block instantly. You submit this block and get another template to create the next block.
You would be generating hundreds or thousands of blocks per second. The only thing to slow you down is bitcoind validating blocks and pushing them out on the network.
We will find out what the limit is as new alt coins are created daily, usually with the only "feature" being faster and faster block generation. Once we have an alt coin producing 1000 blocks per second, perhaps we will see some issues (other than disk space).

Alt-coins are a beautiful real-world laboratory where dozens of different ideas are tested daily. Isn't this beautiful? LOL


text:
In order to send more hashes for mining do you need to connect into a bigger mining pool?
After the rate at which you can generate hashes, what determines the rate at which you can send hashes to be checked?
I'm guessing connecting into a bigger pool would help spread your load?

If you are generating hashes that fast, you should be solo mining

The difficulty determines how many hashes it takes for you to produce a share. Most modern mining pools will raise the difficulty as your hash rate increases. The idea is to keep your share generation rate roughly constant, regardless of your hashing rate. This allows the mining pool to still accurately measure your hash rate, still collect an actual block should you find one, but not have to process an absurdly large number of shares. Even a small pool can handle a client with an extremely high hashing rate. It's not more difficult, so long as you aren't using obsolete protocols like "getwork".

authors: ปรีชา ขุนพลเอี่ยม


text:
Software to connect to Bitcoin, and the method I need to invoke to try mining a bitcoin using a hash I have generated?
I'm looking to try out solo mining, I know it as a very low return rate but I want to try it out anyway...
I'm looking for a simple client software to connect into the bitcoin network.
Which instruction would I invoke on this software in order to try out a hash I have generated?
i.e. is there something like tryHash(int hash) that returns a Bitcoin if successful?

CPU mining, GPU mining or ASIC mining?  Pool or solo?

I have my own custom way of generating hashes, lets just say I have a box that outputs a hash, I want to send that hash to the bitcoin network, the box will be a custom piece of electronics.

Sounds intriguing!!!

Did you see this question? http://bitcoin.stackexchange.com/questions/16940/what-are-asic-miners-actullay-doing


text:
Do all block have to be verified every time a new block is broadcasted?
I did a presentation for my office and during the presentation I was asked a question that I was not prepared for. It's a more technical question from my perspective, but someone here might already know the answer.
We know that every 10 min a block is created. And a new block has information of the previous block along with its findings and submitted to the net to be verified.
My question is when a pool or an individual miner is doing the verification, do they verify all the transactions starting from Genesis block till the most recent one?
And this goes on after each block is verified. Meaning every new block that needs verification needs to be verified along with all the previous transactions starting from the Genesis block?

TL;DR: Each block only needs to be verified once. Upon receiving a new block, only the reference to the parent and the validity of the new block need to be checked.
When one gets started with Bitcoin, the client or mining software will download and verify the blockchain. During this synchronization, each block starting from the genesis block will be verified by the client. This is only necessary once for each block, because new blocks always reference the hash of the preceeding block.
I.e. when you are trying to verify Block 5, it will contain the hash of it's parent, Block 4. As your client has already verified that Block 4 is valid, and if the hash featured in the new Block 5 matches the known hash of Block 4, it can go straight ahead and only check whether the new Block 5 is valid.


text:
Bitcoin Mining on Office Network
I'm a bitcoin novice and i've read a bit about mining. It got me thinking that I could setup our office network to min bitcoin (obviously with permission)
We have a centos linux server which is on 24/7/365 and we have 6 windows 7 machines which are on 8 hours a day during a working week when staff are in working.
Is it possible to setup the linux server to mine bitcoins continuously with very low effect to the server's load and the same with all the windows 7 machines? What sort of mining software would be idea for the setup.

Basically your wasting your time, look at a bitcoin mining calculator and you will see what I mean.

CPU and GPU mining costs more in electricity than it rewards in BTC at the moment.
You need special equipment with ASIC chips to mine at a profit.
These chips are designed to perform many hashes at low power consumption.
I suggest you ask your boss if he agrees with the negative efficiency of your current setup.

Always ask first. If I remember correctly there was a case in France where someone used their machine at work to mine without permission and ended up having to give the profits to the company.

I run the IT network for the company and will be discussing the possibility with the director of using the employee's computers  and the server which is on anyway for mining while they are on. I just need to know if it will be worth doing. After all, the PCs are on at the time anyway.

It stopped being profitable almost a year ago. Even if your computers already are running 24/7, mining will cause them to use more power, I doubt that the return would balance the increased power bill.


text:
How big will the block chain become?
How big can the block chain become? It's already 7 GB after a couple years!

possible duplicate of Are there any studies into the size of the blockchain scaling over time?

Also possibly answered here: Upper limit on the blockchain file size with pruning?  http://bitcoin.stackexchange.com/questions/4650/upper-limit-on-the-blockchain-file-size-with-pruning

The block chain length in number of blocks will grow indefinitely with one block being created for 10 minutes on average.
The actual size of the whole chain will strongly depend on the following two aspects:

the number of transactions

The number of transactions in a block determine the size of the block. So, the more transactions are made in the network, the more information there has to be stored.

how the block chain will be stored across clients

Since the speed with which the block chain grows has been slightly increasing since the beginning of Bitcoin and the block chain is already significantly big, some of the Bitcoin developers have been considering to implement a solution for this that would make it unnecessary to keep a history since the beginning of time.
Currently already the standard Bitcoin client compresses the block chain for storage. The older blocks become, the more they are compressed. This means that you required less disk space to store the block chain, but also that it takes longer to start building it from scratch. Other clients have to decompress it to share it with you and you will have to compress everything you receive. This results in the fact that new clients often need multiple days to get in sync with the network.

The blockchain will continue to grow over the years. It depends on how much data people put into it. There is some upper limits set right now, but they will likely be changed once Bitcoin grows so popular we need more space.
Therefore it stands to reason that eventually users will not download the blockchain themselves, but collectively do that. Via Bitcoin wallets for example. Or use light clients that have no copy of the chain themselves.
It is expected to remain "affordable but ineffective" for the time to come. Also given an extensive form of blockchain-pruning can reduce the blockchain's size, but hasn't been implemented for a lack of priority.

I know two things for sure:  1)  The blockchain will continue to grow.  and 2) when I installed the Bitcoin core yesterday, on a fresh new computer, it told me to allow for the initial amount to be 80GB.  For me, the only reason that matters is because I get charged extra by the cable company.  And it also tells me how long to expect it to take before that original load is finished.
The OP said it was 7GB in 2013.
So yes, #1 is true - it will grow.
So the wild card appears to be the work factor doubling this summer.  The last time it doubled was 2012.  But that was before the big guns started mining.
As it becomes more expensive to mine for the same earnings, it should be obvious that there will be fewer miners, which translates into longer clearance times.  In fact, we're seeing it already as people position themselves for the new reality to come.
The good change is that the powers that be are also considering doubling the block sizes.  That will translate to longer times before transactions get posted and verified.
Yet the blockchain size may continue to grow at a linear rate.
So I am curious about the basis for this question.  The OP didn't explain why the size of the blockchain was of interest.
Speaking for myself, I believe the longer clearance times will totally devastate the nascent BTC economy.  We'll never see transaction rates like VISA (thousands per second).  6 months ago the blockchain wasn't even quite at 100 tps.
Face it, dealing directly with the blockchain at the point of sale will never work - your coffee would get cold long before the store could be sure you had the ability to pay.  This is why third party card issuers can work to keep blockchain issues from spilling over to customer service issues.
Cheers, all

Even if there are no rewards paid for finding/calculating a block in the blockchain, miners still get the transaction-fees.
That is needed because without blocks, no transactions would be possible.
Because of that, there is no limit on the blockchains size.