text:
What does "ASIC" mean?
I stumbled on the terms "ASIC" and " ASIC Miner", what do they mean? Is this something related to special hardware?

Why not just punch ASIC into your favorite search engine?

This question appears to be off-topic because it is about not directly related to bitcoin.

ASIC or Application-specific integrated circuit is a type of circuit that has become very popular in the Bitcoin mining community.
wikipedia defines it as

"An application-specific integrated circuit, or ASIC /ˈeɪsɪk/, is an integrated circuit (IC) customized for a particular use, rather than intended for general-purpose use."

Traditionally computer chips are made with variability of input in mind, meaning that a given chip should be able to do a wide range of things. Because Bitcoin miners only ever use their chips for Bitcoin mining, you can make chips that are really really fast if you make them solely with that purpose in mind.
This is how companies like butterfly labs can get such ridiculous speeds of up to 500 GH/s!

ASIC'S are application-specific integrated circuits, which speed up mining while being energy effecient.
Some ASICS have speed capable of reaching 60GH/S (60 billion hashes per second) or more, which is over 1,200 times faster than the average computer.
However, despite being energy effecient for it's speed, the fastest ones may use up a lot of power. Watch out for this when searching for bitcoin miners.
There are lot of bitcoin miners out there, and there are plenty on eBay. Some can cost as much as your average laptop, others can cost as much as $10,000!

ASIC is any integral circuit, any piece of Hardware or microchip. Yes, any microchip is an ASIC. This means that your CPU is also an ASIC. But, CPU is not efficient ASIC for doing particular task -- it is too universal. That is, CPU is supposed to be programmable. Programmability is flexibility - you can easily teach your PC what to do by writing a program. This is very flexible but, unfortunately flexibity comes with price -- it is very inefficient. You describe your instructions in a program and processor takes frist instruction, does something (moves some data between regs/memory or adds/multiplies register contents) and then takes next instruction. This is very slow but allows one piece of hardware to do (emulate) any task. Universal processors are slow for two reasons: they do a lot of unnecessary tasks (fetch program instructions) and do it serailly, in one stream whereas parallel processing is possible. Well, the latter is mitigated by multicores, GPUs and FPGAs. But, you can do better when you know your task in advance.
You can have a special processor, tailored purposefully for your task. These are application specific processors (aka embedded computers). They do not need to fetch the program instructions step by step. They already know what to do. The program is hardwared into them, like the "program" to support you is hardwared into the armchair whenever you sit on them. They just fetch the next piece of data (e.g. a key) and produce what is requred in the application (e.g. a hash). Everything is done in one step -- no need for 1000 intrmediate steps! Everything runs 1000 times faster. This is how specialized processors are usually faster than using CPU. Specialization means that you sacrifice universality for efficiency/speed.
BTW, GPUs and FPGAs are also kinds of ASICs, as any chips. GPUs specialize on graphical tasks, which are easily paralellizable and thus GPUs are basically universal multicore processors. FPGAs are ultimate multicore universal processors. They expose millions of tinyest cores, each capable to emulate a logic (aka boolean) gate. They are intended to emulate digital circuits, which are nothing more but collections of such gates. Yes, the pentium processor is a circuit of millions of gates. It would take ages to simulate how it executes Windows for billions of clock cycles by a computer logic simulator. FPGA expexiates the simulation 100 000 times. FPGA can emulate any digital ASIC that fits into it. So, it is universal. If you know your application, you may produce application-specific circuit that will run (10x) faster than the FPGA.


text:
How many hashes create one Bitcoin?
Irrespective of the length of time required to calculate one hash, how many hash operations are required to produce one Bitcoin?

These charts show the approximate network hash rate on the left axis:
  http://bitcoin.sipa.be/
We know the network adjusts for 25 new bitcoins per 10 minutes.
Together this provides enough info to give an approximate answer to your question:
hashes per bitcoin
= (network hash rate) / (25 BTC per 10 minutes)
= (180 * Th / s) / (25 * BTC / (600 * s) )
= 180 * 600 / 25 * Th / s / BTC * s
= 2,700 Th / BTC
= 2,700,000,000,000,000 h/BTC

What does the 180 stand for?

That is read from the charts I linked to. It is the current network hash rate in terra-hash-per-second, as the charts show this number continually changes as miners come and go.

Thanks! I think I have to dig deeper into the function of BC to understand everything!

Enjoy the ride!

@powtac remember this result changes every 2160 blocks (roughly two weeks).

The current network hash rate is no longer "180 * Th / s" it's now "14000 * Th / s"!

A good and simple website to calculate how much bitcoin can be created with what machine can be found at: http://www.alcula.com/calculators/finance/bitcoin-mining/

