text:
If bitcoin was created years earlier, would we see the same rate of mining hardware evolution?
It seems like there has been a steady progression from CPU mining, to GPU, FPGA, and now ASIC, and it all happened in a relatively small amount of time.
If bitcoin was created in say, 2005 instead of 2009, and popularity grew at the same demand, would we likely see FPGA/ASIC hardware years earlier than we did, or would this be highly improbable at the time due to the then current technology?

Difficulty would have risen slower, but would have still been out of reach for most people at the same proportion as today. The GPU makers have not been creating graphics cards with the target audience of general processing and algorithm solving.
ASIC/FPGA mining hardware has zero innovative aspects than what you would have seen a decade ago. These are simply dedicated chips for solving Sha-256 algorithms. ASIC stands for "Application Specific Integrated Circuit" and could mean anything, although the cryptocurrency miners use this term very loosely. But for clarity, the bitcoin ones are ASIC for solving Sha-256 algorithm.
The industry has always been able to make dedicated chips, as you have dedicated chips for Mpeg-2 processing in video editing rigs, your digital camera has an ASIC for processing light very quickly. Whereas the CPU in your computer is for general processing, with the most R&D being to create faster and more efficient general processors for a variety of applications, instead of just one.
So to sum it up, with a profit motive the Sha-256 ASICs would have come out a decade ago because there has been little advance in technology needed to create them. Sha-2 was created by the NSA in 2001, or at least published by the NSA in 2001.
It is not a feat of engineering to make a machine efficient at solving one algorithm.
Another difference between a decade ago and today is that crowdfunding over the internet by presales would have been less trusted. Making securing the capital more difficult to create and produce ASIC mining equipment.
It is also worth noting that bitcoin can be switched to another algorithm if a vulnerability is found in the current algorithm (sha-256). This would mean that a different kind of ASIC would have to be created.
Finally, the folly of fiat currency mismanagement was not as apparent a decade ago during a period of prosperity, so people may not have viewed acquiring bitcoin as a worthy endeavor.


text:
Why does merely having Windows Media Player open double my GPU hashrate?
I'm using poclbm to mine under Windows... processor is an AMD A6-3400M with integrated Radeon HD 6250G GPU. When Windows Media Player is closed, I get a rate of 16 megahashes/second, but when it is open (even if stopped or paused) poclbm reports a rate of around 33 megahashes/second.
I'm wondering if this has something to do with Windows Media Player increasing the system timer resolution, but that doesn't seem like it would affect performance.
Ideally I would like to achieve maximum GPU performance without having Media Player constantly open.

I can speculate that while Windows Media Player closed, video driver limits fan speed and clock rate to reduce noise and power consumption.

Do you have two GPUs with automatic switching? Something similar to nvidia's optimus.

Nope, single integrated GPU. I believe it is on the same die as the CPU. All CPU/GPU related power savings features are disabled except for variable CPU clock speed, but the GPU clock seems to be separate from the CPU's clock and there are no options to change it. EDIT: In response to @Serith, the fan speed is temperature-dependent and I have it set to never turn off the fan in the BIOS (that's the only setting available)

poclbm has not been set to alter the clock rate of your GPU. Windows media player is doing this when open and adjusts the system to what it requires.
If you specify clock speeds for your GPU via parameters or a separate application you can overcome this.
Theres a number of applications which effect clock rates on windows machines, flash player open within a browser reduces a single card of mine down from 400 m/hash to 350 m/hash.
cgminer is very easy to specify clock speeds and mine with, it adjusts them when you start the application (not when closing though).

source: Stack Exchange

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

sort: votes


text:
Any statistics on usage of Bitcoins by region or country?
I would like to know if there are any statistics on turnover of Bitcoins for each country in the world. A very rough way would be to get a statistic on which traffic to Bitcoin.org by country.

Are you interested in how much Bitcoins each country generates, or how interested people are in Bitcoins in those countries? For first one you would have to get statistics from a couple major pools, for the second - either bitcoin.org, or the forum. I can give you some rough data from my calculator website if you want on traffic sources.

@ThePiachu I am mostly interested the turnover of Bitcoins in each country (not the level of mining). But if that cannot be provided, then the second statistic.

Similar question that might be of interest: Is there data on the geographic distribution of bitcoin users?

WebGL Globe shows bitcoin nodes seen during last 48 hours. Install Chrome Web browser if you have problem rendering WebGL.
Google Trends has countries, cities and languages sorted by number of bitcoin related search queries.

First link doesn't seem to be working anymore

Here is a breakdown of Bitcoin by countries taken form Google Trends:
What you can see in that Estonia and Finland are first and only after that comes the US.