Difficulty changes regularly, but there are calculators that take all current factors into account:
https://www.cryptocompare.com/mining/calculator/btc?HashingPower=15&HashingUnit=TH%2Fs&PowerConsumption=0&CostPerkWh=0
As of today (17 Jan 2017): a theoretical 1,581 TH/s (equivalent of running a hundred Antminer S9's) will return 1 BTC in a day.
Tomorrow, it will be different.

source: Stack Exchange

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

sort: votes


text:
Cold storage companies?
I was curious to know if anyone knows of any bitcoin business that stores people's wallets offline?
I'm looking to diversify my backup methods for cold storage and am wanting to send my backups to a company that can store it for me securely.

In my opinion trusting a third party with your Bitcoin savings is kind of against the grain of Bitcoin.
It makes perfect sense to keep day to day amounts on hot wallets either on your phone or online by using services such as Coinbase, Blockchain.info, Circle and their likes.
These companies offer various cold storage options (e.g. coinbase vault) and there are other vendors that specialize in cold storage solutions, e.g. xapo
All these are viable options and have a place on the ever denser continuum of options to store bitcoins, and in all these cases you surrender some control over your bitcoins for the benefit of simplicity and ease of use.
However, part of the appeal of Bitcoin is the fact that by design you can maintain 100% control over your bitcoins. If you choose to do so, let me recommend CoinCooler (disclosure: I'm the founder).
CoinCooler helps you generate and encrypt digital files containing cold storage addresses and keys in a way that is guaranteed to be 100% offline. It also includes splitting the encryption password into shares (as was recommended above by Christopher).
Basically, its a tool that helps you perform cold storage of bitcoins in a way that is easy and secure so that, hopefully, you will consider doing it yourself and not rely on a third party.
Good luck!

Great answer! All of your suggestions are exactly what I was looking for!
I may be reaching out to you for more questions(on CoinCooler).

Safety deposit boxes, possibly multiple boxes at different banks plus the usage of Shamir's Secret Sharing, would seem to be the best option.
I'm not aware of any other individual-oriented secure storage businesses (e.g. Iron Mountain for individuals; Iron Mountain and similar businesses seem to be mostly for largish-scale storage / B2B).
Implementations of Shamir's Secret Sharing include this one by Lennart Poettering which is often available under the package name of ssss in many Linux distros (including Debian and Ubuntu), and also the Armory bitcoin wallet.

Thanks. I haven't heard of Shamir's Secret Sharing before. I'll have to look into it.
I've been using Armory for a while now. I think ill go the route of creating multiple offline backups and sending them to my parents and relatives for safe storage in our personal safes.

@user249656 in Armory, Shamir's Secret Sharing is what's used to implement the "Fragmented Backup (M-of-N)" feature.

There are also many options for storing your bip 38 encrypted private keys on physical coins.  Many of them are DIY options including www.mycryptovault.net They allow you full control of your bitcoin cold storage!

Welcome to the Bitcoin Stack Exchange. If you are affiliated with the service you are promoting here, please say so either in this answer or in your user profile. Since your answer does seems to be appropriate for the question, however, I will not mark it as spam.

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


text:
How do blocks signal whether it supports segwit for the 95% threshold?
Ideally, I'd also like to see graphs that indicate how close we are to segwit adoption and the number of minimum blocks we are away from actual segwit adoption.

BIP141 – Deployment says:

This BIP will be deployed by "version bits" BIP9 with the name "segwit" and using bit 1.
For Bitcoin mainnet, the BIP9 starttime will be midnight 15 november 2016 UTC (Epoch timestamp 1479168000) and BIP9 timeout will be midnight 15 november 2017 UTC (Epoch timestamp 1510704000).

As we're currently on the second version of blocks, the version field will be showing 0x20000002 when signaling readiness for segwit and 0x20000000 when not. Readiness for segwit2x would show as 0x20000010 if only signaling bit 4 or 0x20000012 if signaling both bit 1 and bit 4.
BIP 9 requires 95% readiness signaled over one difficulty period (from reset to reset). Once that is achieved, SegWit will be activated on the network after the following difficulty period has passed.
It appears that Coin.Dance will show support in the linked graph, as indicated by the footnote "BIP 141 (voting starts on 2016-11-15)".
Note: In BIP9 signaling readiness only starts with the first difficulty retarget after the starttime. In the case of SegWit this is likely to be around the 19th of November.

I assume (since I do not see it yet), that the black BIP 141 line will only be visible after the next retarget?

@JanusTroelsen: Signaling only starts after the retarget, so before then the line will be at 0%. I don't have any information on what coin.dance will do regarding the line. :)

So the version would be 0x20000002 if showing support and 0x20000000 if not?

@Alberts: I've updated my answer.


text:
How does BIP9 handle expiration dates over retargeting periods?
Suppose a BIP9 feature is set to expire on day T. Suppose further that the retargeting period before T actually ends on day T+5, but the retargeting period (2016 blocks) actually signals for the BIP9 feature 95%+. Does the feature get activated or not?
I ask as this is a realistic scenario should BIP148 gain traction.

As per BIP 9, the transition to FAILED takes precendence. Which means that the feature will not be activated via BIP09.
The relevant part of the code.
case STARTED:
            if (GetMedianTimePast(block.parent) >= timeout) {
                return FAILED;
            }
            int count = 0;
            walk = block;
            for (i = 0; i < 2016; i++) {
...

Well, here's the weird thing, can you just mine with timestamps that are on time T-1? GetMedianTimePast is the average of the last 10. Does it check that it's actually near the time the blocks got relayed?

From bitcoin 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. As a result, block timestamps are not exactly accurate, and they do not even need to be in order. Block times are accurate only to within an hour or two.
The difference is  about 2 hours.


text:
When was the first non-coinbase transaction?
What's the block number? Also if it was a test transaction, then what was the first event of real commerce if know?

I don't recall the block number, but I'm pretty sure it was Satoshi sending Gavin 25 BTC. I think it was after block 70,000.

It seems Hal received the first set of BTC in block 170, but it would be interesting to find out who spent what and when during the first 100k blocks

similar: Earliest block with spent coinbase. If you believe it’s different, please [edit] the question, make it clear how it’s different and/or how the answers on that question are not helpful for your problem.

The first non-coinbase transaction in the chain is in block 170.  Not sure what you would consider a 'real' versus a 'test' transaction, but given that there is an entirely separate blockchain for test transactions I'd consider it as real as any other.

A transaction used for actual commerces versus a transfer of wealth to encourage use of bitcoins at a later date.

Impossible to know, unless you can track down the owners of all the early transactions and ask them.

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


text:
lower bound of block size towards increased speed of propagation
As far as I know there is an upper bound of a block, which is one megabyte, is there a lower bound?
It was in terms of a race condition that I was considering this.
Imagine you make a double spend and then you try to propagate a block that contains only your second transaction. If so it would be much smaller, ipso facto easier to propagate around the network and get validated by nodes, isn't that right?
Maybe someone in the mean time would find a valid block for one containing many transactions, in which case it would be longer than yours, and maybe other miners would extend that- but maybe not.
Does anyone want to try this out on the testnet with me?

There is a lower bound: Blocks must include at least one transaction, the Coinbase. ;)
The advantage of a smaller block has been somewhat overstated in the past, as it usually doesn't matter much, especially since the relay network got improved with Compact Blocks, a compressed block format that significantly reduces the peak bandwidth required to propagate blocks.
Basically, for a smaller block to have a relay advantage over a larger block the two blocks would have to be found within less than 5 seconds of each other. This only occurs once every two to three days and thus is hardly a significant quantity to optimize for in comparison to the chance of even finding a block to double spend with in the first place.

Imagine you make a double spend and then you try to propagate a block
  that contains only your second transaction

This would mean you found a proof-of-work before everyone else, which is a very difficult thing to do without a significant amount of hashing power. Miners, in fact, publish very small blocks (literally, just the coinbase tx) all the time. Usually these are found very shortly after the previous block was published.


text:
Cryptocurrency Arbitrage - What do I need to know?
I'm curious as how one would go about arbitraging crypto currencies - How does it work? what do I need to look out for? What are the risks and caveats?

Arbitrage - What it is and how it works
Arbitrage refers to the process of instantly trading one or more pairs of currencies or odds for a nigh risk-free profit.
Usually, this involves two exchanges (this is then called a two-legged arbitrage); although more are, of course, possible.
There are several steps when executing an arbitrage:

Find a suitable opportunity
Execute trades
Rebalance accounts

Step 1: Find a suitable opportunity
This step is relatively easy. Simply check the order books of as many exchanges as you like, compare bids vs asks, and check if you can find a negative spread.
A small discourse into what a spread is
I will assume you're familiar with bids, asks and what an order book is - if not, you should definitely look up those first.
As for the negative spread, I'll elaborate a bit more on that. The spread is what is used to refer to the difference between bids and asks - lowest ask - highest bid = spread. This should be (and typically is) a positive value, since the best bid at an exchange must be lower than the lowest ask of an exchange - otherwise the matching engine of the exchange would settle these orders automatically.
In a perfect world, all markets and all market participants would have the same information, hence all top bids and all top asks of all exchanges would be the exact same, after fees were applied.
If you've seen the recent US elections, however, you're probably aware that the world isn't perfect, though. Hence, not all participants of a market know the same thing as the others, resulting in bids at exchanges which are higher than the asks at other exchanges - and this is what is called a negative spread.
Step 2: Execute trades
Let's assume you've found an amazing opportunity at exchange A and exchange B - a negative spread of 100$!
Exchange A: Ask 1BTC@450$
Exchange B: Bid 1BTC@550$

Luckily, you have proper funding at both to match these instantly - but how do you go about doing that?
Easy! Just place an order on the opposite side at each exchange with the quote's prices!
Exchange A: Place Bid of 1BTC@450$
Exchange B: Place Ask of 1BTC@550$

Since your placed order match an order on the opposite side of the book, the trading engine matches them and the trade is settled, leaving you with a theoretical profit of a smooth 100$! Why theoretically, you ask? I'll get to that point further below.
Step 3: Rebalance Accounts
Unfortunately, you were only able to trade once today, but hey! Tomorrow's another day - but in order to be able to properly trade, you need to even out your balances. Right now, your accounts look like this:
Exchange A: 2 BTC | 50$
Exchange B: 0 BTC | 1050$

Hence, you go about and send 1 BTC from Exchange A to Exchange B, and 550$ dollars to Exchange A from Exchange B. No magic here - all accounts are re-balanced and you're ready to make a fortune again, tomorrow.
Exchange A: 1 BTC | 550$
Exchange B: 1 BTC | 550$

Arbitrage - Why everyone's not doing it
This all sounded wonderful? That's exactly what I thought when I first set out with my own arbitrage bot. However, there a some technical aspects that can really turn a sunny day into a poopy rain on your parade.
Caveats and risks
1. It needs to be as close to real-time as possible
This is possibly one of the hardest things to get right, and also the most underestimated aspect of arbitrage in crypto currency. The markets, compared to ForEx trading, are ridiculously slow - at busy exchanges, there may be a couple of dozen trades executed. Which gives the illusion, that polling data for bots via the most common API type, RESTful, is enough to trade risk-free.
This is a misconception. Maybe for today this may appear to be enough - but what if markets picked up the pace? just 1 trade (or simply a placed order) within one second can change your opportunity from profit to loss.
2. Always trade limits, never market orders
Under the aspect of being the fastest, it might seem like a good idea to use market orders in order to be settled asap - you'd be terribly wrong. As discussed above, your data could be as old as 1 second (with above mentioned one order messing up your opportunity) - perhaps someone cleared the entire top level and all you're left with is a bid for twice the price you intended. Yikes.
2. REST API call rates make your life hard
Many exchanges employ a API call rate limit - that is, you're allowed to query data at the exchange X times every Y seconds. The differences are wide and nearly every exchange does its own little thing when it comes to limits.
The problem with them is, they severely limit your actions. If you don't constantly keep an eye on how often you send a request, you might run into the limit when it seriously counts - for example when you have to cancel an order, because you couldn't place its counter part at another exchange.
Unfortunately, websocket APIs are still rare and their brother on steroids, FIX sockets, even rarer - leaving you stuck with the turtle of programmable interfaces.
3. Integration with APIs can be a nightmare
There is no unified, standard definition for what an exchange API can do, or what data it returns. Which technically wouldn't be a problem, if they were documented properly. Incidentally, the exchanges with seemingly many opportunities also have the worst documentation (take btc-e.com's Documentation for example - heresy!).
Of course, also the opposite is true - GDAX, Kraken, Bitfinex all have excellent documentation. But nonetheless you have to dig through them to understand how they work, what their rates are, how they handle data types, authentication and so forth. That is, if they even mention anything about that.
4. Fees will minimize, if not eliminate your profits
In my above step-by-step guide, I purposely omitted fees of all kind. But of course, they're essential to successfully arbitraging. The most commonly known fees, are trade commission fees - these range anywhere from 0.1% to 0.6% and need to be considered in Step 1: Find a suitable Opportunity. On top come fees for deposits and withdrawals during Step 3: Rebalancing Accounts. Depending on your preferred pair, these may range from feasible (transferring crypto currencies usually is cheap enough) to quite steep.
For example, a deposit / withdrawal at Bitfinex entails the following fees:
Bank wire withdrawal & Deposit: 0.1% of amount deposited/withdrawn, 20$ minimum

And this does not include processing fees of your house bank - for me, for example, that's an additional 10€ for deposits, plus a 1% conversion fee.
If you do the math you'll quickly realize that you don't even have to bother starting to trade at Bitfinex, unless you have a really big stack to trade with.
But this does not just apply to BTC-Fiat pairs. Alt-coins suffer a similar fate. In order to make arbitraging worthwhile, you will have to have enough funds at as many exchanges to make trades AND re-balancing worthwhile. And this quickly gets to a point where you realize your last month's savings aren't equipped to get the job done.

To give you a further example on how fees affect your profits, let's take a look back at the example from step 2, this time factoring in all fees. I'll walk you through it. For the argument's sake, we'll pretend to be a european trading BTCUSD at Bitfinex (Exchange A) and Kraken (Exchange B).
Bitfinex: Ask 1BTC@450$
  Kraken: Bid 1BTC@550$
  These prices are raw- they do not include trade commission fees, not transaction fees. Let's add those.
We'll define a taker fee of 0.25% at both exchange - the taker fee applies whenever you remove liquidity from the order book.
  Next, let's add deposit & withdrawal fees to the mix. At Bitfinex, we pay a minimum of 20$ for each fiat withdrawal & deposit, or 0.1% of the moved amount (if its more than 500$). At Kraken, we pay 0.09€ per fiat withdrawal, deposits are free.
  In addition, btc withdrawals cost 0.0005 BTC at kraken, while Bitfinex charges no fees for this. Deposits cost nothing at both exchanges.
  Furthermore, we can't transfer fiat directly from exchange to exchange - an additional 10€ fee per sent out transaction needs to be facotred in, as well as 1% conversion fee whenever we receive or send fiat from our bank account (2 times total).
Let's list these fees to try and maintain an overview

Profit from arbitrage (bid - fee - ask + fee )
Withdrawal Fee Bitfinex  (20$)
Deposit Fee Kraken (0.0$)
Miner Fee for withdrawal at Kraken (0.0005BTC)
Transaction Cost of our house bank (10€) (Bank to Bitfinex)
Conversion Fee of our house Bank (1% of transfer amount x 2)

Let's put some numbers to these:

(550 - 550*0.0025) - (450 + 450  * 0.0025) = 97.5$
Move ~497$ to House bank = 20$
0.0$
0.0005BTC * 500$ = 0.25$ # Assuming this is the end of day price of the  coin
10€ * 1.05 = 10.05$
(497 * 0.02) = 9.94$

Which brings us to net profit of: 57.26$
  This translates to 42.74% reduction of your originally seen profit.
This is neither a worst, nor a best case scenario - it's merely designed to show you how many hidden fees are involved in an arbitrage. Also, keep in mind that a 22% arbitrage opportunity is practically non-existant.
As a matter of fact, had the spread been anything less than 40$, the fixed fees of our house bank and Bitfinex alone would have made our supposed arbirtrage opportunity a loss.

5. Volatility of coins is your enemy

"No matter where the market goes, arbitrage makes a profit anyway!"

This is true - if your currencies don't tend to drop or rise by 50% within 24 hours. Ideally, both currencies you trade in should be relatively stable, while still showing a certain volatility - no volatility would mean the chart is a flat line, resulting in no opportunities for you.
The problem with pure crypto currency arbitrage (LTCBTC), however, is that Alt-coins can go completely fubar - as opposed to a fiat-based crypto arbitrage (i.e. BTCUSD).
A personal anecdote:

When ZEC launched, I was instantly fascinated at the terrible market efficiency and arbitrage opportunities of almost 5% regularly. Hence, I bought in at 1ZEC@1.2BTC, thinking this is probably where market will stay at (at least it's not as bad as the guy who bought a ZEC for 3k BTC). I started arbitraging and immediately increased the amount of ZEC I was holding - completely oblivious to the fact that since I started trading, the price had fallen to 1ZEC@0.1BTC. My ZEC was worth 90% less, and I lost almost half a bitcoin worth of money.

Some volatility is great for arbitrage - too much volatility isn't.
6. Exchanges aren't as technically robust as they ought to be
Most of the time, you will find that smaller exchanges offer opportunities more often than big exchanges. This is in part due to the previously mentioned slow movement of information, but also their (often significantly lower) trading volume. Initially, this may appear like a steal - but there's usually a reason that particular exchange only has the low volume it currently does.
In a time where any one in the world can open up an exchange running on his Raspberry Pi and Ethereum, trading on the more alternative exchanges can be a serious risk to your investment.
From things like DDOS attacks and overloaded matching engines not matching your orders, to more serious issues like stuck withdrawals due to too low miner fees, or even theft - and the latter is a very real issue not exclusively affecting small exchanges, as the Bitfinex Heist has shown summer 2016; the list of potential technical failures is long and you should be aware of these at all times.
Conclusion
I'm aware this answer is overtly negative - this was intentional. Arbitrage, as well as crypto currency in general, is not the quick buck everyone on forums and dubious sites advertising trading bots make you believe.
While its inner mechanisms and workings are still quite cryptic* to even the most professional traders (sorry for the pun), even the fabled cryptocurrencies adhere to some basic principles, afterall. The 'quick way to wealth' usually will just end up quickly making you wealthless.
(*) Another great myth is that the chinese dictate the BTCUSD market. There is no empirical proven correlation between chinese and american markets. The only defacto correlation that has been found was that of google searches for bitcoin to btc trading volume - but whether this was positive or negative was inclonclusive.

Please feel free to add, comment or make improvement suggestions!

As someone with an active altcoin arbitrage bot, these are all great points. Something to keep in mind is that every bot on the market sees the same opportunity at roughly the same time, and they all tend to jump at once, leading to a situation where whoever fired the first orders gets the arb, and everyone else is left with an order that has filled on one exchange but not the other - a dangerous scenario as your balances are off and you are now highly exposed to losses through volatility. I am also frequently flummoxed by exchange failures of various sorts - withdrawals failing, DDOS, etc.

That's an excellent point: many exchanges aren't as technically robust as you'd think they should be. Thanks!

Excellent answer. You have pretty much summed up the state of play at the moment. I work in the industry and have a lot of experience in low latency trading on the CME's Globex platform. However, I would't even consider doing pure arb on the crypto exchanges because the platforms are far too immature. There's a good reason why only small retail players are involved in the game at the moment. The big boys are watching from the side lines and waiting for the ecosystem to mature to the point where the risk/reward ratio becomes more attractive.

I do believe there are opportunities for smaller players to profitably engage in market making at the moment. The spreads are wide enough to turn a regular profit, but the volumes are so small it's simply not worth the bigger players dedicating resources to this space (yet). If you can manage the risk then you should be able to successfully run a profitable book.

Yes, but you do require a certain amount of money. It, of course, also depends on the pair traded. Lower value coins require less initial investment to cover enough trades to pay for rebalancing accounts. And that is what I wanted to make clear - starting with 200-300$, I wouldnt expect to make a decent earning.

@j4ck Very informative answer and comments. Are you ruling out arbitrage as a viable way to profit for a smaller player? Have you personally stopped looking for arbitrage opportunities (or maybe you are not a "smaller player")

I still run a successful arbitrage system on the current markets, but they're more of a hobby, than a serious investment. But I move around 900$ worth of currency per day, and rebalance around once a week, so I'd say small player does not apply to me indeed. As to whether or not it's profitable with a smaller budget, it's up to you and the risk you're willing to take.

Why not making arbitrage on the same Exchange? E.g. bittrex lists same assets in ETH and BTC section, thus triangular arbitrage is possible without the need for sending coins from one exchange to another

Indeed, this theoretically a possibility. However, in reality opportunities at the same exchange are pretty much nonexistent, or extremely rare and small in profit. That's because markets on different platforms tend to be misinformed more often (creating arbitrage opportunities) than markets on the same platform, since information flow is much more efficient there.

In case you still do an arbitrage, how does it compare to the times when you wrote this? Has it got better ot maybe worse?

So, so - The strategy evolved quite a bit and got more sophisticated but in general it still pays off. Although a puristic arbitrage is hardly worth it any longer (at least for me). But I may not be up-to-date in this field - I've been looking into more complex strategies, involving commodities, so It'S quite possible arbitraging is still very well worth it!


text:
How can we run regtest without transaction fees

We have setup a bitcoin network using regtest mode and found that there is transaction fee charge on each sending Bitcoin.
Is it possible set the payment fee to zero for each transaction?
We found that there is a setting in the conf file called paytxfee. We have tried to uncomment it, but the client complains that its missing.
We are using ver 0.11. How to get rid of the fee for each transaction?
I enclosed is the error message too.

Pay an optional transaction fee every time you send bitcoins.
  Transactions with fees are more likely than free transactions to be
  included in generated blocks, so may be validated sooner.
  paytxfee=0.00

Is this bitcoin-qt?

This is a duplicate - see also  Does the Bitcoin Qt client have a minimum transaction fee?
Bitcoin-QT will protect you from sending transactions that are very unlikely to ever be included in the blockchain.  If you really want to try sending with 0 transaction fee, you will need to use another wallet software or patch and recompile the code.
It is highly recommended to include some transaction fees.  See estimates at https://bitcoinfees.earn.com/ (former "cointape") to figure out how much is needed.  Keep in mind that the estimates are very uncertain, they count it's like 90% probability that the transaction will go through within the estimated window - but then there is also a 10% probability that the estimate is off.  There have been times where transactions that should have gone through within hours have taken days or weeks to get through, though it's rare.
I often also consult https://jochen-hoenicke.de/queue/ to see what's going on, particularly the "mempool size in MB"-graph may be relevant.

The link for cointape is broken.

The service was taken over by "21 co" which is now earn.com, so the new link is https://bitcoinfees.earn.com/ - service still looks quite identical to what it did back in 2017.  I will update the answer.


text:
If there is a block-size hard fork, will the old chain have an advantage?
On his blog, Mircea Popescu claims the old chain will have an advantage:

The situation here is aggravated by the fact that the fork proposed is not simply nondeterministic behaviour, and so the holdings on the two chains aren't notionally equivalent. Instead, all the holdings on the Bitcoin chain are accepted as valid on both Bitcoin and Gavincoin, but holdings on Gavincoin are rejected by Bitcoin. Consequently, everyone involved with the fork is writing options to everyone in Bitcoin, free of charge.

He makes similar claims here:

    mircea_popescu: ben_vulpes if one block's large and the other small, all i need a tx that's included in the large block but not the small one. then doublespend it on the small one, which will be rejected necessarily by the large block blockchain.

    mircea_popescu: now i have bitcoin separated in two addresses, one for each chain.

    mircea_popescu: the attempt may fail, but the cost to me of this failure is not significant, so i can keep on trying until it succeeds.

    mircea_popescu: the only way to guard against it is, obviously,for the ."large" chain to maintain 1:1 identity with the "small" one. because you don't just fork bitcoin.,

    ben_vulpes: i still fail to see how you're going to make a txn that gets included in the large block chain and not the small block chain.

    artifexd: ben_vulpes: You don't. You keep sending money to yourself until it happens.

    mircea_popescu: ben_vulpes what do you mean ? it necessarily will occur.

    mircea_popescu: since one contains more txn than the other by definition.

    mircea_popescu: suppose i make 50k 1btc txn. they don't fit in a 1mn block. they do fit in a 10mb block. what now ?

I'm skeptical of these claims -- but how exactly is he wrong?

These two quotes are making two unrelated points: 1) People who own lots of bitcoins will have a large effect on which option is selected, and 2) the two chains will diverge.

If there is a block-size hard fork, will the old chain have an advantage?

This is partially true, but it is not as grave a problem as the writer would have us believe. It would be much more problematic if the implementation of increasing the block size were done very poorly and discretely (such as just putting out a new client with the MAX_BLOCK_SIZE parameter changed), but there will be a more continuous process to switch over to using larger block sizes.
In Gavin's proposal, nodes that aim to eventually allow larger block sizes will start using blocks with nVersion set to 4. When a supermajority is obtained, in this case meaning that 800 of the last 1000 blocks signal support for the larger block size limit proposal by using nVersion = 4, then the network will start actually relaxing the 1 MB limit to somewhere around 16 MB. From there, every 2 years the block size limit will double.
(Aside: I think it would be beneficial to have a grace period after the supermajority is obtained to allow miners in the losing side of the hard fork to update their software. I have commented on Gavin's blog post but haven't heard back, I'm sure he is very busy)
This proposal essentially puts the decision to use a higher block size limit to a vote on the network. However, until the supermajority is obtained, all nodes will still enforce the 1 MB block size limit. Thus, nodes that embrace the hard fork will not be at a disadvantage at all before the network supermajority is obtained.
After the network supermajority is obtained, technically blocks < 1MB will be accepted by all nodes, and blocks with size 1MB < size < 16MB will only be accepted by 80%. But by this point 80% of the network has already committed to allowing larger block sizes. If the nodes with the old rule don't update, they will be on the losing side of the fork and will be working on a slower-growing chain than the main chain. The old network's chain could be accepted by the new network (if they could create block fast enough to overtake the new chain), while the main network's chain could not be accepted by the old network because it breaks consensus rules.
It is also possible that the supermajority will never be obtained due to lack of support among the mining community. I would hope this does not happen. My personal opinion is that miners who are rationally trying to make a profit should make using Bitcoin as easy as possible (while still preventing spam) so that new people who want to join the ecosystem can do so painlessly and without having to wait hours for their transaction to be confirmed. More users bringing in buying pressure means the bitcoins mined will be worth more.
Coincidentally, according to a recent survey, Gavin has about 80% support among the community for his proposal.
Related: What are the arguments for and against the increase of the block size limit?

So you are saying his argument only makes sense if miners return to the old chain.  Why wouldn't the fork chain be a completely new, incompatible chain (which Popescu says "you don't do")?

It's not a new chain, it's more like the old chain taking a different direction than it would have otherwise. And the switch waits for 80% support before enforcing the rule. Popescu says "you don't just fork bitcoin" because most of the time it would be a pointless waste of effort and would not just get support. This case may be different.

It's clear at this point that Mircea was right.
Forking bitcoin is incredibly hard to do even with the "80% community support" the forkers had back in 2015.  They're still at it in 2017, although their support amongst hodlers seems to be much diminished, while big blockers have simultaneously gained a quasi mining monopoly.  But it still looks like the s2x hard fork will fail in a couple weeks.


text:
Electrum + Trezor - Rename address labels only allows one label to be defined
Using Electrum 2.3.3 on Ubuntu 14.04.2 with a Trezor (firmware 1.3.3), I'm having trouble with the account labels.
When I rename an account, it displays the new label. However, when I rename another account, the first one I renamed goes back to being "Account 1". It doesn't seem to retain my changes.
Thanks for any help you can provide, and let me know if more information is needed.


text:
Does this mean it's mining?
I'm using my personal computer and trying to mine bitcoins.
I'm rather new to this and was wondering if I did everything alright. Thanks in advance.

No, it means that no devices were found.

@NickODell So, it only works with these usb devices, is that correct?

It depends on what's enabled when compiling bfgminer. Where'd you get it?

@NickODell http://askubuntu.com/a/388976/371965

It may help if you provide more information about what you want to achieve. E.g. what device are you trying to use? What are you trying to accomplish?

@Murch I'm using my personal computer and trying to mine bitcoins.

You are using an ancient version of bfgminer
CPU mining was disabled by default even in bfgminer 3.10.0, your gpu doesn't seem to get detected
You're about 4 years late for CPU mining and 3 years late for GPU mining: Even if you get bfgminer to run, your PC will not be powerful enough to even find shares that would be accepted by a pool. See e.g. Can I do mining with a normal PC?

So, that is that. Thank you for your information.

In recent versions of bfgminer, GPU mining is also disabled for the same reason. Not sure if that applies to OP's version or if their card is simply unsupported.

GPU was still enabled then. From the bfgminer 3.10.0 release notes: Features: [...] OpenCL GPUs, such as AMD Radeons [...]


text:
How to access Bitcoin's transaction database?
I want to process the Bitcoin network's transactions. As I understand it, the Bitcoin-Qt client downloads and stores all that information locally.
Since version 0.8 LevelDB has been used to access this data. I found two databases, in blocks/index and in chainstate. However, I cannot make sense of the content. The first entry looks like this:
B = ??????{?:???????`?5g??

Am I on the right track and where can I find a specification of the data?

The data is stored in an application-specific format optimized for compact storage, and wasn't really intended to be easily parsed by other applications. You can access the data in the chainstate through the gettxout RPC call, and the data in the block index through getblock. I'll try to find time for a write-up of the exact format.

@PieterWuille Your comment would be a great start for an answer.

The best way to write a parser of your own for the blockchain is to find the source code of one that already exists and from that deduce the precise underlying data structure and how to parse and interpret it.  e.g. here in C++ and here in C# - and there are many others.
The data in the blockchain is stored in a custom binary format that is a little tricky to untangle without some help; this link seems as good as any to get started on the overall structure.
There are many"gotcha's" to watch out for.  For example:

'endianess' i.e. having to reverse binary digits before interpretation and
some of the interesting values associated with a transaction have to be calculated e.g. for addresses
'big numbers' where the numbers used internally are so huge you may need custom code/libraries to deal with them

Comparing your results to those that are freely available via the blockchain and blockexplorer as well as the bitcoind.exe API would be a must.  Otherwise it is easy to pull out seemingly valid transactions that are just nonsense.  I speak from experience.
While writing your own parser for the blockchain is a worthwhile learning exercise you would be much better off IMHO using the bitcoin API and ignoring the underlying blockchain database for any 'real' code.

The best way to access transaction database for analysis is probably through the blockchain.info API. You can also use the Bitcoin Block Explorer; in fact, this is what a study of the Bitcoin network did.

The easiest way is to use my blockchain parser. This script can parse all the data from blk*****.dat files into the human readable text view.


text:
Mining: GetWork, Get Nonce, ???, Submit Hash?
I make a getwork request and get back data, hash1, midstate, and target. Mining on a KC705 development FPGA board, and following the readme.md file here:
https://github.com/progranism/Open-Source-FPGA-Bitcoin-Miner/tree/master/projects/KC705_experimental
I do a uart_write of a section of data plus the midstate, and that would return the golden nonces. Doing that does in fact return the 0E33337A as stated along with two others, 9CCDEF20 and ACBBA77F.
Now I start getting confused. Given the response from the getwork request and 3 nonces, what exactly am I submitting back? From what I gather, I am supposed to do a hash using each nonce, check it if it's smaller than the target, and if it is, submit that hash?

If you're working on a mining script for the KC705 I would be interested to see it. I need to do this myself. ox983745 at gmail dot com

In KC705_experimental, the readme says the device should return 0E33337A and two other results. It just so happens the bit of test work described in the readme has three different solutions to it.  A mining script should return all three solutions to the server.
fpgaminer, the author of the KC705_experimental code, has written an addon for the Modular Python Bitcoin Miner project (MPBM) to mine using KC705 hardware.  If writing your own mining script you may want to refer to his work.  You can find more information here:  https://bitcointalk.org/index.php?topic=9047.msg2019538#msg2019538


text:
Profit possibility for colluding with 51% attacker
The Bitcoin Wiki states "A profit-seeking person will always gain more by just following the rules, and even someone trying to destroy the system will probably find other attacks more attractive."
I'm always (!) wary when people claim "always" or "never". Similarly I challenge the above statement, that seems quicker to try to reassure than to really analyze the validity of "always" in the context of being a good/bad actor.
What about the situation whereby some entity builds up a hugely leveraged short BTC position. e.g. say two nations took a HUGE bet each on opposite sides of the bitcoin price. Then the nation on the short side could secretly collude with a 51% miner to destroy the network and profit from the resulting BTC crash, kicking back to the miner a slice of the winnings.
Possible? Impossible?

Sure it's possible, but for how long would the miners want to continue mining for the 51% pool if it's destroying the exact same thing that is repaying them?
It's also worth noting that a 51% attack can only do certain things such as double-spend and stop transactions from getting confirmed. The attacker cannot reverse transactions.
Preventing transactions from gaining confirmations would surely cause a drop in the price, but soon miners would realize what's going on and the incentive mechanism would hopefully decentralize the mining once again.
Regarding slicing the winnings back to the miners, that's a really hard thing to setup. You'd have to convince an impossibly large portion of miners to trust you. From a technical point of view it's certainly achievable.
There are many theoretical possibilities to boycott the bitcoin network, however none have proven to work from a practical point of view because in my opinion there are sociological, economical and even psychological factors that come at play in securing a decentralized p2p blockchain system.

The Bitcoin Wiki states "A profit-seeking person will always gain more by just following the rules, and even someone trying to destroy the system will probably find other attacks more attractive."

The statement from the wiki has since been proven false. If a pool has a large enough percentage of the mining power, then it can follow 'selfish mining' procedures to earn more than it's fair share of the block rewards. This was introduced in this paper: http://arxiv.org/abs/1311.0243.
That is one reason your doubt in the wiki's claim is justified. The reason you cite, the two nations taking a bet on the price of a BTC, may be another possible case, but it doesn't seem very realistic to me. I'm not sure why any nation would take part in such a bet, and I think there would probably be more cost effective ways to lower the price of a BTC rather than engaging in a 51% attack.

I don't think it's going to be a rogue gambler who leverages the weaknesses to their own ends. Like ghash.io it'll be another corporate interest who has far too much clout for peace of mind. Mining is so unregulated it's totally feasible that a conglomerate (be it nefarious from the outset or a mutually beneficial alignment of interests occurring over time). It's not even a matter of "if". Mining is clearly becoming centralised with ASIC farms. The other possibility is diversion of hashrate by corporate interest utilising their experience & deep pockets to achieve their goal. Very possible IMO


text:
BitWasp Installation Problem
I just uploaded the BitWasp code into /var/www but when I tried to install using extension BitWasp-master/install/index.php the installation page that I need to make config.php, database.php, and bitcoin.php files writable. And when done I should press F5.
How do I make these files writeable? I don't have permissions to view the contents of those files.
Please help! Thank you

http://www.seas.upenn.edu/cets/answers/chmod.html

Most likely, you need to change permissions on those files:
$ chown apache config.php database.php bitcoin.php
$ chmod g+w config.php database.php bitcoin.php

Of course, if you're not using apache or the groupid of the webserver you're using is different, you might need to change "apache" to something else.
Read up on linux file permissions to understand this stuff better.

did you fix it just become root in your terminal and do all the stuff it says. what do you do after pressing F5 ?
also "apt-get install php5-gmp"
add to  /etc/php5/apache2/php.ini >> extension=php_gmp.so

authors: Татьяна Черноусова


text:
How do I calculate a hypothetical trade?
Say I had 1 Bitcoin at the start of the trade yesterday
 @ 01-27 14:29

and the price was
 USD : 263.95872470902

So, I sold the whole Bitcoin at the average price
Then
 @ 01-29 10:57

I bought back as much Bitcoin as the new price would let me again at the average price of
 USD : 233.55771464647

The price data was taken from crypto-prices.com I just don't see how that could be worked out. I know how to use preev.com to calculate the 'current' value but I don't understand how I would calculate a previous value and work out the difference / or would be, pretend profit.

I'm voting to close this question as off-topic because this question is essentially about elementary math and as such not a good fit for a Bitcoin experts' question and answer site.

263.95 [USD/BTC] / 233.56 [USD/BTC] * 1 [BTC] = 1.13 [BTC], i.e. for each BTC you sold at the higher price, you can rebuy 1.13 BTC at the lower price.
The underlying concept is explained on Wikipedia: Cross-multiplication.

authors: Андрей Банных


text:
Are there Bitcoin addresses with an odd number of transactions?
When I explore the blockchain on blockchain.info, all Bitcoin addresses seem to have an even number of transactions, e.g. 16Zugc8aq9sPkxBYXyYGqJHTizRzT5wTQg has 16 transactions.
I have looked at a lot of other addresses, too, but couldn't find any with an odd number of transactions.
Can anyone show me a Bitcoin address with an odd number of transactions?

Usually, people spend all outputs from one address in one transaction. If only one transaction was received before each spending, it'll lead to an even number of transactions.
You could just look for addresses that collect tips, such as Comboy's whiskey fund on Bitcoinity. This particular address has been used "unusually": It currently has 379 transactions.

I suppose that, normally, people spend their bitcoins soon and/or use several addresses (each one for 1 or few transaction); the following addresses shows an exception, which I, finally, found.
https://blockchain.info/address/126b9vwrfEYH6NehYmUCTjAga4Dg8UocAQ


text:
Do all UTXO get moved to the newest change address?
There is one thing I do not understand about unspent outputs and change addresses. For example, let's say a person has 5BTC in a wallet, and they have 2 unspent outputs of 3BTC and 2BTC.
They one day need to pay 2.5BTC for something. I know about the coin selection algorithm but lets just say the Bitcoin wallet select 2.5BTC out of the 3btc unspent output. This would leave 0.5BTC to send to the change address.
Now here is my question. Let's say they make the change address to a new wallet. Will the new wallet have 0.5BTC and the old wallet have 2BTC or will the new wallet have 2.5BTC and the old wallet 0BTC
Basically the 2BTC unspent output that was never touched, does it go with the change address or does it stay in the old wallet?

If the change address goes to a different wallet, is it really a change address?

If you send 2.5 BTC to one address and 0.5 BTC to another wallet, that is a transaction with two recipients. Change addresses are new addresses in the same wallet.
If the 3BTC UTXO were selected, there would be no reason for the 2BTC UTXO to move. If you want to move all your money to the new wallet, send 2.5BTC to the recipient and the remaining money to your new wallet.
If you want to find out more about the Coinselection Algorithm check out What is the coin selection algorithm?.

authors: علیرضا چراغی


text:
I am new and I did not get bitcoins
I am new to Bitcoin. So, I downloaded the Windows Bitcoins software from the official website and used the "request bitcoins" option to request bitcoins from my exchanger.
My exchanger charged me $20 and told me he will send me bitcoins corresponding to $20. But even after 18-20 hours I didn't receive any bitcoins.
Additionally, the Bitcoin software is showing synchronizing with network : x years xx weeks remaining.
What should I do? Should I wait for the synchronizing to complete or file a complaint against exchanger?

This question seems to come up a lot. Do we, or should we, have a "canonical duplicate"?

I think your answer here would qualify. I'll have a look around and see what other candidates there are, then I'll post to meta.

possible duplicate: I didn't receive a Bitcoin Payment. What does it mean when the Client is synchronizing?

Yes, wait for it to finish synchronizing. You will not see your coins until it finishes.
(Note that the time shown is not the estimated time until completion; it represents the age of the old transactions currently being downloaded. Depending on the speed of your computer and internet connection, you can expect it to finish in a few hours to a few days.)
In the meantime, you can enter your address in a "block explorer" site like http://blockchain.info to check whether the seller made the transaction as agreed. (This is safe; your address alone cannot be used to steal your coins.)
If you don't want to download the entire block chain, you can use a different client such as Multibit, but you will have to import your wallet.dat from Bitcoin Core into your new client software. Its documentation should explain how to do that.


text:
Is it considered safe to create a wallet on blockchain.info?
I created a wallet on blockchain.info.
Why is blockchain.info is not listed on "Choose your Bitcoin wallet"? Is the blockchain.info wallet considered safe?

I was considering to close this as off-topic due to "asking for service review", however it may be a public service to have an answer here... Vote as you may.

I confirm. It was not to have a service review. It was just to know why it was not listed in the bitcoin.org website.

Web wallets in general don't really make sense by bitcoin principles.
But to not make this into a service review: the wiki is managed in a git repository at guthub. Discussions happen there before changes are made. One such discussion happened here: https://github.com/bitcoin-dot-org/bitcoin.org/pull/663
Note that there may have been newer pull requests in the meantime.
Edit: per request, the gist of above link, the complaints about bc.i are:

Bugs and losses: BC.i has suffered from concerning issues during the
  past year (e.g. iOS denomination bug, weak key stretching, sizeable
  number of users losing funds, and more issues I haven't verified yet)
Backup/Password Security: BC.i hasn't adopted security features which
  are slowly becoming standard in other wallets (e.g. BIP32, random
  passphrases, backup on setup, rotating addresses, 2FA by default).
Transparency: Source code of the app has been reset or not updated
  repeatedly, making bitcoin.org often relay the false claim that the
  app is open-source.

It would be helpful to include the gist of the discussion.

You're right. I tried, but was on mobile and it seemed like a lot of reasons. May give it another try soon.


text:
Does CPU mining become efficient as memory requirements increase?
I am focusing on an anti scrypt coin called Vertcoin which increases it's N-factor at a set interval. On their main page on bitcointalk it states that CPU computation will make gains as N-factor (memory requirements) increase. Can anyone explain as to how this is possible if the memory requirements can reach to > 4gb

Currently, for a custom-built high-performance desktop, 16 GB of RAM (or even 32 GB) is typical, while one of the best GPUs, the AMD Radeon HD 7990, has 6 GB of GDDR5.
Suppose the memory requirements were raised to 4 GB. That means that each thread will require 4 GB, so a CPU can mine on 4 threads at a time (16 / 4 = 4), while a GPU can only mine on 1 thread at a time (6 / 4 = 1.5, with greatest integer part 1).
Contrast this to the current requirement of 2 MB. A CPU is bottlenecked by the maximum number of threads it can do (even the very best Intel Xeons are typically capped at 32 threads), while a GPU with just 2 GB could easily do 1000 threads at once.


text:
What are some pitfalls of having 1 minute blocktimes? What vulnerabilities would this introduce?
For example, dogecoin has 1 minute blocktimes and they seem to be doing fine for the past 5 years. What are some issues they might run into with 1 minute blocktimes and increased adoption? What other downsides does something like dogecoin have vs bitcoin, in relation to a shortened blocktime?

Note: I don't think this should be closed as off-topic. It mentions altcoins, but the question/answer is entirely relevant to why bitcoin doesn't implement shorter blocktimes.

Shorter block times hurt decentralization

because they hurt smaller mining pools
because smaller mining pools depend on orphaning rate more
because orphaning rate depends on the number of competing blocks in unit time

since network connection quality becomes more important with higher orphaning rate

and of competing blocks, the larger miner with better connection is more likely to win

because the number of competing blocks in unit time depends on the number of blocks in unit time

Bitcoin has 6 blocks per hour. Doge has 60. Doge would have more competing blocks. In the end, larger miners are more likely to unfairly (i.e. not proportional to hashrate) win with the competing block. Hence longer block times means fairer block reward distribution to pools.
Unfair: Larger pools get larger more easily, smaller pools can't achieve their fair potential and would lose some % of their blocks hence their rewards and might not be able to compete.

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


text:
What is the current actual cost of mining 1BTC?
Bitcoin is going down right now. It's about 500USD/BTC. I wonder what is mental support price for miners under which they would prefer to buy btc instead of mining it? That would be more or less mining cost. So what is the current actual cost of mining 1BTC?

Questions that ask for current prices, etc, are off topic here. Answers would necessarily become obsolete immediately, and the purpose of Stack Exchange is to collect questions and answers of lasting value to future users. I have voted to close this. There have been past questions about the factors that generally affect the cost of mining, so a search could be helpful.

You can use a mining calculator to compare the available hardware's output, then add fixed cost (hardware) and variable cost (the cost of manpower, power, replacements, maintenance, etc).
I am assuming you mean ASIC mining cost, as GPU mining has not been profitable for bitcoin for quite some time. I found a site which keeps track of ASIC deployment and also provides a mining calculator: http://minr.info/
Generally miners do a lot of work to find places with cheap power, you can find kWh rates here: http://en.wikipedia.org/wiki/Electricity_pricing#Price_comparison
Even though this may seem unrelated, miners can also use GPU or Scrypt ASICs to generate alternate coins (and then convert them to bitcoin), which may be cheaper than generating/buying bitcoins. You can find a lot of information about various algorithms and a mining calculator for many alternative algorithms here: http://www.coinwarz.com/cryptocurrency
Beyond all of this, it is worth noting that bitcoins can be generated by any computer capable of doing such calculations, and that there are at least some people who do not pay for the power that they consume, and sometimes not even the hardware (such as college students and hackers, respectively). Therefore the price of mining a bitcoin can be next to nothing or actually nothing for some people who do not play fairly, and who will mine full-force at virtually any price.

It seems Kuwait is the place to be for mining, with a power rate of $0.00706/kWh (price in USD) http://mew.gov.kw/en/?com=content&act=view&id=92 http://coinmill.com/KWD_USD.html

To think that this question is knowable is to assume perfect knowledge of infinite and  insurmountable variables.

OK. I'll answer my question. The numers are around $100 for $0.15kWh.

The actual cost varies necessarily due to a number of factors. It's actual cost is subjective as it is interminably subject to change as a result of aforementioned factors.
Electricity is free in some parts of Africa. Liquid nitrogen cooling techniques compounded by walls of ice miles deep in northern and southern poles are not open to anyone,  much less blogged about conclusively. The best mining equipment will be open source public discourse eventually,  maybe. . .  But that is not the case today.
^^^if you have ever looked at the A. S. I. C. Mining manufacturing concerns,  you will see a profoundly disturbing justification for the above skepticism; they all "pretest" their machines for months beyond their "preorder" slated release date.  Preposterous,  that the pre-orders be postdated months after the promise,  and even then, just a few lucky would-be miners actually receive equipment as advertised. (see Butterfly labs)
When the terrible miners finally rolled their first batch out,  they could only be overclocked by the best in the world to put up 1.6Ths. (seen Teraminer)
(see what I mean)

I'm not sure how your final paragraphs are relevant to this question.

@NateEldredge use your mind


text:
What is the estimated USD fee price in BTC when Bitcoin is worth 1 million dollars in the future?
Currently, fees in Bitcoin are quite high ($1-$30) to move anything under $50 USD. If Bitcoin is worth 1 million dollars one day, how much would an on-chain fee be? Assuming blocks are going to be full of course. Will there ever be a block size increase to solve this scalability problem? Supposedly, lightning network solves it, but fees there would also be high, no? What are some proposed solutions to this problem that work on Bitcoin layer 1?

I think no one can read the future but some things can be said with high confidence and I will try to point them out.
First I think it the conversion to USD does at best make sense for cosmetics thus I will do most computations in the more natural form of satoshis and confirm only at the end if necessary.
if the average feerate in a block is x sat/Byte and with 1 MB blocks we will have a total fee of x Million satoshi per block. This is equivalent to x * 0.01 BTC.
Assuming 2500 tx per block we would end up having
x * 4,000 sats per transaction. (I guess with taproot, schnoor and signature aggregation we could stuff in a few more tx.)
as 1 sat / byte is the absolute minimum fee these 4,000 sats would at a 1 million usd / BTC boil down to $40 per transaction which would have to be multiplied by the feerate x which is any number larger or equal to 1.
I see it from the perspective of Lightning Network rather than from the perspective of making on chain payments. It seems like a reasonable fee to open your channels and be able to transact as often and frequently as you wish. As far as I know it is currently not clear how fees on the Lightning Network would evolve.


text:
Where to stop key derivation when looking at balance of a deterministic wallet
If I want to know the total balance in all the addresses which can be generated in a deterministic wallet (like electrum or armory).
I have the master public key allowing me to derive an infinite number of public keys.
What is the number of addresses I should generate to check the balance ?
I suppose I can stop if the last X addresses don't have any transactions.
What is the value of X for electrum and armory (when recovering from a backup) ?

The gap limit is the maximum number of consecutive unused addresses in your deterministic sequence of addresses. Electrum uses a gap limit to stop looking for addresses, it is set to 5 by default, so the client get all addresses until 5 unused addresses are found.

https://electrum.org/faq.html#gap-limit
If you used a different gap limit when creating the addresses, then you need to keep record of it or remember it. Addresses that appeared beyond the gap limit won't be found unless you set the gap limit you used.
For example: Using MPK on a web server you used gap limit 40 to create 40 addresses for your web store. Then you had 39 open orders that are not paid and the address number 40 has a payment.
When you restore with gap limit 5 (default in the client) you'll have 5 unused empty addresses, you won't see the other 34 that are also unused but related to open orders neither you'll see or have balance for the address number 40 that has a payment on it.


text:
Why must UTXO be completely consumed?
Imagine Alice owns 10 BTC and wants to send 1 BTC to bob, with a 1 BTC miners fee.
In the blockchain, the transaction is recorded as "Alice spent 10 bitcoins, 1 goes to Bob, 1 goes to the miner, and 8 goes to Alice".
That seems rather unintuitive. Why not just record the payment and miners fee explicitly?

I've looked into this before, and I've never been able to find an explicit rationale from Satoshi, but there are a couple of possible reasons.
For: Simplifies SPV verification
Imagine that rather than using the spent/unspent model, you track the balance of each address. You get a zero-confirmation transaction that pays to you from an address.
Now, to figure out what the balance of this address is, you need to get all of the deposits and withdrawals from it. If you miss one, you calculate the wrong balance.
You could fix that by forcing each transaction from an address to reference the last transaction by hash, but that eliminates an important property of Bitcoin - multiple deposits and withdrawals to and from the same address can be processed at the same time, without coordination between them.
For: Improves transaction privacy in theory
The change output (which you referenced as '8 BTC goes to Alice') is sent to an entirely new address, and in theory it is not possible to figure out which output is the change output. In practice, the real output is usually a nice round number, and the change output is something like 0.00019841.
Against: Makes increasing the fee really complicated
If you've used Bitcoin for long enough, you've probably run into a situation where someone sent you some Bitcoins, but didn't attach a fee.
If the change output were explicitly marked, the sender could just resend the transaction with a slightly smaller change output, and a slightly larger fee. Miners would know that they could safely accept the new transaction into their memory pool without helping anyone commit fraud. Then, we wouldn't need stuff like replace-by-fee or child-pays-for-parent.
Against: Makes the UTXO set much larger
If you have 50 outputs that make up your money, that means that you're taking up 50 times more space than you would if you had a single balance.
TL;DR: It could have been done differently, and there are some reasonably compelling arguments, but it's impossible to change now.

You should probably point out that concepts like the UTXO database didn't even exist up until Bitcoin Core 0.8, it confuses a lot of people when they go and read up about "pruning" and wonder why the system we use today seems completely foreign.

@Bitcoin They didn't exist because the idea was that the average person would use an SPV wallet. The idea that the average consumer or merchant should run a full node is a relatively recent invention.

The UTXO didn't exist because it hadn't been written yet, instead the client used an unwieldy and poorly scaling BerkeleyDB database. The current implementations of SPV are atrocious from a scalability and privacy view, so it's pretty irresponsible to go suggesting them to anyone.

@Bitcoin Maybe I should rephrase: the idea of having a database of transactions and marking them spent and unspent existed, but it wasn't considered important to optimize the size of the unspent output set, because you can't serve SPV clients with just a UTXO database. WRT to scalability and privacy... this is probably getting offtopic. Shall we take this discussion to Bitcoin Lounge?

"Against: Makes the UTXO set much larger" argument is only valid assuming that everyone uses only one address. Which means extremely bad privacy.

@Jannes: possibly, but I'm not convinced that it's particularly difficult to link sets of transactions together by who sent them. And there are many circumstances where people use the same address repeatedly anyway, despite it costing just as much in terms of space in the current system.

Transaction outputs only have two states, spent and unspent, so spending part of one is not possible without the creation of another. With a boolean spent/unspent there is no state to have to store and recall, which allows for simpler states in wallets and makes scaling away from the block chain significantly easier. Imagine if we had a transaction spending a decrementing amount in an output, what's to stop that transaction just being repeated and debiting the amount again? Having atomic outputs means you don't need to worry about things like serial numbers, which alternate systems like Ethereum and NXT do, due to their lack of inherent replay protection.
There's additionally no purpose in stating the fee if it can be inferred, and doing so saves space in the transaction.

Transaction outputs only have two states, spent and unspent, I understand that. I don't understand the reason for designing the protocol that way. Why was this system chosen?

@Bitcoin: Comments are only meant for clarification and minor addendums, please rather edit the answer to put additional information there. :)


text:
How can non-Coinbase customers pay to Coinbase from Android?
Scenario: Say I want to create a shopping app on android. After filling the shopping cart, when the user wants to check out, he is asked to pay me the bitcoins.
I have created an account on Coinbase.com.
Questions: After adding the items in the app to the cart, the user is directed to the coinbase payment page. How is the user going to pay me, if he doesn't have a Coinbase account but some other wallet? If he pays me the required bitcoins, how will I relate the user's payment with the invoice of the order generated for him?

Hi srujan, I tried to refactor your question to make it a bit more succinct, and easier to understand your topic from the title and tags. I hope I managed to conserve your intent. Should I have changed your question in a way that you feel is inappropriate please feel free to make any ammendments or roll-back my changes.

The coinbase payment page has a "pay to address" option that will generate a unique address associated with your order and display a QR code. User can simply send payment to that address.

After the user proceeds with payment, say with his coinbase account then the coinbase will understand that the payment has been done, but if the user uses another vendor say gocoin then will the coinbase acknowledges the transfer for the particular invoice?

Yes because the address he pays to is uniquely generated for that particular invoice only.


text:
How long do transactions on the Liquid Network take to clear?
Transactions on the Liquid sidechain are said to enable much faster transfers than the main Bitcoin blockchain.  How fast are the the transfers?   Does it still use a blockchain?

This sort of comes across as spammy.

@Anonymous I see how one might feel that way, I just wanted to find the answer to this question and didn't find it here.  So I researched a bit and made a Q&A.  Feel free to edit.

Does it still use a blockchain?

Yes, it is using a blockchain, however it is "federated" with a known set of participants which enforce consensus rules. It does not utilize proof-of-work mining.  The Liquid sidechain allows 2-way pegging of assets eg: L-BTC <-> BTC.

How fast are the the transfers?

The Liquid white paper mentions 1 minute block times with the possibility to reduce this:
"Today, the implementation allows for one minute blocks. It will be possible to reduce the time to the amount required for the pre-commit and agreement threshold time of the network traversal"
However (as of October 29th, 2018) the Blockstream website has a bullet point indicating the actual settlement time is 2-minutes currently:
"React to trading opportunities faster thanks to two minute settlement times when sending between exchanges."
This should allow much faster transfers between exchanges which could potentially let users trade L-BTC upon receipt as though it were BTC.


text:
Need help about Mining and Difficulty levels!
I am new to these mining things and i want to know that, "What if the difficulty level increase?, would i make a loss with mining? I am mining $1 USD with 5MH/s server with the current difficulty."
Can someone shed some light on this matter? I will be very thankful to him

Generally speaking, as the difficulty goes up, and you keep the same hardware, your earnings will go down. If they drop below the cost of mining (including electricity, etc), then yes, you will have a loss.


text:
Which bitcoin miner ASIC can use without leave power on computer?
after search and read a lot of bitcoin miner posts in the web, yet I have one doubt before buy bitcoin hardware...
I have read about ASIC Hardware of ButterFly Labs, Avalon, Knc, USB Erupter and others... But anybody specify if the computer have be power on all time...
Can I use ASIC bitcoin miner without leave power on PC 24/7?
If is possible can quote some example...
Thanks!

The computer has to be on while you are mining.  As part of the way mining works, you need block headers as your input data.  For solo mining, these block headers are computed from transactions and other blocks coming from other peers on the network, and you need to update that data frequently.  (If another miner finds a block and you don't update your header to link to it, any block you find after that will be orphaned and likely rejected, making your mining a waste of time and energy.)  For pooled mining, you need updates for similar reasons, except that the updated headers come from the pool operator.
For most such devices, collecting this data from the Internet is handled by the host computer, so it has to be on and running the whole time.
It is possible to use a small low-power computer for the host.  One popular choice is the Raspberry Pi.

Thanks! But you have an idea why some asic miner has ethernet or wifi connection?

@omixam: Miners that have their own Internet connections may or may not need a host computer.  You will have to read their documentation to know for sure.


text:
Is Bitcoin a developer only currency and community?
The Bitcoin repo on Github has 7 members. Ultimately, they decide what bug fixes and pull requests get merged. I don't understand how this is decentralized? Yes, it is open source, so anything they do merge can be seen by all, but how many of those all can really understand that code? Ultimately it will be the miners who will be responsible for pulling in new code - are we to say that all miners thoroughly review the source code and commit log before pulling in any changes?
So this then means that the people behind miners are usually developers themselves? Which then basically means that developers are in charge of Bitcoin as a whole? If that's the case, are developers qualified enough to create and run a currency - do we not need economists as well?

Disclaimer: I'm one of those 7 people.
It is true that changes to this one particular code repository, and the releases of the Bitcoin Core software built from it are ultimately controlled by a few people, and many miners run this software.
However:

Bitcoin Core is not the only software interacting with the Bitcoin network. There are other node and wallet implementations.
You can run a modified version, or you can fork the code and maintain a branch yourself if there are features or changes you'd rather see.
Even with Bitcoin Core powering the majority of full nodes on the network, its developers can't directly change the core protocol rules. If a change was controversial, people can (and should) refuse to upgrade. Ultimately, it is the people deciding to run a Bitcoin node that indirectly set the network's requirements.
Miners do not set the rules. This is a common misconception; many people think the longest chain created by miners is the one that gets accepted by the network. This is not correct: it is the longest valid chain that wins. Every full node - including non-miners - verify the transactions in the chain and will simply ignore a chain with faults.

I think you're asking two slightly different things here:
Is Bitcoin development centralized?
Yes. The alternative, letting people you don't trust add code to Bitcoin, is a much worse solution.
Also, I'd like to note that while development is centralized, it's also highly accountable. For example, a developer can't just reject a change, they must say why they're doing so, and the reason will be publicly visible.
Do developers get more say in the direction of Bitcoin?
Yes. You get more say in what features get added to Bitcoin if you know how to write C++. You also get more say if you are fluent in English.


text:
Does the 1 MB block size limit include the header?
I was able to follow the code to validation.cpp:
// Size limits
if (block.vtx.empty() || block.vtx.size() > MAX_BLOCK_BASE_SIZE || ::GetSerializeSize(block, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) > MAX_BLOCK_BASE_SIZE)
    return state.DoS(100, false, REJECT_INVALID, "bad-blk-length", false, "size limits failed");

and serialize.h:
template <typename T>
size_t GetSerializeSize(const T& t, int nType, int nVersion = 0)
{
    return (CSizeComputer(nType, nVersion) << t).size();
}

But for the life of me I can't figure out what CSizeComputer is doing. Does GetSerializeSize include the block header in the value it returns?

possible duplicate of https://bitcoin.stackexchange.com/questions/41196/how-is-the-size-of-a-block-calculated

I'm not treating it as a duplicate as a question about Bitcoin Core's serialization code is included.

CSizeComputer is a serialization stream that discards all data written, and just counts how many bytes were produced. It is inlined, and the compiler in most cases actually avoids computing the bytes.
So, GetSerializeSize(block, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) just computes how many bytes would be produced when serializing a block for the network ignoring witnesses.
As blocks on the network indeed are prefixed by their header (and transaction count), those do contribute towards the maximum block size.


text:
Ability to Send Bitcoins to an Address over a duration of time
Is there a service or upcoming feature which lets you send Bitcoins to an address over a duration of time? I can write a script myself to send 1mbtc every day to an address and leave it running on my computer/server. But I was wondering if there was a service that does this already? Or can smart contracts do this, if so which one?

Seems like you're looking for an automated billing solution, or something along those lines. There may be others, but I know Coinbase has support for this. This is a screen shot from their online interface:

If it was a recurring payment in small amounts, you might also consider Micropayment Channels, so that the feels were not prohibitive. For larger, monthly or yearly transactions, though, the fees paid to the miners may not be as noticeable.


text:
farmers quest to exchange goods and services
I would like to know whether it is possible for farmers to use Bitcoin to exchange good and services without ever using other money. We are trying to build a network between local farmers and would like to use Bitcoin in exchange for our services.
Looking forward to hearing from you.

Hi Zeno, and welcome to Bitcoin.SE! I'm unsure what your question is. Could you clarify? Are you asking if it's possible to use Bitcoin in a rural area?

Great use of Bitcoin! Do you have cell-phones and network-coverage?

this was a nice initiative. What I imagine is a ring of farmers where each and everyone produce different products and/or provide certain services. For instance, one farmer could sell milk and eggs, another one could be an expert at mending barns, and yet another one could be raising chickens and selling those.
Let's say it is a group of 20 farmers, and they want to use bitcoin for trading goods and services among them.
First of all there should be 1 or 2 super enthusiasts that could be the 'go to man' for the others in the event of issues.
There are several things that needs to be considered:
A. Determine what level of IT-strategy is advisable. Most farmers probably have some kind of IT-equipment already, be it smartphones, personal computers, tablets etc. As for accepting BTC, startionary equipment is fine, but when visiting another farmer, then a smart phone would be great to be able to pay. Of course there are several ways to go about this. Bitcoin.org lists many options in regards to wallets, and most wallets have their dedicated thread on bitcointalk.org, where you can learn about the wallet that you chose to use. Unless you deal with trivial amounts of BTC, there should be some backup strategies, this could include using cold wallets (educate yourself about this), and also regular backups regarding hot wallets. Remember hot wallets can most often be encrypted and protected by a passphrase. Backups are very important. If the farmer loses his smart phone in the dirt container, it's gone, and so is the bitcoins, but if he has a backup, he'll be safe in regards to retaining his bitcoins. There are so many ways to backup the bitcoins, so I cannot elaborate on that here, but it's a crucial part of dealing with bitcoins. A wallet with cash is lost when somebody steals it, or if you lose it on the field, bitcoins are safe as long as you have a backup. The bitcoin enthusiast in the group should research different options carefully and select what's best suited for the group of farmers.
B. Get bitcoins in the hands of the farmers in the first place.
- Solutions: Use localbitcoins or similar and do face to face cash trades. Alternatively, use an online service (exchanger or exchange), and deposit money through any method the site accepts. This might be a good starting point in that regard: https://en.bitcoin.it/wiki/Trade
C. Get tradin'. Farmer Joe buys a dozen eggs from Farmer Jane with 0.n bitcoins. How to determine the price? Some price finding service could be made by the enthusiast, or some existing web services could be used. Bitcoin prices are a bit volatile, so they need to be dynamically uptated by converting from USD to BTC. So when Jane drives over to Joe to get some eggs, he says, yupp, that's 10 dollars in bitcoins, and he enters 10 USD in his tablet, and out comes the number 0.03. He then points at his QR-code, and says: "Yupp, that's my payment address, just scan it Jane, and you could pay me directly". Jane scans the QR-code with her phone, and sends 0.03 BTC to Joe. Joe checks at his computers and sees the payment going in to his wallet, saying '0 unconfirmed'. As he trusts Jane, and knows Jane is not the double-spend type of farmer, he happily raised his thumbs and smiles. "Yupp, all done Jane - have a good one!"
The challenge as I see it is to keep the bitcoins safe for non-technical people. Perhaps some kind of bitcoin community union for the farmers would be the way to go?
As I see it, the transaction part of the project is the easiest part, while keeping the bitcoins safe demands that at least 1 person (preferably more) in the group has the technical knowhow to setup secure solutions. Perhaps even dedicated devices for such payments would be advisable.
The advantages would be that you would become independent of the traditional cash system, at least in the farmers trading ring. In addition, if done properly, no money could be confiscated by police if stopped in a control (I've heard cash confiscations are rampant in the US these days..). There could be no counterfeit money, not that it would be an issue with cash either, I would think. And you would not enrich the bankers with fees and so on. Now that bitcoin has become more widespread, the farmer could sell eggs and milk for bitcoins, and then use the bitcoins to buy linen, pillows, computers, tea - virtually anything, so he didn't really need to use cash for all things any more. And if someone breaks into a farmers house and steals his laptop, he's already got a backup stored encrypted on a server run by the IT-enthusiast in the group, or stored on an USB-drive hidden somewhere in the barn, so until the thief cracks the passphrase to the wallet, the bitcoins are already swiped to other addresses, and thus the thief will gain nothing.
When using a normal bank, all transactions are tied to your person and reported to the relevant entities. Now, the blockchain is public knowledge, but it's rather hard to track a single bitcoin address to a certain person.
All of this might sound quite complicated, and it kind of is as well, but using bitcoin to pay is not that difficult, just scan a QR-code, then input how much you should pay, and done with it - so what might be best would be to seek out some kind of solution that's already ready made for scenarios like this. I don't know if it exists, but look and you shall find.
In summary, you need a solution that hides all the complicated parts, and makes it really easy in a day to day usage.
I wish you the best of luck!


text:
Researching Bitcoin Wallet clients to use? Which one provides the best peace of mind?
So far I've just been using Bitcoin-Qt for win7 and the regular android bitcoin wallet from andreas. But now I want to store my bitcoins in a safe place and I'm not sure which wallet client I should go with as there seems to be a bunch on the market now. Electrum, Bitcoin-QT, Armory, Blockchain.info, Mycelium (android), Trezor, and others.
I just want to store my bitcoins in a safe place where even if *I never update the client app * I can still send/receive my bitcoins in the future even if the code changes or what not. Obviously there is always the worst case scenario if one day one of the client developers decided to be malicious and write code that sends everyone's bitcoins to their own address.
I think I'm going to just get a separate phone just to store the bitcoins instead of having to get an entire separate laptop to store it. Its just im afraid one day if the apps get outdated and the developer stops supporting it, would that affect the btc I have stored on there?

possible duplicate of Keeping a portable long-term offline wallet

From this description, rather than choosing the best client to use, you should simply export your private keys to a wallet file. At any point in the future, you can load your wallet file into any almost any client and access your bitcoins.
Not all clients currently allow you to do this, notably the Bitcoin Wallet app on Android by Andreas Schildbach. In this case, you should send your coins to another address created with Electrum, Bitcoin-QT, Armory or Blockchain.info as all of these allow you to export your private keys. There are other apps/web apps that allow you to expot you wallet, these are just the ones that you mentioned that I know can do it.
Once you export you wallet containing your private keys, you can keep it on any device. You don't necessarily need to buy a new laptop or even a phone. A simple USB key could work and you could load the keys from it onto any computer any time you needed to spend your funds.
Alternatively, you don't even need a client application. It's possible to generate a public/private key pair outside of applications connected to the block chain. And any bitcoin sent to the public address will be available using the private key. But, I wouldn't recommend this unless you really know what you're doing. If you don't do this in a cryptographically secure manner, someone else could generate the same public/private key pair and access your bitcoin.
Update:  The Bitcoin Wallet app on Android by Andreas Schildbach does, in fact, have an export option.

so all .wallet files are universal regardless of the program? so the android app by Andreas cannot export to .wallet? I see they have their own export option, so thats proprietary to only his app?

Actually, let me add a few caveats to that -- wallet files should be universal, but there are a lot of changing standards, so make sure your wallet files work in a new client before deleting everything from your old one. Secondly, you're right, that Bitcoin client does have a way to export files, but I haven't checked the format, so use the same advice as above when moving exported data between applications.


text:
If everyone has a copy of the block chain, how much space does it take?
Since every wallet program has the entire block chain info. How much space does the block chain take? And what prevents it from growing too big where we would run out of space?

I run a full node, and as of today, the blockchain is 10.1 GB.  Since the bitcoin network is active, the answer to your question about how big the blockchain is something that is quite time dependent.  If you were to come back in a month and ask the question, the answer would likely be 11 GB.
I was wondering a while back about the size of the blockchain and whether or not it would eventually consume my entire hard drive and I crunched some numbers and calculated that if I expect my computer to last another three years (it's two years old now), the blockchain would then be 60 GB.  I have a 250 GB hard drive and with the amount of free space on it (141 GB), even when it gets that big, I should still have plenty of free space.
Nothing really prevents the blockchains from growing so big that we would run out of space, but given that Moore's Law applies to hard drives as well as processors, I'm not all that concerned about this happening.  By the time the blockchain will be in danger of consuming my whole hard drive, my computer will be old enough that I'll likely need a new one anyway.
However, if this is something that you're concerned about, you always have the option of using a lite weight client like Electrum that does not require you storing the blockchain on your hard drive.  Electrum is available at http://electrum.org/
In any case, most people these days have enough storage space to store the blockchain.  The bigger bottleneck is that bitcoin-qt is a bandwidth hog and bandwidth tends to be a lot more precious than hard drive space so if you are using a relatively low bandwidth internet connection, this would be another reason to use a bitcoin client that does not require that you run as a full node and relay transactions such as Electrum.

what about our smartphones? so your saying the bitcoin app i downloaded on my android takes up 10gb of space on my phone?

@duckx - The Android client uses bitcoinj, which is a lightweight client.  It uses a method called Simplified Payment Verification.  From the user perspective, it's like the Electrum client Evan mentioned (neither one requires storage of the whole chain), but it works differently behind the scenes.

There is also a version of Electrum for Android that is being worked on, so if you're an Electrum fan, you can (or will soon) be able to use the same client on your computer and your smart phone.  See https://bitcoinstarter.com/projects/104 for more information.

Just for comparison purposes for anyone checking this thread, almost a year later, the blockchain is 21.8 GB.  This is still likely sustainable for me for now, but the catch is that I use Armory and it also has a completely separate copy of the blockchain that it uses.  Thus, anyone using Armory has a current hard drive space requirement of 43.6 GB, which likely isn't sustainable, at least for me, but hard drives are cheap, I imagine it wouldn't be that hard to buy a 1 or 2 TB hard drive to fix that problem.

as of mid 2018 the blockchain size is +160 GB...