The linked site is offline :(. StackExchange recommends you paste some relevant parts of the linked document to avoid having to visit the site. In this case, some segments from the site could help finding any reposts of the same data. Now I instead continue searching.

The link was fixed.

You can see how many times bitcoin was downloaded by going to sourceforge and looking up bitcoin.
For example here is how many times bitcoin v4.0 was download by the United States:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.4.0/stats/timeline

And here's the list/map by country: http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.4.0/stats/map

sourceforge is very different from the past. beware of that site. lot of links are scams/viruses etc.

Serith provides a link that shows location of Bitcoin nodes.  Beyond that Bitcoin specifically makes geolocation stats difficult.  Addresses are intentionally random and arbitrary.  You can look at transaction to determine senders IP address however that can be obfuscated and will not correctly reflect anyone using a web based wallets.
For bitcoin generation that is more difficult as roughly 80% of all Bitcoins are generated via a pool so any data in blockchain will simply indicate the location of the pool not the miners that make it up.

I don't know how accurate it is, but here's a cool live map showing transactions - http://fiatleak.com. Portrays China having the bulk of the transactions, at least currently.

For a very rough guide you could look at transaction volumes on the exchanges for different currencies..
e.g. Exchange volume distribution

I think you should post this as a comment not an answer.

If the question is turnover ie purchases /sales/volumes then its here  http://btckan.com/price
and its CHINA who is the leader by 2-1 and some days 4-1
https://bitcointalk.org/index.php?topic=319898.0

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


text:
Would any of the current botnets be able to launch and sustain a 51% attack?
The "owners" of botnets probably runs them as businesses, meaning that they will always seek profit-optimization. Do you believe that it is a matter of time before they will seek to launch and sustain a 51% attack on Bitcoins?
If one were to achieve a 51% attack, one would probably not get any significant amount of Bitcoins exchanged into ordinary currencies, before the value of Bitcoins would plummet. Also, I believe that at the moment, there are too few merchants that accept Bitcoins, so one would not be able to order anything of significant value before merchants would react to the fraud. Do you believe that the reason why botnets have not attacked Bitcoin, is that they would not have enough to gain, or is it because they do not have enough hashing power?

If you want to profit from Bitcoins, you would not want to work against it (as was explained by Satoshi in his original paper). A 51% attack would not bring you profit, rather it would make everyone involved in the project loose, as Bitcoin's reputation would be damaged.
The other thing is getting enough hashing power. Unless you target mining-specific machines, chances of getting higher-end mining-compatible graphics cards isn't too high. So the trojan would have to rely on getting a lot of moderately powered PCs, and in order to launch a 51% attack, the botnet would have to be quite big. The biggest botnets, consisting of over 100'000 computers could potentially accomplish this, but so far Bitcoin isn't a prime target for botnet activity.

One correction even 100,000 computers would be insufficient.  Most computers don't have OpenCL capable GPU.  CPU mining is rather weak with top of the line CPU pushing <20MH/s.  The average botnet node is often a 4 or 5 year old XP box which was lackluster when built and is unlikely to push 20MH/s.  Maybe 5MH/s.  So 100K nodes would "only" be 500GH/s.  At 5MH/s it would take ~1.6 million botnet nodes w/ average CPU to gain 51% control.  Of course a 8TH/s botnet could generate ~$21K a day by mining instead of attacking.

Edited my answer to "potentially accomplish this".

DeathAndTaxes' answer covers the main point:

Botnets are composed of computers with a wide range of hardware
  (mostly medium/low end) and you need very specific high end hardware to
  efficiently mine bitcoins.

I just want to add a few things about botnets. The largest botnets are estimated to have more than 1 million computers. So while the math makes an attack theoretically possible right now, in practice this is highly unlikely to happen. Here are a few reasons:

Nodes are not constantly up. A botnet with millions of infected computers has a percentage of offline nodes because most people do not leave the computer up all the time
Sustaining a 51% attack with a botnet is hard because people would notice the increase in CPU/GPU activity and would most likely shutdown their computer and investigate the problem
Botnets work because people don't know that their computer is infected. Launching an attack like this would make people run anti-virus scans to find out what is causing the heat and the noise. A botnet owner can make thousands of dollars with stolen credit card data and DDoS attacks. They will not risk losing that just to launch an attack like this. It is not worth it.

Your second bullet point - noticing activity isn't true. A smart attacker will simply keep the attack chain private.  There will no warning signs the attack is occuring.  Once attacker has a longer chain than the "legit" chain it will publish the chain at once.  Clients will see this new "Attack chain" as longer and replace the existing chain instantly.  The only warning will be after the fact when transactions simply go from confirmed to unconfirmed or invalid.

@DeathAndTaxes My second and third points are very similar. An attacker mining a private chain would see the hashing power the botnet constantly dropping because people would notice the heat/noise and shutdown the computer. So even if you start with a 8Thash botnet, that number will decrease with time and a lot of nodes will "clean" themselves from the infection.

@nmat If you do have enough zombies, each only needs to do a small little amount and it adds up to alot.

No.
The greatest element of security has come from the rise of specialized equipment.
Lets look at it in abstract form. If attackers and defenders have equivalent hardware then it becomes a numbers game.  To "block" 100K attackers would require 100K defenders.  Since botnets can be very large this is a dangerous dynamic.  If the defenders are 5x as powerful then it only takes 20K defenders to hold off 100K attackers.
High end GPU are relatively rare in computing world and even more rare among botnet victims.  A top of the line CPU can achieve 20MH/s while a top of the line GPU can achieve 800MH/s.  That isn't a 5x multiplier but a 40x multiplier.  Botnet nodes tend to be older systems with variety of CPU some far less capable than 20MH/s.  Even a few year old CPU is much less capable.  A Pentium IV for example only achieves 1 MH/s.  It takes 800x Pentiums IV CPU to achieve the same hashing power as a single HD 6990.
So specialization has given the Bitcoin network a huge advantage over attackers.  If we assume the average botnet CPU is capable of only 5 MH/s then to achieve 8TH/s of power would require 1.6 million botnet nodes.  The rise of FPGA in time will make the Bitcoin network even more efficient giving defenders an even larger advantage over the average botnet node.


text:
How many consumer computers would it take to launch a 51% attack
What is the hash rate of a standard laptop using the default client and what is it for the whole of Bitcoin? I am interested in this, because I want to understand what it would take to get to 51% of hashing power (is this what it is called?)

possible duplicate of How much Bitcoin will I mine right now with hardware X?

See also http://bitcoin.stackexchange.com/questions/485/how-can-i-compute-mining-profitability

@ripper This is not an exact duplicate of the other question.  This question specifically asks about the hashing power of the entire network, and that question does not mention that.

@PersonVotingToClose Please only vote to close as an exact duplicate when the question is actually an exact duplicate and not just similar.

@Michael - I would like for the part that asks about a specific machine's performance to be removed from this question. If it asked only about the total hash power, it wouldn't be a dup. The answers that this question are generating are answers to the questions I linked to.

@ripper So perhaps some edits are in order or something.  If Question 1 has parts A and B and Question 2 just has part A, Question 1 cannot be an exact duplicate of Question 2.

let us continue this discussion in chat

I got such a great answer, so I believe it is too late to edit the question. Having the two parts of the question as separate questions would really reduce the value of this question, so I believe it is good as it is.

@David If what you want to find out is the ratio of your hash rate to the total hash rate then the title of the question should be changed. This question could also be closed as "too localized in time".

@D.H. I have edited the question, to make it less localized in time.

I'm voting to close this question as off-topic because it's too localized in time.

A standard laptop CPU provides around 2-8 Mhash/sec. An ATI 5870 video card, which has one the best efficiency/cost ratios, mines at about 400 Mhash/sec, and at the moment, the Bitcoin network has a total hashing power of about 12,460,000 Mhash/sec, which equals 31,150 5870 video cards.
So someone would need to invest about 10 million USD just to buy video cards, without including the cost of assembly and other hardware like mother boards, power supplies etc. It is possible to design custom hardware to do Bitcoin mining using an ASIC, which might have ten times better efficiency/cost ratio.
But it will be always too expensive to execute a 51% attack to justify just by the profit from the security breach because the Bitcoin network hash rate gets adjusted to the value of a Bitcoin -- in another words, people buy more mining hardware when the price of a Bitcoin goes up.

A i3 laptop will get around 2Mhash.
The entire network stands at around 12Thash.
So around 3 million laptops to get 50%.
There are better ways to mine though.


text:
Effect on economy if Bitcoin was widely adopted
What would the effects be on the world economy if several million people around the world would utilize the Bitcoin currency for their daily transactions? Would you expect the GDP to grow faster or slower and why?
I am interested in this, because the first thing I want to get straight is whether I would contribute something positive if I supported the project.

This seems offtopic to me. It is inherently extremely speculative, there is no right answer, and it is likely to provoke arguments

Even if this is an uncertain and complicated topic, I believe that it is the essence of the Bitcoin project, so it should be attempted to be answered. This Q&A site is also for experts and for them this could be a fairly trivial question. For all I know Bitcoin could lead to a deflation spiral, which would have horrible consequences if it went mainstream.

Analyzing the effects of disruptive technologies on socioeconomic systems is never trivial. It requires not only a whole raft of assumptions, but also modelling complex feedback relationships. There is no "correct answer" to the question, only possible answers with their assumptions and models made explicit for others to critique. I agree it is an interesting question, but not one well suited for the small snappy SE Q&A style.

This is a good question to ask, just not here at the Bitcoin Stack Exchange.  There are so many different possible effects that many answers will be equally right, and being an expert at Bitcoin doesn't make you an expert at economics, etc. so there will be a lot of opinions without authoritative sourcing.  If your question is primarily economic, you should find an economic community and ask there.  If it is in another focus you should either edit it to that scope or search for another appropriate expert community.

@eMansipater You have two points: 1. Although conclusions in economics are never as clear as in for example math, there is one correct answer to this question, the accepted one. 2. I believe that you are way too narrow minded when it comes to the kind of questions can be asked here (meaning that one has to spend a significant percentage of my time on this Q&A to argue with you). One should not consider whether a question primarily requires BitCoin expertise or expertise in economics (often one cannot know which expertise is required to answer a question), as long as the question about Bitcoin.

@David I can think of at least 20 more significant "effects on the world economy if Bitcoin was widely adopted" so the one you have chosen is relatively arbitrary.  I'm glad it was useful to you, but as far as lasting value to the internet at large (the thing that keeps sites like this going) it can't really be considered a "final, objective answer".  I can understand your frustration with the fact that I consider several of your questions off-topic, but you need to realise it's not personal--my concern is for the overall success of the site, which depends on a specific measure of quality.

This is the most on-topic question in the whole site for me.

GDP would accelerate because of less transactional friction.

I actually, think this is a good answer. I believe I misunderstood the purpose of Bitcoins when asking the question. The purpose, from what I understand now is not that of a storage of value, but more a media of exchange. So this answer covers that completely.

GDP is not a good measure of the growth of wealth (because it measures spending, which is problematic for many obvious reasons). But, in terms of the "growth of wealth" with a bitcoin economy, I think it would be substantial. Bitcoin makes trade more efficient on a fundamental level and applied to an entire world this would create massive wealth gains. The world would be materially richer, because it wouldn't have to consume as much to engage in trade.

If people are worried about deflation they really need to distinguish what kind of deflation they are referring to.
Asset deflation or monetary deflation.
The real issue with our economy right now is the fact we have asset deflation coupled with monetary inflation which is the worst of both worlds.  I believe asset deflation along with monetary deflation would be less problematic than most people think. Maybe lemonginger was right, it is a very big concept.  We are not even talking about the further implications bitcoin will bring into contract-commercial law.  All of which I believe are a positive personally.  This is a huge subject.

One thing often overlooked is that bitcoin is most useful in chaotic economies.  Bitcoin likely will not replace the Euro, Dollar, Yen, or Yuan for very long time (if ever).  However many economies suffer from poor economic planning and gross manipulation by central banks.
Take the Zimbabwe hyperinflation scenario.  If bitcoin existed and was easily used by 3rd world country as the Zimbabwe dollar collapsed due to rampant printing of money people would move to another store of value such as bitcoin.  While the Z dollar would still have collpased the material affect on the economy would be less significant.
Thus the first world (providing most of the hashing power) could provide a launch pad for more stable economies in developing nations and greatly increase the use and legitimacy of bitcoin.

I agree with your point, but AS IF the first world cared about the third world. I think efforts from governments and enterprises could be made to impose laws that restrict bitcoin exactly because it can help developing countries. Think about why ACTA is there, it's to keep few rich and many poor (there can only be rich people if there are poor people, under capitalism, actually it's the basis of capitalism I'd say).

Bitcoins are economical to buy from many different currencies (ie the conversion fees are low), so they have the potential to make many financial & retailing tools available to a much larger audience. This could include stocks, bonds, commodities as well as traditional retail.
Bitcoins also have the potential to change the way artists (in a very broad sense) earn their money. Imagine if the "Like" or "+1" button also donated 0.0001 bitcoins to the author of the content.
Have a look at http://www.humblebundle.com/ (or get a summary of what it's about from wikipedia) to see the power of voluntary donations.
Regardless of the effect on GDP, surely this has got to be beneficial for humanity, which is essentially what economists use changes in GDP try to measure anyway.

This is a really good answer!

Given that economists cannot agree unanimously on the global effects of relatively small events like a change in interest rates or a stimulus package, I would say that a major event like mass adoption of Bitcoin is far beyond anybody's prediction horizon. The global economy is a complex dynamical system and we really don't understand such things as well as some would have you think.

That they do not agree does not mean that it is not important to try. A guess is often better than no guess. I agree, though, that the question might not be suited for this site.

Well, the GDP measured in bitcoins probably wouldn't grow at all, most likely it will shrink. However, that doesn't mean the economy shrinks, just that the bitcoins are increasing in worth.
In deflation adjusted bitcoins, I think that the GDP will grow, and if only because micro- and international transactions are vastly simplified. However, I expect that it would also lead to a collapse of the traditional banking system, since those are superficial now.
Next, note that a growing economy isn't necessarily positive. If you take into account that resources on earth are not infinite but limited, it becomes obvious that a stable, not growing economy (I think that's what you mean by GDP) is preferable.

The debate of whether a growing economy is positive is outside the scope of my question.

But it is essential to it - how could you judge whether bitcoin was positive or negative without that assumption?

You are right, I am assuming that, so your answer is relevant. I do believe that your are wrong in assuming that an economy cannot grow without using more resources, though, but let's leave that debate.

Yes, that debate should go somewhere else. Overall, I think you should support the bitcoin system, and if it's just because it reduces inefficiencies.

Economics are complicated, so reducing inefficiencies alone is not enough to judge it as something positive. One thing I am especially worried about is inflation or deflation during the cycle, when the government would have reduced it's influence

We are already mining the hell out of Earth's resources, and we have been much before Bitcoin. In a "good" economy, people would recycle as much as possible, and growing GDP will be a good thing. Now this does does have anything to do with Bitcoin. It has to do with what we, humans, do.

Bitcoin is made for transactions over the net and thus it is ideal for selling information and intellectual or informational services. How such an economy could look like is uncertain. My guess is that because bitcoin make decentral structures possible, it could support more equal power and opportunities.
I am quite confident it would give many many people which are smart, well educated and live in regions with low wages new opportunities - think of all the intellectuals in the Arab world. Bitcoin has the potential to create a worldwide information and service economy. As these are valuable things I think this could be very positive.
Bitcoin could make it also much easier to live from things like art and music.

As one who has tackled the issue of transaction fees with the intent of lowering them I have to say that the way Bitcoin shifts all transaction costs to the buyers and sellers (separate currency, peer to peer, mining) is brilliant.
As some of the comments have pointed out the real system resource use and cost Bitcoin incurs
needs to be rightly quantified in relation to alternatives. Where Bitcoin fails the alternative would need to be adapted.
In any case Bitcoin has certainly set the stage for the future of "money".

Millions of dollars every day will be spent on keeping the bitcoin network up.  After all, it has to use 51% or more of all GPU power in existence - or else risk the entire economic system collapsing.

Why do you think it has to use 51% or more of all GPU power in existence? If Bitcoin uses say 10% of the power, and the rest 90% is used for gaming / SETI@Home / whatnot, does this mean the network is insecure?

Not only is the answer incorrect I think that IF bitcoin was widely adopted people would devote their computers to an "as needed basis". If the network noticed a single entity gaining significant fraction of hashing power it could notify these idle nodes which would spring into action dumping terashashes of additional power into the network).
It is entirely possible in some future bitcoin economy that the number of idle but ready nodes greatly exceeds the active nodes providing a second layer of defense.

The answer by Patashu is completely misinformed. First of all, many tens of millions of dollars are already spent every day just running/managing the current banking system - so any cost Bitcoin creates must be compared to the status quo. Second, Bitcoin doesn't "require" 51% of all computing power in the world to be secure, it just requires enough that it becomes impractical to attack it. It is already at that level and will grow with more users.

I am not an economist, but one negative impact I can see bitcoin having if it took over an entire economy is that it would make the digital divide worse.  There are still people out there who don't have computers or cell phones.  Paying for things is easy for this group of people is still easy while there is still physical cash - but if there were only digital cash?
Short of a government handout giving away free cell phones with bitcoin wallets to these people, I can't imagine this would be good for the poor and homeless people.

-1 sorry but this doesn't make sense: it would be trivial to print physical bitcoin money to distribute in those areas.

Physical money is far more complex with bitcoin than with traditional fiat currencies.  Why?  The reliance on the PK cryptography system.  That's the downside to printing physical currency: it's not just an analog to physical cash where if you lose it, you're out $20 or $50 or whatever denomination dollar it was.  To spend a bitcoin, there has to be access to a private key, and with access to that, anyone who steals someone's physical bitcoins can potentially have access to far more than just the $20 denomination, but rather the entire amount in one's wallet.

Never heard of Casacius, I guess? https://www.casascius.com/


text:
What does the main_chain value returned by blockchain.info mean?
What does it mean that for bitcoin block to be on the Main Chain? What other chains are there? Is this as opposed to testnet?
This is regarding the main_chain value in the blockchain.info api here:  https://blockchain.info/api/blockchain_api

If a block is part of the main chain, that means that the tip of the blockchain is a descendant of that block.
If a block is not part of the main chain, that means there is a longer chain of blocks that does not include this one. These are called orphaned blocks or invalid chains.
If a block is in the main chain, its parent is automatically in the main chain too.

In the above figure, the black boxes are the main chain. The grey blocks are invalid chains. The green box is the genesis block.


text:
Tracking a specific Bitcoin to make it represent something else, which could then be traded without trust
Imagine if one could follow the movements of a specific Bitcoin (or fraction thereof) in the block chain. Then that would mean that I could make that specific Bitcoin represent something else, which people could then freely trade just as other Bitcoins.
For example, I could mark 100 Bitcoins and define that these represent 100% of the equity of my company. I could then put them up for sale for something I felt was reasonable given the value of my company + the value of the Bitcoins themselves. People would know that they could freely and almost anonymously resell the equity of my company without trusting anything else than what the Bitcoins represented. No need for lawyers, no need for contracts regarding selling and buying of equity, no need to meet at all to do the exchange. My company could also pay the owners dividend, because I would always know which wallets owned the special Bitcoints.
My question is therefore: Is this currently possible, given all the nice scripting features in Bitcoin. And if not, then are there currently any plans to modify Bitcoins to enable such a feature?
Needless to say, I believe that there is a huge potential in this, because one could basically mark the owner of billions of things (virtual or not) by assigning something like 0.00000001 Bitcoins to each thing. This way one would always know who was the true owner of that specific thing.

Sounds like a great idea to me. This article seems to describe something similar: https://en.bitcoin.it/wiki/Smart_Property

As you say following the outputs of a transaction could be used as you describe, there are more people that like that kind of use cases and that's why ColoredCoins was created or Zerocoin which try to make it completely anonymous.
Indeed so many people is trying to add metadata to coins that in 0.9 version of the client there is a new output type that can include 80 bytes of data with no other use (you can read more about it here https://bitcoinfoundation.org/blog/?p=290)


text:
Any books about Bitcoin?
Thanks for any link/author+title. I prefer max. 2 years to the past if possible. If you know about some book that will be published in the near future, you can mention it too.

A new book called Bitcoin Step by Step is out on Kindle.

http://www.amazon.com/dp/B00A1CUQQU

It will get users started safe and secure in the Bitcoin market place.  It takes them screen by screen
- on how to set up a wallet securely
- Funding an account
- sending / receiving BTC
- Extracting BTC to currency
- Where they can spend BTC
- How they can earn BTC

Bitcoin was barely around 2 years ago;).
Currently to my knowledge the closest thing to a Bitcoin book is my master thesis on Bitcoin. It focuses on analysing the security of Bitcoin software and the ecosystem, but a lot of people find it to be a good read even for beginners. It is in English, but wasn't published anywhere but a couple prints for my studies and online.

It was one of the first things i read of substance on BTC...It gave the first window into the technology..the other books are very much beginners guides for Mum & Dad

Hello. Is there any hope to have it converted to ePub format for easy reading on e-ink or any other small screen devices?
Thank you very much.

@Dakatine It was written in Word, so I'm not sure if it would be a painless and straightforward process to convert it to such a format without devoting a lot of effort into it.

If you're into more of the programmatic side of Bitcoin check out "Mastering Bitcoin" coming out soon from O'Reily Media.
You can get the "raw and unedited" version for free, just search for it on Google. (it's legal and downloadable from O'Reily Media)

Peter Surda is writing a book which if I understand correctly, will explain the foundations of money and how they relate to Bitcoin.
In addition, coindl.com lists several eBooks, some of them are about Bitcoin. Examples:

"A Beginner's Guide To Bitcoin And Bitcoin Services" by Trace Mayer,
J.D.
"A Lawyer's Take On Bitcoin And Taxes" by Trace Mayer,
J.D.
"You Can Learn Bitcoin" by David R. Sterry.
"Introduction to Bitcoin Mining: A Guide for Gamers, Geeks and Everyone Else" by David R. Sterry.
"Bitcoin - What It Is and Why It Matters" by Anthony Freeman.

Travis Batterson recently wrote a book called Bitcoin: A Basic Explanation of Everything. I know it's available on Kindle here and you can order physical copies on the website basicbitcoin.com. The book gives a good cover of all things Bitcoin and for what it's worth isn't bad.

You Can Learn Bitcoin

https://www.coindl.com/page/item/391

There are a couple others:

https://www.coindl.com/page/category/ebooks

Le Bitcoin Book (in French) written by Pierre Noizat is available here:
http://www.lulu.com/shop/pierre-noizat/bitcoin-book/paperback/product-20477450.html
Published under creative commons license.

What's the deal with Bitcoins is THE book to read to learn about bitcoins. On Amazon and at http://bitcoins.peopletested.com

Owning Bitcoin covers Bitcoin in both theory and practice:
https://bitzuma.com/owning-bitcoin/
Topics include:

Elliptic curve cryptography
Hash funtions
Network operation
Script
Advanced contracts
Cold storage using Electrum

Here is one more blog, a small eBook:
https://infopedia.io/revolution-of-money/
(Money and Payment systems of tomorrow)
Bitcoin rise with crypto industry story
Disclaimer: I'm the author.

"The Wonderful World of Bitcoin and Other Inventions"
by Penina and Zahava Shtauber
It's a kid's book, really fun and accessible.
https://www.amazon.com/Wonderful-World-Bitcoin-Other-Inventions/dp/9659275749

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


text:
What is the easiest to operate/fastest solo bitcoin mining client for a cluster rig?
I'm planning to set up a rig and need a solo mining client. Can you offer me some suggestions? (Please don't just tell me that solo mining isn't worth it).

If you have a GPU rig cluster, you ought to look at standard miners. This question should help you get started:
What open source miner applications are there?
In the end you ought to try a few of them out and see which ones give you the best performance on your hardware. You can also have a look at Mining hardware comparison Wiki page to see what performance you should expect from your hardware and what configuration was used to accomplish it.


text:
Is there a way to estimate total number of bitcoin users/wallets?
I was looking at Bitcoin Wiki.   It estimated 60,000 users (Sep 2011) based on
counting the number of bitcoin clients connected to the network in the last 24 hours.
Another possible estimate could come from Sourceforge download numbers.  But that include multiple download by the same person and across different version, and also exclude users that may have downloaded the client from other mirrors.
Have there been any new estimates on the total number of bitcoin users, or if this is too hard to count -- the number of unique wallets?

The number of wallets is impossible to count, as they can contain zero to thousands of addresses each (zero, as there may be users who just want to observe, or clients that only create addresses when explicitly asked to).
Counting users by number of client downloads won't give you a good estimation either, with all the web wallets that are out there, plus of course the other clients that are out there, the alternative ways of downloading the client and the double downloads.
Counting connected clients will also give bad results, again because of the web wallets, plus people who don't broadcast their IP address or simply don't start the software unless they really need to.

You may be able to estimate the total user count by asking all web wallets for their user counts, and then adding the amount of nodes on the network over a relatively long period. But then you'd still need to compensate for those who don't broadcast their address, dynamic IP addresses, etc.
So yeah, it's hard to estimate the user count.


text:
What is/Is there the relation between the value of a bitcoin and the prices of video cards?
A significant number of Video Cards (significant investment) are required to reduce the possibility of 51% attacks. What would happen to the price of a Bitcoin if the prices of Video Cards suddenly plummeted, or (easier to imagine) their capacity quickly increase 20-fold.

If hardware cost or efficiency rises, the new mining power will enter the network, and the difficulty will rise, keeping the rate of bitcoin production stable - this is one of the key design elements of bitcoin. So, arguably nothing should happen to the price of bitcoins due to cheaper/better mining hardware.

Price comes from ratio of supply and demand. Bitcoin supply rate doesn't change, about 300 bitcoin per hour. So the price changes only when demand changes, and the difficulty to mine bitcoins adjusts to the new price, in another words price change would affect network difficulty, but not the other way around. Therefore video card price would affect difficulty, but it wouldn't change bitcoin market price.

Price drives difficulty and not the other way around (or at least not as much). The price/performance of hardware  affects difficulty so you can't predict the Bitcoin price based on the cost to run the Bitcoin network.
For example, during the last 6 months the Bitcoin price fell 90% while the hardware costs remained exactly the same.

The change of price in Bitcoins would probably be temporary. Once the difficulty would adjust itself and coins would be generated slower. After that, the market would probably go back to normal levels, after people would figure out that the cost of electricity are bigger than the worth of Bitcoins. It is pretty much what is happening right now.

Because of difficulty adjustments price wouldn't be affected.  Regardless of how much hashing power the network has the number of coins produced will remain relatively static.  More efficient (in terms of $/MH and MH/W) video cards will drive up hashing power of the network.
The performance per watt will likely be more important than performance per dollar as purchased video cards are a sunk cost however they need to compete in an ongoing basis against newer more efficient cards in power consumption.
A video card with half the power consumption for the same performance (MH/s) will have a lower cost of production.  This means it can be profitable at a higher ratio of difficulty:price.  If a sufficient portion of the network is using more efficient hardware we would expect the difficulty relative to price to rise.  This will eventually force out users with inefficient hardware.  We have already seen that in the demise of CPU mining.
Eventually this will be seen with the rise of FPGA mining.  FPGA don't need to achieve a price parity with GPU (and likely never will) but as their price becomes more competitive, more will be adopted and that will increase the efficiency of the network significantly.  The ratio between difficult : price will rise accordingly.


text:
How do you safely set up a offline deterministic wallet?
There is a good tutorial for setting up a safe offline wallet with a regular bitcoin wallet here.
If I want to set up a safe deterministic offline wallet (i.e. Electrum). What would be the right steps?
Should I just store the seed, or also backup the private keys?

You can do all that and more with Armory

On a deterministic wallet the only thing you need to keep safe is your seed / passphrase to be able to restore it in the future
Here you can find a tutorial on how to make transactions with an offline Electrum wallet using your Master Public Key
http://electrum.org/tutorials.html#offline-mpk


text:
Does segregated witness allow to securely create LN channel opening transactions?
In Rusty Russell's paper about the simplified version of the Lightning Network, some problems about the practical implementation of the opening channel method from the original LN paper are mentioned:

The anchor transation id required for the commitment input will only be known once the anchor is signed.
The anchor transation can be malleated by either party before entering the blockchain, rendering the commitment input unusable.

The paper mentions mentions how problem 2 is not solved by BIP62, but does not talk about segregated witness. Are these two problems effectively solved with segregated witness?

Are these two problems effectively solved with segregated witness?

One is; one is not.  Specifically:

(1) The anchor transation id required for the commitment input will only be known once the anchor is signed.

Segwit fixes this.  If the anchor transaction contains only segwit inputs, then its transaction identify (txid) does not change when signatures are added.  This allows other transactions (such as the Lightning commitment transaction) to refer to its outputs regardless of whether or not it has been signed.

(2) The anchor transaction can be malleated by either party before entering the blockchain, rendering the commitment input unusable.

Segwit does not fix this specific problem, but it does fix an important related problem.  As the paper you cite says, "The last of these is particularly pernicious, as BIP62 doesn't solve it: signatories can always re-sign a transaction, hence altering its transaction ID."
The anchor transaction is created with inputs each user unilaterally controls (or shares control with a third-party to the Lightning channel currently being opened, an irrelevant detail to this discussion).  Because of this, each user has the ability to create a full double spend of their part of the anchor transaction; if that double spend is what's included in the block chain, then any children of earlier versions of the transaction (such as the commitment transactions) are invalid.
The important related problem segwit does solve is useful to Lightning and required by other smart contract protocols.  A payment in a payment channel (including Lightning) uses multisig to require both parties sign the payment under regular circumstances, called 2-of-2 multisig. Because signatures sign all of the non-signature data in a transaction (normal SIGHASH_ALL) but are currently included when generating the txid, either party can unilaterally malleate a transaction by changing his signature.
But with segwit, all non-signature data in a transaction is still signed but the signatures are not covered by the txid, so neither party can unilaterally change the txid without invaliding the other party's (or parties) signature or signatures.  In other words, it requires both 2-of-2 to change a txid or, more generically for m-of-n, segwit requires at least m participants to change the txid.
This simplifies the design of Lightning-style Hashed TimeLock Contracts (HTLCs) and also improves the privacy of outsourcing channel enforcement, but is not required for Lightning.  However, it is required for some other smart contract protocols that use sequences of transactions.  For example, a Spillman-style payment channel would be secure using segwit but today it is vulnerable to malleability.


text:
What is a "mike"?
The MultiBit website mentions Bitcoin amounts being showns as "mikes":

Everybody has a different way of wanting to display their balances and this is especially true when dealing with different countries and languages. Users of MultiBit HD can now fine tune their own display to exactly match what they want. Support is in place for millis, mikes and satoshis along with different presentation styles including the icon, "BTC" and "XBT".

What is a "mike" and why is it named such?

related: Naming convention: MilliBit or Millibitcoins (mBTC), microbitcoin or Mikrobitcoins (μBTC)?

One mike is one microbitcoin, i.e. 0.000001 BTC or 100 satoshis.
It's called like that only because it sounds similar.

Yet the current consensus seems to be to call this a bit. Most wallets have switched or will switch soon (or at least have it as an option). So it's probably best to forget about "mike" again.

http://www.btcsatoshi.com/ gives a nice overview of the different "tiers".


text:
Best p2pool software
I'm pretty new to Bitcoin. This will be my second question at this site and I'll try to make it less verbose than the first while still containing what seems to be important detail.
I'm still in the middle of synchronizing my Bitcoin Core client with the network. But while that's working, I'm considering mining. I dislike centralized pools for all the good reasons that many people do. It seems decentralized is something that many are beginning to recognize serves the best interests of everyone in the community which I guess is why p2pool was written. Thank you to everyone involved in that. And so if I do start mining, then p2pool seems like the best choice for me.
But what's the difference between these two projects?
https://github.com/forrestv/p2pool/graphs/contributors
https://github.com/Rav3nPL/p2pool-rav/graphs/contributors
Are these just different implementations of the p2pool protocol?
It looks like the forrestv project's last release was in 2013, so 2+ years ago?! Does that indicate stable/finished application or does that indicate an abandoned project?
Rav3nPL's project seems to have more recent activity. Which project is better and why?
If it matters for the answer, I'm using Linux for my Bitcoin node.

forrestv stopped updating the version, but he's still adding features.
Anyway, the Linux installation instructions say to just get the latest master:
sudo apt-get install git # if git is not installed
git clone https://github.com/forrestv/p2pool.git
cd p2pool
make


text:
Could i build a mining rig with these parts?
I have researched bitcoin mining for a while, and i have decided that i want to build a dedicated miner. Since i am very low on budget, I thought that maybe i could use an old computer that i have in my house for the motherboard and CPU requirements, and by only a GPU. My old computer has an AsusTek computer inc P5S800-VM motherboard, featuring an Intel Pentium 4 processor. Link:
http://www.asus.com/Motherboard/P5S800VM/
Is there a way to add an ATI GPU to this system and make it work as a miner? Thanks for any responses, and sorry if i was not clear enough - i am quite new to this field.

First the bad news: your Motherboard appears not to have a PCI-E Slot, which is required to fit any modern GPU. On the other hand for the price of a single GPU you can order more than 1 ASIC miner with lower power consumption, i.e., cheaper to run, and more computational power.
I'd wait until the first ones actually ship, though.

I have to say you did not research Bitcoin mining enough. Mining on a GPU is obsolete, reports say ASIC-based mining devices with x40 the performance have already started shipping.

As i have said, my budget is very limited and i would prefer to use mostly computer parts that i already have instead of buying new expensive hardware.

@arielschon12 you might desire being able to fly, but it won't happen anyway. GPU mining is going to be obsolete soon, so you'd likely be mining at a loss.

Ok then, so would you recommend any butterfly labs products? Or do you know perhaps another ASIC-based mining devices?

@arielschon12: http://www.avalon-asics.com/ seem to be the winning horse in this race, but I'm not sure they're accepting new orders currently. At this point in time I can't recommend any of the vendors - but I can recommend not buying a GPU for mining as it will almost certainly cause you to lose money.

Unless you have access, somehow, to free electricity (like, say, using a currently-unused solar panel - please don't think of illegal ways to get it for free) you wouldn't be recovering your costs. You could still buy a GPU and set it to mine Litecoins instead, though - mining them is much CPU and old-machines' friendly


text:
Testnet Bitcoin Generation Time
2 Parts to this.
1st - What is a typical winning block (I get coins) generation time when running on testnet.
Ive done numbers with calculators and all that but given I cant work out accurately what the 'normal' difficulty for testnet is, I dont know where in the range of numbers I've seen is right to consider normal.
2nd - How can I be sure that I'm actually mining, not that I'm just computing useless hash after useless hash thats getting sent to a black hole somewhere?
So far, using 2 machines CPU mining on testnet (and even trying unsuccessfuly for an hour to get GPU mining to work as well, figuring that if it worked, i can just stop this after a few minutes and get on with my work) to generate a bunch of coins for testing some bitcoin related transaction handling software.
I have managed to generate zero bitcoins.
1Mhash/s and 500Khash/s for over an hour each. Plus the hour trying various gpu mining things on and off. And no coins. I'm confused & wondering how to debug this. Since I can send and receive bitcoins without issue.
I gave up trying to testnet mine since I was able to use a generous faucet to borrow some for testing. But the geek in me is very very irritated at not having worked out what was broken and fixing it. And now I'm in the situation where I'd like to put my own machines horsepower back to work mining on the testnet in order to speed up the transaction confirmation times, even if its not by much, so im stumped.
Edit -- More specific hashing figures. I lowballed my numbers a fair bit.

Laptop [ Macbook Air ]

CPU [ 2Ghz i7 ] Using:

bitcoin-qt internal miner ~1.5Mhash/s over ~4hrs

Desktop [ Custom ]

CPU [i5-2500K@3.3Ghz] Using:

bitcoin-qt internal miner between ~4.2Mhash/s and 2.3Mhash/s over ~2hrs
GUIminer/poclbm OpenCL ~1Mhash/s over ~2hrs

GPU [ AMD 6900 Series GPU-Core@830Mhz Mem@1300Mhz ] Using:

poclbm OpenCL ~325Mhash/s over ~30min
DiabloMiner ~325Mhash/s over ~30min
cgminer wouldnt run, kept crashing on start, debug log didnt have any clear cause, the log actually looked like it died half way through trying to say something. The last entry was something like 'Tha'

So, yeah all that and no coins.

What is a typical winning block (I get coins) generation time when running on testnet.

I plugged your rig statistics into this calculator, and I find that you should be getting 60 blocks a day at difficulty 1. Seems to be oscillating between 1 and 42 at the moment. Maybe you should try running for longer.

How can I be sure that I'm actually mining, not that I'm just computing useless hash after useless hash thats getting sent to a black hole somewhere?

The standard client is pretty good about not even trying to generate when it's not connected. Perhaps you could join a testnet pool? :)

Ive updated the question with more accurate info on how much time i spent mining.

What difficulty did you use for that calculator btw, as i saw the following difficulty levels reported by bitcoin-qt while trying to mine:
1 -> (sometimes)
22 -> (twice)
42 -> (most of the time)

And if you have information on testnet mining pools Id be grateful, I did have a look but may have not searched exhaustively enough through some of the forums out there.

What difficulty did you use for that calculator btw I used a difficulty of 0.5, since block explorer was reporting a difficulty of 1 at the moment. And if you have information on testnet mining pools Id be grateful I don't think anyone has bothered.

Yeah thats what has me most confused. I rarely saw the client report it was working against difficulty 0.5/1. I usually saw higher. And since the documentation on testnet was so simple "Run './bitcoin-qt --testnet -gen' and you should see blocks appear within a few minutes, p.s. play nice" its been very hard to find anything to explain my situation.

@Techdragon Not sure what's going on. If you had 300 Mhash/s aimed at it for an hour, you ought to have found a block. Are you sure you're mining the testnet on your graphics card?

Fairly sure. Bitcoin-qt clearly showed connected to the testnet, and had been configured to act as the RPC server for the GPU mining software. A few typos encountered along the way makes me even more sure that it was looking for my specific bitcoin-qt provided JSON RPC server instance.


text:
Can I download the whole block chain from somewhere?
Every time I turn on the Bitcoin client it takes days to catch up with the block chain.
Are there alternatives to getting it trickling through the peer-to-peer network? Can I just download it somewhere? Wouldn't this be ideal for distribution via BitTorrent?
If so, how do I import it into the Bitcoin client?
My client would still be validating this data (can it?), and it is all signed and proof-of-worked, so there is no real security problem here, is there?

Apparently this does not speed up the time it takes to import and validate the block chain much, because the cryptographic calculations are the bottle neck, not the network I/O. But still, downloading everything first and validating later reduces the time you need a working network connection. Validation can be done offline, too.

Good question! I was going to ask "How long is it supposed to take to download all blocks from the transaction history?". Short answer is: the times it takes to download a 1.4GB file, plus a bit more to get the latest blocks from peers.

Can I know the from where i can download a sample of blockchain for some basic analysis?

Note by Murch: This download link is broken and it seems unlikely to me that anyone still provides this service. Network and synchronization code have been immensely improved over the years so that the initial block download via the network is usually acceptably fast.
You can download the blockchain nightlies handled by tcatm (one of the Bitcoin core developers and the operator of bitcoincharts.com). Unpack and copy&replace blkindex.dat, blk0001.dat files into C:\Users\"username"\AppData\Roaming\Bitcoin for Windows 7, and run bitcoind with the -rescan option. Then it will take only a couple minutes to download up to latest block. Be aware that manually copied blocks won't get verified.

The -rescan option doesn't verify blocks. It only checks for transactions that affect your wallet. It shouldn't take very long, not more than 10 minutes or so. (And you must do this if you use the nightlies. Otherwise you won't show or be able to spend any Bitcoins you received in blocks you didn't download from the Bitcoin network.)

Are those .dat files portable? Or only work on Windows 7?

it should be interchangeable, https://bitcointalk.org/index.php?topic=26044.0

The only issue would be if you compiled the client yourself and used a different version of BerkeleyDB. Otherwise, it should work on all platforms.

Just found some more about it from Matt Corallo, he says it will work, https://bitcointalk.org/index.php?topic=36847.msg453167#msg453167

This is to report a rotten link :(

@DavidSchwartz excuse my ignorance, but wouldn't a rescan w/o revalidation of the cryptographic work be trusting the entity providing the download? Thus wouldn't this be encouraging a centralizing single-point-of-failure node w.r.t. to trust and honesty? P2P systems must inherently not trust in order to remain decentralized. If I am correct, then the -rescan command line option should be removed?

@ShelbyMooreIII: You still need the -rescan option to rescan trusted databases if the wallet is changed.

Howdy @Serith - any chance you could find an alternate link to blockchain? The link is dead, and it's breaking most of the context of your answer --

The link is broken, could you update the answer please?

The link is broken, so downvoted.

This was an issue with versions of the client prior to 0.3.24 -- once the vast majority of the network switches over, the block chain downloads should proceed as fast as your CPU and network connection can handle.
There are places you can download the block chain, but the client doesn't provide a way to accept the block chain in any form other than from the network. If you're starting from nothing, it will generally take about 10 hours to process the whole block chain. Most of it isn't transfer time, it's CPU time validating all the hashes and signatures.

+1 If it really takes 10 hours to validate the chain when reading from a local file, then I guess I have to give up on the idea... Is there a way to know which versions everyone is on?

Watch your CPU usage while you sync up. Unfortunately, the client can't really take advantage of multiple cores as it catches up. The right ultimate solution is for most people not to run the client but to instead run a lighter piece of software that only does what they actually need.

@Thilo You could "divide" it. So 10 days, 1 hour each.

A lot of people want to use Armory as their bitcoin client, which really makes the idea of using a light bitcoin client impossible, unfortunately.  I submitted a request to etotheipi to add in an option to Armory to load the blockchain from a server, and he said it's something he might do in the future, but it's pretty low on his list of priorities.

answer states there is no way to load the blockchain from disk, but it is well-known that you can move the blocks subfolder around to do this.

answer states there is no way to load the blockchain from disk, but it is well-known that you can move the blocks subfolder around to do this.

A good start of downloading block chain is here
http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/
update 22.02.2021: URL is not more Working

This is the correct answer. "Bitcoin-Qt/bitcoind version 0.7.1 and later supports a special import feature:  If the file "bootstrap.dat" is found in the bitcoin data directory, it will validate and import all blockchain data found in that file." The torrents are in the link indicated by Codler.

Broken link....

As of 2015-06-05, this project may now be found at https://github.com/bitcoin/bitcoin

"Bitcoin-Qt/bitcoind version 0.7.1 and later supports a special import feature:  If the file "bootstrap.dat" is found in the bitcoin data directory, it will validate and import all blockchain data found in that file."
The official torrent can be found at: http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/
Magnetic link: magnet:?xt=urn:btih:6fe493ba606847eac163baf35aae9db319735482&dn=bootstrap.dat&tr=udp://tracker.openbittorrent.com:80&tr=udp://tracker.publicbt.com:80&tr=udp://tracker.ccc.de:80&tr=udp://tracker.istole.it:80
Thread: https://bitcointalk.org/index.php?topic=145386.0

This is the correct answer.

Bootstrapping will be deprecated as of the 0.10 release in a few weeks. The torrent file mentioned in other answers will never be updated again because it is faster to have Bitcoin Core sync over the network.
So no need to download the Blockchain seperately anymore!
You can find the release notes here https://github.com/bitcoin/bitcoin/blob/0.10/doc/release-notes.md

True, but there will still be circumstances where it's useful, like when you have a slow connection, but the ability to load the bootstrap file through a usb drive.

Good point but then I would not run a full node and rather Electrum for example

(edit: removed old and stale magnet)
now use these, as advised in top answers:
https://bitcointalk.org/index.php?topic=145386.0
https://bitcoin.org/bin/blockchain/
http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/bootstrap.dat.torrent/download
http://armoryguide.com/bootstrapping-the-blockchain/

authors: Иван Кокорев

authors: Кирилл Назарук


text:
If the economy was based on bitcoin, how would someone go about getting a loan?
In today's society, people often take out loans from banks. In an economy that was run on bitcoins, how would someone go about getting a loan? I do not understand how this would work with Bitcoin's deflationary model. It seems a loan would be creating a short on bitcoins which could be very harmful with the value of bitcoins increasing.

Loans are possible in a deflationary environment.  Currently bitcoins is too volatile (which has nothing to do with deflation) to make lending viable.  For the purpose of answering the question I will assume that in the future volatility is either low or easily hedges.
The interest in a loan comes from 4 components:

Opportunity Cost.  Instead of giving you a loan I could do something else productive with the money.  If I could get a 10% ROI on my money by installing a new air-conditioner that will factor into the interest I change.  It would be a loss to loan money to you at less than 10% (after adjusting for the other risks) as I would "earn" more by taking the 10% ROI.
Inflation risk.  If money is worth 5% less in one year I will want to be paid 5% more even on a no risk no profit loan.  Thus inflation contributes to the overall interest charged.  Deflation would subtract from the overall interest charged.
Default risk.  If you don't pay me I lose money.  In the long run I need to collect interest equivalent to % of amount loaned that is lost due to defaults.  If I project I will lose on average 10% of amount loaned and charge 11% interest then I would break even.  Note: real world calculations are more complex because one may collect some revenue even from loans that default and may receive collateral, or sell defaulted loan for some recovery.  Still default risk needs to be included in the price of the loan.
Delayed Consumption.  By giving you a loan (even if priced to exactly break even) I am delaying my ability to use my money today.  I can't use it until repaid thus I will charge a premium for the time I lose waiting for repayment (sometimes called time value).  Thus even if all other costs/risks are 0% there will be some interest charged otherwise I might as well just keep the money in a can.

Interest is the "cost" of money.  Of the four components that contribute to that cost only one of them is related to inflation/deflation.  If in the long term all other factor were equal (which is unlikely), the USD had 3% inflation rate, and BTC had a 2% deflation rate one would be expect interest rates in BTC to be ~5% lower.

Generally opportunity cost is refers to an alternative method of deploying capital.  Delayed Consumption refers to the time value of the money.  Simplistically even if I have nowhere productive to put my money I expect to be compensated for the time value of my money.  If not ... I might as well bury it in a can in my backyard.   However they are closely related.

You're confusing the two bargaining parties. Generally the Shapley value of a two-person bargain is such that both parties make the same profit from the deal. So even if the lending party has no current use whatsoever for the money, he will still expect to profit from a loan if the other party does. But what you've described is just a breakdown of the lender's costs. And again, #1 and #4 are the same - money has time value precisely because one has the opportunity to use it elsewhere (whether the use is investing in appreciating stock or buying a bag of Cheetos I want now rather than later).

would be more helpful if it described what a deflationary loan looked like. Most of the answer describes 'cost' of money.

@osmosis.  Not sure what you mean.  Interest IS the cost of money.  A deflaitonary loan would work exactly like an inflationary loan except interest rates would account for expected deflation not inflation.  The only other material change is that collateral is less effective method of reducing risk.  Over time the collateral will be worth less and less relative to initial loan balance still that risk is factored into the cost of default.

If you take a loan out on a currency that is not stable, you are asking for trouble.
If the deflation rate was stable, one would have to take that into consideration when calculating the interest rate, similarly as one would in inflatory economy.
One could also consider the concepts of Smart Property, as well as some concepts use by Islamic banking. But those are concepts that are probably best answered in the Economy SE.

Futures and options can be used to eliminate the risks associated with price volatility. If you're borrowing and worried that the price will go way up, make an agreement with someone to trade at a reasonable price at some point in the future. Lenders can do the same on their side.

In an economy based on Bitcoins, they wouldn't actually be deflationary. An economy based on Bitcoins would be just like an economy based on dollars, except the Fed couldn't print any more dollars. But think about it, what fraction of the money in the economy is physical, printed dollar bills anyway?
If a deflationary currency doesn't work, people simply won't use it. They'll create substitutes for the currency so that the currency doesn't deflate.

since some bitcoins are being lost, there would always be a slow deflation.

why would a deflationary currency not work?  this seems to be what you are proposing.

A deflationary currency doesn't work because it creates value paradoxes. For example, would you rather have 10 bitcoins today or 10 bitcoins next month? Of course you'd rather have them today, because having them today includes everything you could do with them next month and more (value today = value next month + additional opportunity). But in a persistent deflation, the value of 10 bitcoins next month will be predictably and reliably more than the value of 10 bitcoins today. So you can only have a sustained, predictable deflation when people value more highly what is clearly worth less.

You still need to eat right? You still want to play video games, go to movies, etc. The less inflationary a currency is the less it promotes consumption, even to the negative side. I think this is a good thing. The best way to reduce your (eco-)footprint is by consuming less. This might actually save the earth.
Besides the deflation should drop very low once everyone uses the currency.

Bitcoin lending intermediaries could perform this function by paying interest on 3-month, 6-month and 1-year deposits; and then making loans for the same maturities. The lending intermediary would make the spread and they would also be assuming the credit risk of the borrower. These lending intermediaries would compete on reputation, overall financial soundness, rates paid for deposits, and flexibility of deposit durations.
There would be no lender of least resort and it would function very much like the free banking era where banks competed on the faith and soundness of their institution. The fittest will survive and prosper. Depositors beware.

I don't see why (In theory) a bank couldn't issue a loan in bitcoins just like they do in Dollars, Euros or Pounds.
Lets say I wish to borrow 100 Bit coins, I go to a BitCoin Bank and ask for a loan, they check  me for credit risk and assuming that everything is ok they give me the money. I pay it back over some period of time with interest.
On the flip side if I have savings of 100 bitcoin I can deposit it with the bank, they keep some chunk as a reserve and loan out the rest.
As long as most of the depositors don't want their money back at the same time the whole thing works just fine.
The problem is that with BitCoin there is no central bank which can provide cash for short term liquidity like with most currencies.

I believe there is a point of view from which things as loans, mortgages, etc. are impossible in a Bitcoin economy: and that is anonymity.
If two peers know each other in person, they could choose to agree on a mortgage contract if the currency was stable enough, or if there was a real Bitcoin economy.
Suppose subject A has lots of coins, subject B wants to buy a house from C who accepts 1000 coins (probably he is able to make profit from selling a house for coins). B could request A to send him 1000 coins with promise of returning them plus interests.
A is surely interested in making such profit, but must deal with the risk of B being unable to pay back. In current economy, a mortgage agreement is made with a contract that allows A to take property over the house in case B doesn't pay, with a court order.
So if we suppose that a Bitcoin economy exist (there is lot of discussion about it) certainly these practices are possible, because instead of writing a check you could ask your destination's Bitcoin address, send the money and expect monthly payments.
But Bitcoin is based on distribution, anonymity and absence of control. Since transactions are final and not revokable, no authority in the Bitcoin's virtual world has the power of seizing property.
Lending Bitcoins is like lending a bike in exchange of it and some accessories, and Bitcoin can just be a currency like others when buying a house in a real-world economy with real-world regulations.

Bitcoin is peer-to-peer decentralized cash.
If you want to talk about peer-to-peer decentralized credit, check out Ripple. http://ripple-project.org/
Peer lending has many differences compared to bank lending. There are often social and emotional relationships between the peers, and this has a strong impact on the underlying incentives. Friends and family are likely to make loans to each other with little or no interest. But then again, they're also likely to ask "well what are you going to use it for?" If you can't pay back a bank, you simply 'go bankrupt' and they can't touch you. If you don't pay back your friends, it's possible they'll hate you forever, or beat you up (illegally, of course, since that would be assault). So the cold professionalism of bank lending can swing both ways. But peer-to-peer lending is an alternative, and it's more viable than most people think.
There are some very good blog posts about peer-to-peer credit and related topics like reputation systems here:
http://www.webisteme.com/blog/
#bitcoin-otc ( http://bitcoin-otc.com ) maintains a 'reputation' system that could be considered analogous to a credit score. It's a measure of your 'trustworthiness' in the context of bitcoin transactions. If you have very high ratings on #bitcoin-otc, it's likely you'll find someone willing to make you a bitcoin loan.

there is one key difference between borrowing money from a bank and a family member, I don't invite my banker over for dinner. So If for some reason I borrow money from a bank and default I don't have to worry about strange family dinners for the next 25 years.

webisteme is a deadlink...


text:
What are the options available to convert Bitcoin to Paypal USD?
I have, recently, started earning some Bitcoins from CoinURL.com. I want to know all the options available for converting these earned Bitcoins to Paypal USD.

If you are obtaining this income from the bitcoin community, wouldn't it be good business to then patronize  a Bitcoin merchant for at least some of this income?  There are so many things you probably are already paying for where there is a way to make the same purchase in bitcoins.  Some options are even cheaper in bitcoins, such as prepaid wireless in the U.S., for instance. - http://en.bitcoin.it/wiki/Trade

@StephenGornick: I understand you in full spirit but bitcoin system doesn't have many (rather any) options in my country. I guess, a fair option for me will be to exchange them with someone who can use them with the bitcoin merchants.

The factors that matter for any cash-out decision are:

Where are you located (country)?
How much are you looking to trade?
What type of cash are you looking to receive?
How soon do you need access to the proceeds?
Is privacy important?

Specifically for cash-out to PayPal, options include:

http://snapswap.us/#/paypal (You'ld need to do BTC -> XRP first though. http://Shapeshift.io lets you do that.)
http://www.VirWoX.com  (BTC --> SLL, SLL --> USD)

Other ones that are not as widely known -- proceed at your own risk:

http://www.btctopp.com
http://www.exchangemycoins.com/pages/sell-bitcoin-paypal
http://order.payexchanger.com/index.php?a=add (You Give="Bitcoin", You Want="PayPal")
http://24pay.me

What might exist is a service that lets you pay for charges with Bitcoin and then the recipient gets to withdraw the proceeds of the sale using PayPal. So you would simply need to sell to yourself.
For example, I see that Fiverr accepts BItcoin for payment: http://blog.fiverr.com/fiverr-now-accepting-bitcoins and I believe they offer withdrawal via PayPal http://www.youtube.com/watch?v=px_eYHCgGZ4. So you simply would create two accounts, list a task, and transact with yourself. Obviously the account for buying (and paying with Bitcoin) would need to be something that you wouldn't want associated with your real identity. Additionally, you probably want to do the listing with one IP address and the buying on another just in case they check for that kind of stuff.
Maybe when PayPal is a cash-out method for Amazon (coming, apparently http://recode.net/2015/04/09/paypals-big-change-it-can-work-with-amazon-after-ebay-split/ ) then maybe you can sell to yourself (buy Amazon gift cards to pay, then cash out to PayPal from the proceeds of the sale to yourself.)
BitLanders is another service that lets you trade with yourself, paying with Bitcoin and withdrawing in PayPal. Also, apparently if your sales aren't enough to cover your withdrawal amount you can make up the difference with Bitcoin.

I'm pretty newbie to bitcoin and most of those factors go over my head for now. My bitcoin source is consistent and I will be getting them on regular basis. I'm looking for PayPal USD as it is the only service that allow withdrawals (low fees) to my country. Private exchanges are obviously preferable.

If you accumulate enough to meet the Fastcash4Bitcoins.com minimum, then that's probably your best bet then.

bitinstant now does btc-> paypal.
also you could try selling coins for paypal to individuals on bitcoin-otc (though you have to watch out for chargebacks).

yes, the chargebacks are really an issue to look after. I have been deceived few times trying to sell Amazon.com Gift Certificate Codes (so I moved to this service).
And one more thing, I'm checking out Bitinstant right now. I can not find btc to paypal option there, only coupons to paypal.

There is an IRC channel #bitcoin-otc in which people trade bitcoins with each other.  There are often people there wanting to buy Bitcoins for PayPal.  http://bitcoin-otc.com/ will tell you about the channel, and how to register with the channel's bot to build trust with the users there.
Be way accepting PayPal for bitcoin, since PayPal is reversible and Bitcoin isn't.  Check the rating of the person buying your bitcoins and be very careful before dealing with people who have low ratings.

This site https://www.bitcoinary.com/ is providing exchanges with paypal also.
But it is  build on different scheme. You are relying on people rather than market.
One thing to be aware of is secure connection which does not work for me, although it can differ with others.

On Jul 14 2012 at 10:13 Abhishek M. wrote "I want to know all the options available for converting these earned Bitcoins to Paypal USD."
There are nine different bitcoin debit cards available on the first 10 results when you Google 'bitcoin debit cards':
https://www.google.com/search?q=bitcoin+debit+cards
ANXBTC.com says "let your Bitcoins do everything your credit cards can do" and "Spend your bitcoins on a global network that has over 25 million merchants just like any credit card!". https://anxbtc.com/pages/card
Xapo.com says "swipe it at your favorite brick and mortar merchants or enter the card information at any online destination". https://xapo.com/wallet/ This is not necessarily all rosy, because when you read the fine print you may see shocking bitcoin debit card fees. However, not all bitcoin debit cards are the same, and players do change their offers and have special deals.
A more comprehensive look would involve the analysis of the withdrawl fee structure for bitcoin debit cards, and all associated expenses, and then compare that to total Paypal fees. Perhaps a debit card could work for you, and you won't have to risk your capital with Paypal in the United States.
Finally, crypto technology firms like ShapeShift.io and HolyTransaction.com offer the ability to shape your bitcoin into many other cryptocurrencies. These types of services can be blended with other perhaps local companies, and could give you more options for exchanging the value of your earned bitcoins affordably, easily, and with possibly lower withdrawl costs than Paypal.
Many consumers find bitcoin backed debit cards are a convenient and affordable alternative to traditional payment systems.

You have for example https://www.spendbitcoins.com/, http://www.fastcash4bitcoins.com/ and https://www.bitinstant.com/.
PayPal is notorious for freezing accounts of people who use it for Bitcoin conversions, so it is not clear how sustainable these services are.

I came to know about these sites after yesterday's extensive internet searching about BitCoins. Question is are they genuine and can be trusted ?
Is there any work-around about this PayPal problem ?

@AbhishekM.: Yes, these services can be trusted.

I would appreciate if you mention the sites that worked for you.

@AbhishekM.: The only BTC->PayPal service I've used is CoinCard (http://coincard.ndrix.com/), which was excellent but unfortunately is no longer doing PayPal. But the sites I mentioned have existed for a long time and/or are run by well-known and respected members of the Bitcoin community. Note also that the level of trust required for an immediate exchanger is much lower than for an exchange that keeps deposits.

Understand that your solutions are most likely to be expensive and corporate*. PayPal is not a fan of Bitcoin and you won't find many individuals willing to to accept PayPal for Bitcoin, and you should, too, be wary of accepting PayPal as an individual.
See also: Why shouldn't I accept PayPal when trading bitcoin?
*corporate means not an individual, but a company with established rapport and customer base, with sufficient means and experience to navigate or mitigate the high potential for chargebacks when selling BTC via PayPal.

You should try using localbitcoins. they have an option to sell bitcoin for paypal and vise versa and the sellers are legit. There are limits and there is a commision % but the sellers have high reputation and are reliable. For a detailed tutorial how you can visit this blog: http://www.btcfeed.net/tutorials/convert-paypal-to-bitcoin/


text:
What are the bandwidth requirements of a mining rig?
How much bandwidth consumption can I expect per 900 Mhash/s rig (for instance) for both pooled and solo scenarios? I'm looking for a ballpark number for the on going requirements, after the initial blockchain download.

With pooled mining, at 900Mhash/s, you'll need a new work unit every 3 seconds or so. Each work unit requires about 256 bytes out and about 768 bytes back. So that's 700 bits per second out and about 2,000 bits per second back. Essentially, zero.
Solo mining is a bit harder to estimate. You will need to receive and relay all new blocks as they are discovered, you will need to receive all transactions that are relayed by nodes you connect to. You can heavily limit the number of other nodes you are willing to connect to, but this will impact your stale shares level and may reduce your transaction fee income.
I measured the bandwidth usage of the client with 60 connections (you can drop down to 8 if you want) and made sure my sample included discovering a block. The inbound average bandwidth was 12Kbps (1.50 KB/s) and the average outbound bandwidth was 9Kbps (1.04 KB/s). So that should give you an idea what solo mining would be like.
Notice that the bandwidth usage is basically insignificant in both cases.
For multiple rigs, there is no adjustment in the solo mining cases. All the rigs can be configured to query the single client. The client's bandwidth requirements will be the same.
However, there is a change in the pool mining case. When a new block is discovered, each miner will need a new work unit immediately since its existing unit is stale. This happens on average about every 10 minutes. Effectively, increase the bandwidth requirements by .5% for every additional mining rig. Note that if you run more than one instance of the mining program on a rig, count it as more than one rig. (This still assumes the rigs total 900Mhash/s.)

Great info, very specific, thank you. My interest is in knowing the number of rigs my current connection could support, and also the feasibility of using cell phone tethered internet. This answers that for me.

I updated my answer to be explicit about how multiple rigs affect things.

If its useful I mined on remote tether with 7.2mb (optimal connection) I was on around 1500Mhash it worked perfect

For multiple rigs mining to a pool, to decrease bandwidth usage one can run a stratum proxy locally that connects directly to the pool, and each miner then connects to the proxy. This way, each rig will only need to receive one work update per new block. One easy to use proxy for this is Slush's found here: http://mining.bitcoin.cz/mining-proxy-howto


text:
String-along, is this possible and is it an attack?
I haven't seen this discussed before, if it has been please provide a link.
If I find a block while mining but then discover that another miner broadcast a block mere moments ago, I could begin mining the next block based on the network accepted block. Or I could begin mining based on my rejected block. I'm not trying to double spend, I'm including all the same transactions.
It seems like I have nothing to lose by doubling down at this point. Based on my hashing power I expect the same chance of finding the next block, but if I mine my own block successfully I'll get the coin for mining both blocks. Same risk, double reward.
If I control 51% and I do this, it seems that a successful fork is the most likely outcome. Taking it a step further with the 51% scenario: If I find a block after 3 minutes and I compute that 95% of recent blocks have been found after 6.5 minutes can't I withhold my block from the network briefly, risking the 5% chance of being beaten in order to get lead time on the next block?
If I control 51% and use this strategy, isn't it inevitable that at some point I will mine 2 quick blocks back to back and that I can use my position of being ahead of the network as leverage to get farther ahead?
For example, I find block 1000 and the network accepts it. We all begin mining for block 1001. I find 1001 after 3 minutes, I keep it to myself and start on 1002. I get lucky and find 1002 before anyone else broadcasts a 1001. I begin work on 1003. Someone broadcasts a 1001 and the network moves on to mining 1002. At this point I don't immediately broadcast my block 1002. I've computed that 99% of recent blocks are broadcast after 4 minutes. So i continue mining 1003 for an additional 4 minutes, taking only a 1% chance of being preempted.
Then, only after the network has wasted 4 minutes mining 1002 do I transmit my 1002 which invalidates both the other miner's 1001 and the whole networks expenditure on 1002. This leaves me with winning blocks 1001 & 1002 a 4+ minute head start on 1003.
If I control 51% and use that strategy, where every quick block I find and every long block the network finds will fuel my head start, isn't it inevitable that at some point I will gain the power to string the network along where all their work is wasted on blocks I have already found but not shared.
Wouldn't this be invisible to users and merchants yet devastating to miners? Wouldn't this disincentivize mining thereby increasing my relative hashing power and the length of my string along chains?

A miner can always lose out if someone else mines a block at approximately the same time as he does. A miner will always continue building on his own block if he finds one before he processes a block found by someone else. It is never to a miner's advantage to ignore a block found by someone else unless he himself has found a block at almost exactly the same time.
So this is all behavior as expected.
When you mine a block, everyone else who has not found a block has a strong incentive to mine after your block. If they don't, they have to find two blocks to get any credit at all. If they find one block first, the rest of the network will ignore it.
If you control 51%, you effectively control 100%. That is also expected behavior.

As others mentioned, 51%==100%. It's not undetectable, though: the attacker will force reorgs constantly, which will be visible to everyone (see http://blockexplorer.com/q/reorglog). An alert would probably be issued if an attacker started solving all blocks.

It would be undetectable as long as the attacker won't publish his private chain. “solving all blocks”, what do you mean?

He has to publish it eventually, and then it's detectable. By "solving all blocks" I mean creating 100% of all blocks...

For the first part:
Yes, this is possible, and doesn't require having a high hashrate.
No, it is not an attack. It is important to realize that disagreement between nodes on what the last block is is perfectly fine. The protocol specifies that, among branches of the highest length, every node builds on the first one he learned about. In your scenario you learned about your own block before the other one, so by default you should build on it.
Yes, you should do this because it's more profitable. If you build on your own block, then if you find the next block you get the rewards of the two blocks. If you built on the other one you'd only get the reward for the next block.
For the second part:
Yes, this is an attack which is closely related (if not identical) to this, and can be profitable if you have at least 41% (that's right, only 41%, not 51%) of the hashrate.

Building your own private chain is the basic and powerful 51% attack. If you got 51% of the total hashing power, your private chain will be longer than the network chain, with higher and higher probability as time passes by. Wait some few days and you are basicaly sure to obtain a bigger chain than the network.

Based on my hashing power I expect the same chance of finding the next block, but if I mine my own block successfully I'll get the coin for mining both blocks. Same risk, double reward.

Perfectly valid reasoning. I'm not sure how the standard client behaves when a block has been found just a few milliseconds after an other block has been received, but anyway, this should not happen very often.


text:
Why don't the timestamps in the block chain always increase?
The timestamps starting at block 145044 are:
145044: 2011-09-12 15:46:39
145045: 2011-09-12 16:05:07
145046: 2011-09-12 16:00:05 // ~5 minutes before prior block
145047: 2011-09-12 15:53:36 // ~7 & ~12 minutes before 2 prior blocks
145048: 2011-09-12 16:04:06 // after 2 prior blocks but still before 145045

How does this occur?

is the notion of time in btc still this fuzzy in 2016? has there been any BIP to make this more strictly ordered?

@smatthewenglish: If you have a new question, please create another topic: [ask]

From the wiki:

A timestamp is accepted as valid if it is greater than the median
  timestamp of previous 11 blocks, and less than the network-adjusted
  time + 2 hours. "Network-adjusted time" is the median of the
  timestamps returned by all nodes connected to you.
Whenever a node connects to another node, it gets a UTC timestamp from
  it, and stores its offset from node-local UTC. The network-adjusted
  time is then the node-local UTC plus the median offset from all
  connected nodes. Network time is never adjusted more than 70 minutes
  from local system time, however.

It's not obvious that there aren't any problems with this way of timestamping. See the blog post Timejacking & Bitcoin and the discussion about it here.

So block producers out of sync by up to an hour or 2 cause no real problems so long as they remain in the minority.

I added some info on potential problems to the answer.

so then the blockchain is more about ordering, and timestampedness only in a more abstract sense is it?

What do you mean by greater than the median timestamp of previous 11 blocks ?

The root cause of this is that without a central authority, it's impossible to know for sure what the current time is.
The protocol rejects blocks with a timestamp earlier than the median of the timestamps from the previous 11 blocks or later than 2 hours after the current network time.  Any other timestamp is acceptable.  Note that 'network time' may differ from the actual time, since the bitcoin network attempts to correct for incorrect clock settings by taking the median of the time reported by all connected peers as the network time.
You can read about an attack that this makes possible here:

By announcing inaccurate timestamps when connecting to a node, an
  attacker can alter a node's network time counter and deceive it into
  accepting an alternate block chain. This could significantly increase
  the chances of a successful double-spend, drain a node's computational
  resources, or simply slow down the transaction confirmation rate.

I realize this is a very old post but I would ask if this vulnerability still exists?

I'm not sure, but I see no reason why it shouldn't. The rules didn't change.

If it is still a vulnerability I am guessing there is a way to protect against it or it is not a serious one -- BTC has survived many assaults since 2012.

@Jeff Seems like it is still a problem, and not easy enough to fix in a decade. For proposals, see e.g. (Short Paper) Towards More Reliable Bitcoin Timestamps - IEEE Conference Publication or  Achieving reliable timestamp in the bitcoin platform | SpringerLink

To add a bit to the other answers: Imagine if the protocol required that timestamps increase. Now imagine somebody mines a block with a timestamp a minute in the future as far as you can tell. What do you do? If you try to mine blocks with the timestamp you currently believe is correct, your blocks will get rejected (since they'd have a timestamp earlier than the last accepted block).
Due to the requirement that the network easily agree on whether a block is valid or not, the protocol can't require highly-accurate timestamps as a condition of accepting a block as valid. As a result, requiring monotonic timestamps would likely make things worse rather than better.

There is no requirement that blocks have a timestamp after the previous block. The only requirement is that the timestamp is greater than the median timestamp of the last 11 blocks. So this means that a block can have a lower timestamp than its parent, within a certain bound.
This happens because miners do not have perfectly in sync clocks. There can be slight differences in their internal clocks that make them off by a few seconds. If a miner gets really lucky and finds a block soon after another one, because of the clock differences, it is possible that his clock is still behind the timestamp of the parent block. That is probably what happened here.

I believe the timestamp is based off of the machine hosting the bitcoin client that submitted the block, and variance is allowed as not everyone has their computer time synched properly.

Do you know where is the code that performs this function?

At least one mining pool deliberately sets timestamps 6 minutes in the future and Block 145045 appears to be from Eligius (the generation transaction is split into multiple addresses).

why do they do that? do they still do it?

There is a fair amount of leeway in the block timestamp. The timestamp for block N must be greater than the median network time, which is calculated as the median of the past 11 blocks, and also less than the network time + 2 hours, where network time is calculated based on the node's system time, as well as the median time reported by the node's peers.

Block timestamps are not very accurate and are allowed to be up to several hours off. It is difficult for a decentralized network to come to an agreement on an official time.
Reasons that it might be inaccurate are different system times, lag, and also miners often change the time by small amounts once they have tried all possible nonces. This allows them to get new hashes using the old nonces.
Here are the rules of what timestamps are allowed.

A block's timestamp should only be treated as an approximate time that the block was mined. There is no way to enforce a miner to include 'the actual time', because it is impossible for the network to ascertain the truth of this. So instead, the network imposes a rule that the timestamp must adhere the following rules in order to be considered valid:
(The info below is copy/pasted from the Bitcoin.org developer reference)

The block time is a Unix epoch time when the miner started hashing the header (according to the miner). Must be strictly greater than the median time of the previous 11 blocks. Full nodes will not accept blocks with headers more than two hours in the future according to their clock.

Thus, it is possible for a block at height N to have a timestamp that comes after the the timestamp of the block at height N+1, as long as it follows these rules otherwise.

"Full nodes will not accept blocks with headers more than two hours in the future according to their clock." that is not entirely correct AFAIK. It should not be more than two hours from the 'network adjusted time'. When you connect to a node, the node sends a time stamp and you store the difference between the time returned to you by the node and your current local clock. Then after connecting to all nodes you calculate the median deviation between your clock and the network clock. At any point you calculate 'network adjusted time' by adding your local time to the median dev noted earlier