text:
What happens if the US govt. bans Bitcoin?
They can do that because they are the US govt.
What would be the likely consequences of the ban?

Governments ban a lot of things. They're not very good at enforcing their bans.

What is more likely to happen is the exchanges will start getting taxed.

Same as the ban on drugs:

People would continue to use them, they'll just do it in secret.
The value will rise.
The government will spend lots of your taxes to try to fight it and fail.

Why do you say the value will rise? Shouldn't it fall, because it will be impossible to use them? You can still use drugs...

The illegality of drugs makes them harder to buy but the users aren't less wanting to use them.  So the supply is decreased while the demand remains: Value goes up.

The supply of bitcoins would stay the same, because difficulty would probably go down. 2) The drug supply is constantly being consumed by drug users. On the other hand, if I use a bitcoin, it's not consumed.

Doing it in secret... Wouldn't really be an option for shops

The USA is only one country of many. Others will continue to use bitcoins.

@Mella Ok, you HAVE to be trolling.

For sure, check his list of questions :-)

I'm not a troll. I think it's obvious for everyone that US govt. actions affect the entire world. Other governments action not so much

Or the similar example with drugs but with another consequences in Saudi

The price will dramatically go down.
Only few people would be able to afford the risk of doing any kind of transactions with them

I can not say that they banned it, because they were illegal all the time. But because the price for breaking the rule is so high (Death) almost no one tries to possess or sell them. Moreover, if anyone would find out that you have them, they would tell about you and this will be the end for you. I can not say that in this case the government is spending a lot of money, their try is very efficient and for sure they are far away from failing.
If someone think that this is not the case - try to go there and try to buy some :-). Before this - just send me your bitcoins, I will for sure give them back if you will come back. This was a joke - I am not promoting drug users here.
In the end - all depends on regulations and how will it be enforced.

The price of coke in Saudi is one of the highest: http://www.havocscope.com/black-market-prices/cocaine-prices/

Cool link, but better try to sell one there or even to buy. What I am trying to say in the answer, that no one knows what will happen. The question by itself is actually non-constructive.


text:
How can I export all my private keys using bitcoind?
I know that PyWallet has a -dumpwallet but without using pywallet, how can I export all the addresses and privatekeys with the stock bitcoind?
Is there an API command that lists all addresses held by the wallet?

You could send the dumpprivkey JSON-RPC call to the client.  It takes a single parameter of BitcoinAddress to reveal the private key for that specific address.
To export all private keys for all addresses, you would have to call listreceivedbyaddress to list the addresses and then call dumpprivkey for each.
See:
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list

That won't dump keys associated with 'change' addresses.

According to the documentation...
"Listing the bitcoin addresses in your wallet is easily done via listreceivedbyaddress. It normally lists only addresses which already have received transactions, however you can list all the addresses by setting the first argument to 0, and the second one to true."

Using bitcoin-qt for an interface:
listaddressgroupings
is the command which will list all addresses in use. Run it in the debug console window from the 'Help/Debug Window' screen.
Then, apparently, you can dump all the private keys, but only one at a time, using dumpprivkey for each key.
Seems lame.

Just go to your QT Wallet Console (Help -> Debug Window -> Console)
dumpwallet "C:/users/yout-user-name/dumpwallet.txt"

The command will export every of your private keys into that text file.
P/s: in case you have encrypted Wallet before you need run this command before run dumpwallet
walletpassphrase "your pass phrase" 600

source: Stack Exchange

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

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

sort: votes


text:
Is there a simple method of tracking number of transactions sent to an address?
I want to create a counter in my store displaying the number of units sold.
I'm not using a shopping cart, but simply placing a bitpay button.  I'm wondering if there is a way to query the blockchain, that will return the number of transactions sent to an address, over a given time period.

You can see the number of transactions for a Bitcoin address. That's easy. Either through a desktop wallet(Like Bitcoin QT) or using services like blockchain.info. Just search for an address there.
You can't do this for your site thought because you're using Bitpay and they provide a unique address for each payment to your site.
Even if you weren't using Bitpay, you would need to generate a unique address for each purchase on your site to be able to figure out which customer paid how much and when.
You could take an aggregate of the transactions and display them along with each unique address you used but I would strongly advise against it. Because then people could easily trace where you spend the Bitcoins that your customers paid you.
Try getting the number from your accounting records instead of trying to get it from Bitcoin payments ;)

Thanks, this was informative. The thing I'm looking to do though, is create a dynamically generated sales counter.
Short of installing a 3rd party shopping cart, do you have any suggestions for that?

You must be keeping records of sales somewhere. Just need to get it from there and display it on your site. Perhaps talk to the person managing your site? But definitely don't use Bitcoin transactions for this. Don't forget to upvote and/or mark as accepted answer if you are satisfied with the answer ;)

Other methods are not within the scope of this stack exchange.

Assuming you have Bitcoin-Qt in use:

open the debug window and go to its 'console' view
issue the command listaccounts and from the output select an account name
use that name to issue a listtransactions your_account_name command
in the output count the occurances of "category" : "receive"

These same commands are available through the RPC interface of Bitcoin-Qt, so that is how you can script the above.

Nope, he said he's using bitpay.

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


text:
Is it a bad idea to use a bitcoin wallet address in a domain name or URL?
Aside from it forever being public and kind of marrying a business to a wallet.

What do you mean by using a wallet address as a URL? If you type a bitcoin address into a browser, it won't send you anywhere useful.

yes, I meant like http:/1AJumUtyfXC47cwii5CHYHkhXRHuPTQ3F3.com

If you mean as part of a URL or domain name, then yes, I think it's a bad idea. If your private key is somehow compromised (eg through a stolen or hacked PC) you may no longer want to use that address, but your users may have it in their bookmarks for years afterwards.
However, as long as it didn't have any particular meaning (such as being accompanied by an instruction to donate to that address), it may not cause any harm. Secondly, it's easy to redirect a user's browser to a new page if you need to.
Usually URLs are best kept short unless it's a sub-section of a site used for sharing or bookmarking. Keeping them looking like words (as much as possible) helps with usability, so unless your vanity address is the longest ever generated and you want to show off, I can't see a good reason to include it there.

Good points, thanks. It's probably interesting short term, but a huge pain longterm.


text:
How to transfer only the blockchain to a friend's computer?
After installing the bitcoin client (Qt) a friend got interested as well. He doesn't have as fast an internet connection, though, so I thought of burning some DVDs with the blockchains for him to have.
I saw this question on how to transfer blockchain from PC to Mac and the solution was to copy the whole "Bitcoin" folder. However, that folder also contains MY wallet as well (which I definitely do not want my friend to have, even if encrypted).
So I'd like to know, which folder(s) and/or files do I need to copy, minimally, so he needs to get as few blocks over the network as possible?
If it's too much of a hassle, most probably I'll suggest him to use multibit or electrum instead :-)

Transfer everything except wallet.dat and the database folder.

To be more specific, you need to transfer the blocks and the chainstate directory. Don't transfer the database directory as it may contain remains from wallet.dat such as private keys.

The first comment is technically a "clearer" answer because it provides instructions in the affirmative (i.e. "copy only X and Y") instead of via negation (i.e. "copy everything except "L" and "M") - since the second set of instructions the user only knows what to copy by inference. However both are technically correct! Just a note for future answers and interested readers.

What about tx index on running wallet ? I suppose it will result in corrupted index, since the copying will run for hours anyway


text:
Transaction fee required by bitcoin-cli keeps increasing as I increase the fee
I am using bitcoin-0.13.0 and trying to send 0.035 btc to someone.
./bitcoin-cli [auth] sendtoaddress XXX 0.035

Error: This transaction requires a transaction fee of at least 0.00150835 because of its amount, complexity, or use of recently received funds!
Then I try to set the fee:
./bitcoin-cli [auth] settxfee 0.00150835

=> true
... and try to send again:
./bitcoin-cli [auth] sendtoaddress XXX 0.035

Error: This transaction requires a transaction fee of at least 0.00187149 because of its amount, complexity, or use of recently received funds!
.. and this keeps going on and on and on with various random values being output as required transaction fees regardless how many times I set the tx fee.
There have been no transactions in my wallet for some 4+ days.
I thought the transaction fees were optional? now this is becoming more and more like my bank charging a fee on each wire?
What am I doing wrong?

The problem with sendtoaddress is that the transaction size isn't known in advance.  It may be that by adding a fee, you are needing to include a new input in the transaction, but inputs are the largest and therefore the most expensive part of the transaction, so that makes it still more expensive.  That would be most likely if you have a lot of addresses with small amounts in them.
Also, settxfee sets the fee per KB, but from a quick review of the code, that message seems to be printing an absolute amount rather than a rate per KB.
You may want to adjust the settings described here:
https://bitcoin.org/en/release/v0.12.0#wallet-transaction-fees
For complete control, you can use createrawtransaction/fundrawtransaction, or use an external system (e.g., coinb.in) to create the transaction and just sign it using your core wallet.

Thanks Tim. I solved the initial transaction by setting a crontab script to run every hour until sent with zero tx fee, it got sent yesterday. I just tried your solution with another transaction a minute ago and it worked fine. Thanks again.


text:
Where is the best information about the contents of bitcoind 0.8.2?
There seem to be a few interesting changes in this version, possibly affecting the protocol itself (de facto).
Where can I find the most relevant, concise yet detailed information about this version?

The 0.8.2 makes no changes to the protocol, to make that sure.
The official information on the change that everyone is talking about is this pull request on GitHub.
You can find some people trying to make conclusions about the effects of the change on BitcoinTalk and Reddit. Keep in mind that they are not official representatives of the developer team and that they often proclaim incorrect information.
The only correct statement is the one in the pull request. Probably there will be some release notes as well as soon as the update gets pushed.


text:
What advantage do Mt.Gox or Kraken have over Coinbase?
I just verified at Mt. Gox and am pending verification at Kraken.  However, I quickly realized that there were hurdles that I needed to jump through in order to get my USD into BTC.  Coinbase was a much easier alternative.
What advantage do Mt. Gox or Kraken have over Coinbase?  I realize it's quite easy to move BTC into both Mt. Gox and Kraken hosted wallets.
Is it purely anonymity, pricing, or something that I'm missing, like trade execution features?

An important advantage they have over Coinbase is that they can offer a service to other people than U.S. inhabitants.
mtgoxUSD may be by far MtGox's largest market, but don't forget that mtgoxEUR and mtgoxJPY are still the 5th and 6th largest markets that exist. More trade volume means more robust and stable prices which is a good advantage as trader.
I'm not familiar with Kraken, so I can't speak for that.
Also, Coinbase does not support limit orders. This is very important. Read the link or search a little about limit order and you will understand.


text:
Are there many Namecoin domains in use?
I know that the idea of namecoin is to create distributed DNS system.
I also know that one can by bit address with namecoin.
But I have never seen any bit domains. If they do exist, how reliable are they?

.bit domains are not recognized by ICANN, the company that runs the main internet DNS. This means that most operating systems have no support for them built-in.
So, to be able to visit .bit domains, you will have to do some configuration first. You basically need to let your computer know where to search for the IP address translation of the .bit domain, as most computers head over to ICANN's DNS servers for doing that.
Considering the reliability of the network, that's not easy to measure. I'd suggest you look at the number of clients connected to the Namecoin network (I cannot find a reference for that.) and the amount and speed of the available DNS proxies. On the page I just mentioned, you can see that a decent number of DNS proxies exist for Namecoin. I have no experience with using them. Considering you choose one that is close to your physical location, I'd guess they are fast enough.
On the amount of available domains, I think the .bit TLD is not quite adopted yet. But you can see on the Namecoin explorer page that new addresses are added at a fast pace. Here you can find a list with some popular .bit addresses.

Thank you Steven, I actually aware of this. May be my question was a little bit misleading, but I was actually asking the examples of such addresses and how reliable is the current DNS infrastructure.

I added some info on reliability and usage, but I'm not very experienced with Namecoin.


text:
Is MultiBit secure? And hong long will MultiBit import .aes.json take?
Two questions:

Is MultiBit secure?
I opened a wallet in blockchain.info, and I want to import .aes.json to MultiBit, hong long will MultiBit import .aes.json take? I waited too long.

There is currently a bug in the 0.5.9 code that prevents it from loading blockchain.info wallets. It is fixed in the develop code and will get into version 0.5.10 (which will probably be released after the Bitcoin conference now). The older versions work fine - version 0.4.23 is in https://multibit.org/releases . You could just use that version for the import.
Is MultiBit secure ?
Security for bitcoins has several aspects - here are the main ones:

Is it open source ? Yes.
Can you trust the developers ? Well that is for you to decide but I've been working on it solid for over a year now and code it 'in the open' not pseudonymously.
Can you check the downloads are the correct ones ? This is important now that Trojans have started appearing. Yes. Download from https://multibit.org. Check the binary against the PGP signatures. The Mac version is also signed with a Mac developer cert and soon I'll start doing the same with the Windows version. Not enough? : build it directly from the code.
Do you control the private keys ? Yes, there are stored locally.
Can you encrypt them ? Yes.
What about malware and keyloggers ? Until we get hardware wallets bitcoin clients in general are vulnerable to an attack by malware and keyloggers combined. You need to practice 'Safe Computing' on the computer you have your bitcoin on. If you are dealing with serious amounts of bitcoin sign your transactions offline with either Electrum or Armory rather than MultiBit.

I don't know MultiBit too well, but since it is mentioned on the bitcoin.org homepage, I think it's secure enough.
Once MultiBit is in sync with the network, such an import should only take a matter of seconds. If you have to wait fora minute or more, there is probably something wrong.
Are you sure that MultiBit supports Blockchain.info's wallet format?

Hi,Steven Roose, yes,MultiBit is in sync for an hour,it hasn't finised yet, how long will it take?

THe Blockchain.info says its wallet can recovery by MultiBit.

I imported a blockchain.info wallet backup recently using MultiBit 0.5.12. Took about half an hour on "coffee shop" WiFi.


text:
Running a Bitcoin client with tor with a Debian based Linux OS
I've received a question asking how to setup a Bitcoin client using Tor on a Debian based Linux system. Could someone provide a rough overview and perhaps a link to a tutorial?

This might be valuable as a wiki imho

Not really, the steps are very simple.

It's a surprisingly common question

Doesn't mean that you need to wikify it :) Wiki is for when collaboration is needed. Not so much here.

Setting up Vidalia

Download the Tor Browser bundle
Extract, go to the App folder, and double click Vidalia (and select "Run"). Let Vidalia load.
If Vidalia doesn't work, run the "start-tor-browser" file at the top level of the extracted directory.
Ensure that the port is 9150 (it usually is). If you're not sure, go to Edit>Preferences>Network>Settings and check that the opened Firefox window is connected to a SOCKS v5 proxy on port 9150. If not, make note of the port and use it in place of 9150 in the rest of this post.
If Firefox was opened, close it. You don't need it for this.

Setting Tor up for your Bitcoin client
Bitcoin-QT

Ensure Vidalia is running
Download Bitcoin-QT, and extract
On your Debian command line, run sudo apt-get install libqtgui4
Go to the bin folder in the extracted Bitcoin, choose the 32 or 64 forlder depending on your system (32-bit/64-bit), double click the bitcoin-qt, select "Run"
Go to "Settings" in the menu bar, "Network" tab. Check the SOCKS proxy tickmark, set IP as 127.0.0.1, port as 9150, with version 5.

Setting it up with Electrum
Run the following lines in your command prompt:
sudo apt-get install python-qt4 python-pip
sudo pip install http://download.electrum.org/download/Electrum-1.7.3.tar.gz

If you have trouble using pip, download Electrum from here and run pip install /path/to/Electrum-1.7.3.tar.gz (Usually will be pip install ~/Downloads/Electrum-1.7.3.tar.gz)
Run electrum on the command line
At this screen, you can choose either option depending of whether or not you've already used Electrum before:

Now, use these settings for the next screen:

You may use a different default server if you wish. Try to get one that is situated close to your physical location.
If you selected "restore", fetch your seed (should look something like the one entered below) and enter it in the text field. If you had a lot of addresses in your old wallet, increase the gap limit. (that is the number of unused addresses Electrum generates before giving up on this)

Follow the remaining instructions: Safely store the wallet seed, and set a password if you wish. If the connection is working, you should see a green light at the bottom:

Setting Tor up with bitcoind
Simply run bitcoind  -proxy=127.0.0.1:9150 (or whatever the port is)

Are you sure of port 9150? I read 9050 instead in some sources...

I've read both ports in respect to setting up a VPN with Tor. Should there be a difference?

@StevenRoose: Depends. Tor browser bundle uses 9150.

@CharlesHoskinson: Depends on how you have installed Tor. The method I've given usually sets it up on 9150. If not, I've mentioned a way to check.

Could you include instructions for bitcoind?

@GDorn done. Not sure of that bit though, never used it.


text:
How are "message signatures" verified without having access to the public key?
In the bitcoin-qt client you can sign and verify messages using only the public address. Since the public address is a RIPEMD160 hash how is it possible that I can verify a signature since I do not have access to the public key?

It is possible to recover the public key from the signed message and the signature. This public key can than be hashed and compared to the hashed public key you already have.
So you don't really "verify the signature with the public key*, because you don't need to have it beforehand to verify the signature. What you do is calculate the public key that corresponds to the private key with which the signature has been created.

When signing a message (as opposed to signing a transaction), the signature contains additional information needed to recover the public key using the signature and the signed message.  The recovered public key is then hashed and the result compared to the address.  If they match, the message was signed by that address.

Actually messages are signed using the private key and verified using the public key. If you'd be able to sign and verify only with the public key, that wouldn't make sense and it wouldn't stop anybody from reading your messages and signing them with your public key, which as the name states, is public.

When I said "using only the public address" my intention was to say, verified with only the public address which is a hash.
Anyways, I found the answer elseware: it looks like you can extract a public key from certain signature encodings. This public key then can be used both to verify the signature and to verify the address hash.
https://bitcointalk.org/index.php?topic=6430.0

Maybe post that as an answer to your own question, rather than a comment. It's correct.


text:
Bitcoin-friendly Bank
As is well known many Bitcoin businesses and in particular exchanges have had a lot of trouble working with banks. Are there any banks that are explicitly Bitcoin-friendly?

CoinBase and mtGox seem to work OK with banks

With which banks?

I think they can wire most banks when doing exchanges either way

Despite the popular consensus on the matter, banks probably aren't specifically Bitcoin-unfriendly.  The repeated bank problems for exchanges probably come down to three main things:

Automatic risk triggers -- Banks have a lot of mechanisms in place that throw up warning bells when a new customer starts moving lots of money around, is rapidly depositing and withdrawing large amounts of money, etc.  In the past, such activities have often been associated with money laundering, crime, and the sorts of things that are generally bad for business.  Even if a Bitcoin business isn't a problem, it looks like one to the risk algorithms.  If, over time, Bitcoin businesses prove to in fact be low-risk while driving significant business for the banks, the algorithms may be adapted to take this into account.  But they're not rewriting their risk algorithms for what is from their perspective one tiny new technology (and that's probably responsible of them).
Regulatory compliance -- When risk triggers are activated, the first thing the bank wants to know is whether a business is fully compliant with anti-money-laundering legislation.  Many Bitcoin businesses and exchanges are, but the fact is that some aren't.  They haven't been prosecuted for it, but they weren't doing all the paperwork that they really should have been.  Sometimes it's not really the business owner's fault either--financial legalities can be complicated and arcane.  Nonetheless, failure to comply is a huge liability for a bank.
Legitimate risks -- Finally, despite their volatility, bitcoins are a much "harder" currency than most bank deposits and transfers, in the sense that a bitcoin transaction can't be reversed, while bank deposits and transfers are all the time.  That means there is a massive incentive for individually shady customers to move ill-gotten gains out of the banking system and into bitcoins, and there's nothing the Bitcoin exchanges and businesses can really do about that.  This is a major risk problem for a bank, who could end up out some serious money if transferred cash is later "charged back."  At least one major bank recently has quoted risk assessments of individual customers, rather than the exchange itself, as the reason for closing an account.

TL;DR:  Bitcoin per se doesn't have as much to do with it as many people think, and in most cases all three of these issues will apply equally at any financial institution regardless of their personal biases, or (more likely) ignorance regarding Bitcoin itself.  So in the sense that you're asking, there may not be such a thing as a Bitcoin-friendly bank.

not true. Bitcoin business per se is rejected by Wells Fargo. The Money Services Business Control Center also stated that large banks in general do not accept cryptocurrency business at this time. The service representative went on to say that smaller, local banks are a better bet for finding bitcoin-friendly banks.

The answer to the question also depends on the country. In Germany a new cooperation between the German Bitcoin exchange bitcoin.de and Fidor bank just started (read about it in this blog post). Apparently Fidor bank even plans to display a Euro and a Bitcoin account balance. That's as Bitcoin friendly as a bank can get I'd say.

There are not enough banks that have to deal with Bitcoin exchanges so you really don't have enough data yet for them to be able to say they are bitcoin friendly. What we can definitely do is do some sort of consensus of looking or questioning different banks to look into the issue, and then give their opinions on the matter.
I don't think individuals have to worry very much, it is the BTC businesses that are drawing large amounts of BTC that have a lot to worry about. Or the ones particularly that are an exchange.

In the US, I've read of two banks that have had involvement with Bitcoin exchanges - IAFCU and Silicon Valley Bank.
Though, there have been some recent reported issues - http://www.coindesk.com/tradehill-halts-trading-due-to-iafcu-operational-and-regulatory-issues/
Is anyone aware of any other US banks that are Bitcoin friendly?


text:
How can one realistically model the distribution of the network's unspent transaction outputs?
I am working on a simulation to explore the usefulness of a patch for the CoinSelection behaviour of BitcoinCore. To that end, I am looking for statistics on the distribution of unspent outputs respective to their value in satoshi.
So far, I haven't found much on the topic beside an outdated number of unspent transaction outputs, as likely search terms collide with a lot of unrelated topics.
Are there any papers or other sources that discuss:

How can one realistically model the distribution of the value (in satoshi) of all UTXO (unspent transaction outputs)?
What type of curve best approximates the distribution?
What are mean, standard deviation, and variance of the network's UTXOs' values?
Bonus: How did the distribution of UTXO' values change over time?

Clarification: I am interested in modelling the number of satoshi held in UTXO.

All of those questions would be answerable from the block chain. I would plot it as a histogram with x being the value of the UTXOs and y being the number of them.

There's multiple properties related to UTXO that come to my mind (e.g. index number, amount, script, txid, age...) - distribution of what quantity do you mean? Try to be more specific please.

@JozefKnaperek: Thanks, I was too much in the topic to realize that you could read it in so many different ways. I hope it is clearer now.

@Tyler: Yeah, I am aware of that. However, my question was, whether I have to do that work, or if someone else already has.

OK, makes sense to me now. But I haven't seen such analysis so far; I've found some nice online charts, but none of them does seem to be exactly what you're looking for. You can contact them though and they might add it (i.e. do the work for you :-)). Otherwise I guess you're on your own.

UTXO's are stored in the Chainstate. Something like Levelhud to make navigating it better.

I haven't read any papers trying to analyze the amount of unspent outputs. More often, people are interested in the distribution of address' balances. This could be interesting because it reflects how evenly distributed bitcoin is.
I did find this article: http://www.coindesk.com/what-block-chain-analysis-tells-bitcoin/, which seems like it might be of interest to you and is related to the distribution of UTXOs.
If you call gettxoutsetinfo with the Bitcoin Core RPC calls, it tells some basic info about the UTXO set. I just did this and got:
{
    "height" : 338396,
    "bestblock" : "000000000000000009f32437cb28d54ff600ec020778c8ce84ecf93b99d5218c",
    "transactions" : 4525842,
    "txouts" : 16217914,
    "bytes_serialized" : 566046691,
    "hash_serialized" : "1ad2172e4d37ce21291c116580f5b527e4c302b9c2ce4e88a91c0c00f748fb8d",
    "total_amount" : 13709764.78496462
}

So it seems that the average amount of an UTXO is:

13709764.78496462 / 16217914 = 0.84534699

To analyze the amount of outputs (note, this is not only UTXOs), I wrote up this quick script:
<?php

require_once 'jsonRPCClient.php';

$bitcoin = new jsonRPCClient('http://{username}:{password}@127.0.0.1:8332/');

$info = $bitcoin->getinfo();

$height = $info['blocks'];
$numTrials = 1000;
$includeCoinbase = false;

$cutoffs = array();

for ($i = 0; $i < 10; $i++) { $cutoffs[] = $i; }
for ($i = 1; $i < 10; $i++) { $cutoffs[] = 10*$i; }
for ($i = 1; $i < 10; $i++) { $cutoffs[] = 100*$i; }
for ($i = 1; $i < 10; $i++) { $cutoffs[] = 1000*$i; }

function GetRange($value)
{
    global $cutoffs;
    for ($i = 0; $i < count($cutoffs)-1; $i++)
    {
        if ($cutoffs[$i] <= $value && $value < $cutoffs[$i+1])
            return $cutoffs[$i] . " - " . $cutoffs[$i+1];
    }
    return $cutoffs[count($cutoffs)-1] . " - ...";
}

$sum = 0;
$distribution = array();

for ($i = 0; $i < $numTrials; $i++)
{

    $blockhash = $bitcoin->getblockhash(rand(1, $height));
    $block = $bitcoin->getblock($blockhash);

    $randTxIndex = rand(0, count($block['tx'])-1);

    if ($randTxIndex == 0 && !$includeCoinbase) {
        $i--;
        continue;
    }

    $randTxHash = $block['tx'][$randTxIndex];

    $randTx = $bitcoin->getrawtransaction($randTxHash, 1);

    $numOutputs = count($randTx['vout']);
    $randOutput = $randTx['vout'][rand(0, $numOutputs-1)];

    $value = $randOutput['value'];

    $sum += $value;
    $distribution[GetRange($value)] += 1;
}

echo (json_encode($distribution, JSON_PRETTY_PRINT) . "\n");
echo "average: " . ($sum / $numTrials) . "\n";

And the results are (after being cleaned up a little):
average: 89.55518291596

START   END     COUNT
0       1       636
1       2       73
2       3       18
3       4       20
4       5       14
5       6       11
6       7       8
7       8       8
8       9       11
9       10      12
10      20      36
20      30      26
30      40      15
40      50      16
50      60      29
60      70      5
70      80      5
80      90      4
90      100     3
100     200     29
200     300     4
300     400     4
400     500     1
500     600     1
600     700     1
700     800     1
800     900     3
900     1000    0
1000    2000    2
2000    3000    1
3000    4000    0
4000    5000    0
5000    6000    1
6000    7000    0
7000    8000    0
8000    9000    0
9000    ...     2

Which, when plotted, gives:

And since the 0-1 outputs make the rest go out of scale, this is a plot without the smallest outputs:

The Start and End figures, is that satoshis or bitcoins? Thank you for your hard work!


text:
What nodes are best for lessening the risk of loss from a race attack
A successful race attack is one where the payment recipient's node receives a spend transaction yet the next block that is mined has a different transaction that spends the same coin.  Thus the payment recipient's transaction will not confirm and the recipient never receives the funds.
This is an explicit attack to double spend.  The recommended protection is to not accept payment on 0/unconfirmed if there is no recourse (e.g., an anonymous buyer who makes off with the item traded before the double spend can be detected.)  For some types of businesses (e.g., retail, low-value goods purchased in-person, face-to-face), the risk is acceptable.
The recommendation for the merchant is to disable listening on the client (using -nolisten) and to explicitly connect to a well connected node (using -connect= ).
How does a merchant know which nodes are well-connected.  Because pool mining solves over half the blocks, ideally the well-connected node is one that reaches these pools first, so that if a transaction is relayed by the well-connected node then the odds are it will end up being the transaction mined by a pool even if there was an attempted double-spend.
Are there any nodes that are known to be good for relaying transactions to the pools, and thus preventing a race attack from being successful?

If a limited number of nodes end up on a "recommended" list, will the demand for connecting to those nodes cause problems?

Yes, I suppose that could be a problem.

It would be recommended to connect directly to most of the major pools. This way one doesn't need to rely on any other nodes to relay the informations.
However, you should note that the conflicting transaction could already be pre-mined, rendering such precautions useless.

Right, the pre-mined (Finney) attack is a different threat model.  The race attack can be carried out by anyone and because the merchant doesn't know about failed attempts, it can be repeated by the thief until successful.  So the chances of a Finney attack occurring are much lower than the chances of a race attack.

The -connect= is for a single address, so there would only be one connection.  The would either require choosing a single pool to connect to or, to a well connected node that has connections to each of the pools.

@StephenGornick you could use -addnode= multiple times.

Do I run the standard wallet-qt exe with command line switches. Would it work on MacOSX or Windows? Or is linux better?

@makerofthings7 It works on the standard BitcoinQT client, and probably a few others. It should work under Windows, MacOS and Linux just the same.

One possible way to deal with this is to set up a second bitcoind on a separate server, which is well connected to the network (i.e. not behind NAT or something strange like that) whose sole purpose is to listen to the network and take connections from your first bitcoind.

BlockChain.info now provides a list of hub nodes.  While there is no guarantee they will relay your transactions, connecting to several will likely ensure your transactions are propagated to many peers quickly.

Also, no idea if any of these are well connected, but they are nodes ranked in order of uptime:

http://bitcoin.sipa.be/seeds.txt


text:
Will MtGox accept a poor quality ID photo?
An exchange I use (Mt. Gox) wants me to send a color scan of my ID.  The only camera I have access to is a grainy camera on my feature phone.  I don't know the camera resolution but it is not very high.
The ID is readable but doesn't fill even half the image.  If I try to get closer, the image is too out of focus.
Will this image be accepted or will my account end up getting locked ("under review") until I send in a scan with a better photo?

I don't know the answer to your question, but do you have a webcam?  That may be able to take reasonable quality photos.

@ChrisMoore Figured out another option -- a friend with a better phone.

No, it will not. The information on the scanned image must be very clear and show a clear photograph.
It is best to scan the ID using a quality scanner. Even a picture taken on a smartphone and filtered with a "scanning" program was insufficient for their requirements.
Source: I lazily tried everything, getting rejected each time, then finally going and scanning the ID.

side-note: with Bitcoin-Central I just took a picture with my smartphone and they accepted it, but it was an (relatively) high-quality phone camera.


text:
What is the fee charged by MtGox to receive a wire transfer in AUD?
I know my bank (HSBC) charges me $20 AUD to make a wire transfer. But how much is charged by MtGox to receive this wire transfer on say $1000 AUD?
I'm tossing up between cryptoxchange and MtGox - MyGox has better prices to buy bitcoins in AUD, but I have to know how much it will cost to send them my money. I can deposit $1000 AUS in cryptoxchange with no fees.

Are you withdrawing from Mt. Gox or depositing?  It isn't really clear.

Well, I just transferred $1000 AUD and received $987.38, which seems to correspond with a 1000 Yen receiving fee. Transfer was made mid morning Friday via HSBC and I had the funds by COB Tuesday, but apparently there was some delay because my account was not verified so they couldn't release the funds. Support was very helpful in sorting that out, but they really should mention on their website you need to be verified to deposit funds via wire.
I just noticed that they now have a local bank account (Technocash) to deposit in Australia, but it charges 3.95%. Given that HSBC charges $20 AUD to make a wire transfer, and MtGox's local bank charges 1000 Yen ($12) that works out to be about 3.2% on my transfer, so for anything less than $810 AUD it would be cheaper to do the direct bank deposit via Technocash.

From the International Wire Transfers - Deposits section of MtGox's FAQ:

Our bank charges a receiving fee of 1,000 Yen.  You can send wires in
  any currency to our bank in Japan. Funds sent in non-USD will either
  be added to your wallet in that currency if you have one, or converted
  to USD with a 2.5% exchange fee. Any fee charged by your bank or an
  intermediate bank will be deducted.
If you plan to invest more than 50000 USD or equivalent on the long
  term in bitcoins, we need to know about you. In this case please use
  our verification system to get your account verified first. Submission
  of forged documents will result in declaration to the appropriate
  authorities.
Not following the instructions written below can result in your funds
  being lost, or handed over to the local authorities while pending
  investigation.
Also note that International deposits lower than 75 USD (or
  equivalent) typically result in only a small amount of funds being
  deposited into the receiving account or may be rejected because the
  amount of fees went over the amount of sent funds. This is due to
  intermediaries and banking fees.

Google tells me that 1000JPY is worth about 12AUD.
There is a mention of another method "Technocash" having issues, which likely means it's no longer available. It also mentions that AurumXChange will soon accept Australian bank deposits (no mention of withdrawals, but you could hope!).

I think you have mistakenly quoted the fee for a withdrawl, because the "Funding Options" page says: "Funds sent in non-USD will either be added to your wallet in that currency if you have one, or converted to USD with a 2.5% exchange fee. Any fee charged by your bank or an intermediate bank will be deducted.  Our SMBC bank charges a 1,000 Yen receiving fee."

@deltanine, sorry, I misinterpreted the question initially, as this bit "to receive this wire transfer" made it sound like you were receiving funds. Re-reading it, it says the opposite. Hopefully my answer pointed you to the right place anyway!


text:
Bitcoin Research
I have recently been assigned to advise a student on a senior thesis in math.  She has taken linear algebra, introductory real analysis, basic cryptography, and abstract algebra.  Her interest is in cryptography.  And she has a love of Bitcoin.  The point of a senior thesis is to get a student to teach themselves a subject and learn to find and read mathematical papers.  Original work that could be published would be nice, but is often untenable.
My question is whether anyone knows of any research that is/has being/been done in cryptography related to Bitcoin.  Thanks.

Similar question: Are there scientific studies related to the Bitcoin technology?. Maybe even a duplicate, though I'm not sure the other one is up to date. Perhaps people can add more recent information to that one.

Cross posted here for those who are interested: http://crypto.stackexchange.com/questions/3726/bitcoin-research

Here's the Research article on the Bitcoin wiki:

http://en.bitcoin.it/wiki/Research

You might find some of the authors in the list have related research that is not directly related to Bitcoin so is absent from that list.


text:
Bitcoin charity fraud - is it illegal?
So we're all aware of services like CoinAd, but what if someone took advantage of that? Imagine if someone had a video game on facebook or something and had people fill out a CAPTCHA before they could play... couldn't someone really just ajax a separate, custom server that curl'd coinAd, kept the session alive, passed the image generated by google to the user, have them fill it out, then pass the answer back to coinAd, and inserting their own BTC address? Couldn't someone decieve people into giving them a BTC charity?
I know it's "limited" to one address per hour per user or whatever, but if you played it smart, you could have thousands of addresses and make thousands of users with thousands of email addresses. You could even shard the servers around the world so that you won't have one ip address. Heck, I bet you could even put it on the user's own computer in an  with display:none!
Although coinad's rate is only .00005 BTC (~1/1000th of $0.01), but if you get 20,000 users on your facebook game, you'd make $100.
What I'm saying is, is it illegal to take advantage of this (technically speaking) give-away? ;)

It might be worth adding a locality to this question, if you're interested in a particular locality. After all, it's probably legal in some places and not others.

If you were smart enough to set up the system you describe, you'd have far easier ways to earn $100!
Such activity would show up in statistics as a significant drop in ad clicks or similar measurements. If the operator of the site is canny, they could start to make regular (even automated) changes to the site design to make it tougher to parse. It's a cat and mouse game I guess in a similar way to malware and anti-malware software.
If you dropped the profitability of the site too much, I'm sure it would close.
This question discusses the legality of fraud relating to Bitcoin:
Is performing a 51% attack / double spend on Bitcoin illegal?

I think we'd call that fraud and CoinAd would put the kibosh on that as soon as they found out it was being done.

There was a definition of fraud posted to Bitcoin.SE a while back, and it was quite general. I couldn't find it with a quick search unfortunately. Besides, I'm sure it differs by country, and international law gets murky and hard to enforce. Whether or not it this counts as fraud I don't know, but it would seem a pretty nasty thing to do to a business that has done no wrong. I stand by my comment that there are easier (and better) ways to earn $100!

Definitely, I agree haha, I just wanted to keep everyone on their toes. Thanks for the great answer :)


text:
I have a problem syncing my wallet
i'm still running the qt 0.63, wich has a problem syncing to the network. It gains about 1% a day.. bitcoins that have been sent my way cannot yet be seen in my account. is it safe to make a back-up now and uninstall the qt client, and then reinstalling a newer version or a different wallet? Can i just copy-paste my wallet.dat after that?
thanks

You should be able to just upgrade your bitcoin-qt.  Your wallet.dat file can just stay in place.  Back it up just to be safe but you shouldn't have any need to use the backup just because you are upgrading.

It is likely to be because your computer is slow validating the blockchain but not necessarily. This answer may help you.
No need to move your wallet.dat, just safely exit bitcoin-qt and make a backup copy. Then upgrade your Bitcoin Core install. Always use the official release version which you can get from www.bitcoin.org. It will automatically upgrade your wallet file if there are changes to that format also.


text:
Which program is suitable to server mining of Feathercoin?
I have web hosting virtualized Windows 2012 Server without GPU and with one core of Intel Xeon 5520.
I pay it anyway and I use about 10% CPU. I would like to use the rest for CPU mining feathercoin.
Gui miner does not work, probably because the server has no Graphic Adapter (I use remote desktop). It crash on start.
Which program should I use for such mining?


text:
What gives bitcoins value? A simple explanation please
I hear that miners solve math problems to secure Bitcoins...  what kinds of problems? And why are the solutions worth "money"?
Also, what does an exchange get in return for real money when they get Bitcoins? I am talking tangible assets?
I understand that fiat money is not backed by anything tangible, so obviously the exchange is a promise of stated value for a Bitcoin's vaule.  I just don't understand what gives the Bitcoin it's value?
I suppose that with a national currency I understand that there is an agreement to value all things tangible by the labor rate it takes to produce it.  Thereby tying value from one item to another making the currency valid. Obviously Bitcoin works the same way.  So what is the labor that is making the currency value standardized to Bitcoin it's self.
I hope those questions make sense. Please let me know.  Thanks.

Related: http://bitcoin.stackexchange.com/questions/224/what-factors-affect-the-value-of-a-bitcoin?rq=1

Related: Where do bitcoins come from and what gives them their value?

Neither fiat currencies nor Bitcoin is backed by anything tangible - you cannot through any mechanism expect to be able to exchange them for a fixed quantity of any other good or combination of goods.
Neither is there any agreement associated with fiat or Bitcoin to value anything by the amount of labour it took to produce it.
Bitcoin and fiat currencies have a lot in common when it comes to what gives them value; properties that make them suitable as medium exchange, (possibly) store of value and (possibly) unit of accounts: durability, low transaction costs, irreversibility (for fiat only some transactions are irreversible, mainly cash), security, and scarcity.
The 'math problems' you refer to are hash computations. They don't have value outside of the Bitcoin network, but they add value to the currency because they make the Bitcoin system secure against double-spending (someone trying to spend the same money more than once). Just like when you accept fiat currency notes you do not get any value specifically from the watermarks, but the application of watermarks add security to the currency - and therefore makes it more valuable to people.
Neither Bitcoin nor fiat currencies would have any value, however, were it not for a coordination of people who agree to use them as money. For fiat currencies this coordination happens through a government monopoly on issuing such money, and insistence that taxes are paid using the monopoly fiat currency.
For bitcoin this coordination has happened because it was a first mover in the technological innovation that it represents: bringing about lower transaction fees (irrespective of geographical distance), faster payments, irreversibility, pseudonomity, and very importantly a lack of reliance on any central party (it is distributed).
Bitcoin will only be able to sustain this coordination (and its value) if there are significant network effects, which makes it difficult for new entrants in the cryptocurrency market to gain market share, and there is no technological innovation which makes Bitcoin inferior to a new payment mechanism.
The initial and current value of Bitcoin, starting from zero as it did, is based on people recognising the above features and also that the scarcity of the coin could make it appreciate in value because supply is limited and at some stage effectivley stops growing.

Bitcoins have a value simply because of supply and demand. Mathematical laws created a fixed supply of Bitcoins, and people's expectation that they can use them as a means of exchange or store of value created demand.
Exchanges simply bring buyers and sellers together. Buyers wish to purchase Bitcoins, either as a means of exchange or as a store of value. Sellers are willing to sell Bitcoins because they'd rather have fiat currency, either because that's what they need to pay bills or because they expect Bitcoins to drop in value. At some price, buyers and sellers will meet.
Miners secure the Bitcoin block chain by providing the proof of work that Bitcoin uses to verify Bitcoin transactions. They receive a Bitcoin reward for doing this because that's how Bitcoin was designed.
Bitcoins have value because they are scarce and can easily by transferred over long distances. They also have value because there's a reasonable expectation that they'll be usable as a means of exchange and as a store of value. There really is no other requirement for a currency. Anything scarce, durable, divisible and fungible can be used as a currency if people agree to use it that way, and many people have agreed to use Bitcoins that way.

David's answer explains nicely why people consider Bitcoins valuable, but I don't think it addresses all your questions directly.
Bitcoin's value doesn't originate from people willing to pay for the hashes performed by mining. That would be like saying that gold has value because people value drilling in the ground.
It has value because of its utility, not because of its origin. The mining payout scheme is just how Bitcoins are (initially) distributed.


text:
How to use command line flags in Linux?
I'm using bitcoin-qt(0.8.0) on ubuntu studio (12.04.2), and suffered a power failure while loading. Now I receive the "failed to load block" error message.
This happened to someone else, and the answer he was given which solved his problem was to run it from the command line and use the -reindex flag.
I'm hopeful this might work for me as well, but I don't know how to go about it.
I know how to access "terminal", but I don't really mess with it. I'm at a loss.
Any help would be greatly appreciated!

Try this:

Close Bitcoin.
Press Alt + F2
Type bitcoin-qt -reindex
Press enter.

This answer even made me laugh :)

@StevenRoose Huh? Why?

Just because how simple it is, but still non-trivial :p
Btw, I changed the question title to be more clear.


text:
How do APIs like Blockchain.info and BlockExplorer work?
When I query an address using either service, are they simply querying the latest block that has been mined?
Or do those services have nodes in the network that collect data that has not yet been codified in a block?
Sometimes, my queries return the "correct" information nearly instantly, but sometimes it takes a long time for the most recent transactions to be reflected- wondering why that's the case. Seems strange that I could send btc, have a query on the receive address return the up-to-date balance within 3 seconds, and then immediately make another transaction and make a successful query, whereas at other times the API query won't reflect the latest transaction for a long time. Insights appreciated.

Public Bitcoin inspection services like BlockExplorer and BlockChain.info work almost exactly like the regular Bitcoin client.
They operate as a node in the Bitcoin network and so, like all other nodes, store the complete block chain. This block chain consists of all transactions ever made and are used to calculate the balance of an address.
Just like other nodes, they as well receive transactions from other nodes and will likely also show them before they are confirmed (of course explicitly indicating they aren't). The time it takes for a transaction to reach all nodes varies. Not all nodes know about all other nodes so it can take a few seconds for a transaction to get noticed by all nodes.
Depending on whether or not the service caches information, some time can be between the arrival of the transaction of the node and the time it shows up on the website. You will probably understand that when you query 10 times shortly after each other for the same data, it is very costly to do the same lookup in the block chain index multiple times. Because of this, I think it's likely that most of these clients do some sort of caching, but not too extensive. Probably a minute maximum, because they know that in Bitcoin transaction processing, much can happen in that time.
Besides that, the loading time can also depend on the load of the server. When multiple users try to access the balance for their address at the same time, some of them will likely have to wait.


text:
Is tighting inputs to specific outputs possible within one transaction?
For convenience purposes let's say I need to make these payments (and let's pretend that tx fees do not exist):

Address A: 1 BTC
Address B: 2 BTC
Address C: 3 BTC

My balance is 6 BTC that consists of these spendable inputs:

Tx1: 0.5 BTC
Tx2: 0.5 BTC
Tx3: 0.5 BTC
Tx4: 4.5 BTC

It's easy now to create a raw tx using createrawtransaction and since the inputs' sum matches the outputs' sum (and we pretend there are no tx fees whatsoever) everything will work as expected.
But what if I must (for business purposes) use specific inputs for each output?
An example would be:

Address A will be paid inputs: Tx1 and Tx3
Address B and Address C will be paid by inputs: Tx2 and Tx4

These will be batch payments and I plan to be sending batches of 20-30 logical payments per raw tx, so I would like to avoid breaking down the raw tx into small, atomic (per-logical-payments) transactions.
Is that even possible with raw transactions?

As far as I know, if you want to tie certain inputs to certain outputs, that's a matter for your internal accounting.  The Bitcoin protocol doesn't provide any way to make such an association, short of breaking them into multiple transactions.

Thanks @NateEldredge. So basically you say that if there is only one combinations where distinct inputs fit to the corresponding outputs then this is possible, buthow do we know how the coin selection works in this case?

In Bitcoin, it is not possible to associate specific inputs with specific outputs within one transaction.
This means that you are required to create multiple transactions to achieve what you want to do.
This wiki article and this forum post explain how to do create raw transactions for spending specific outputs.

In a bitcoin transaction, the coins from the inputs are added together into a pool, and then sent to the outputs. There isn't a notion of particular coins; just a total number of coins.


text:
How do I get my encrypted private key converted?
"addr":              "typicalbitcoinaddress",
"compressed":        true,
"encrypted_privkey": "this  is my private key that is 96 characters long",
"label":             "Wallet",
"pubkey":            "Public key of the address",
"salt":              "random small set of digits not sure what this is"

I dont know how to convert my private key that is under "encrypted_privkey" (96 characters long) (Not sure what it is encrypted to) to a Wallet Import Format like to import it into blockchain.info....Any help on the process to convert this to a WIF private key would be greatly appreciated, I am unable to provide the private key of course...

Blockchain has import instructions on their import page for wallet.dat files near the bottom. Assuming you are using Bitcoin-QT, which you should have mentioned.

Yeah, it would help if you mentioned what wallet you are using.


text:
How could you initiate a new Exchange Market?
Supposing I want to "initiate" an exchange market. Is the only way to get some bitcoins IN  to buy them from another exchange and trying to sell them? (or to wait for people starting trading, correct?)
Thanks

Surely the name "Exchange" suggests a place for changing one form of currency for another. e.g. exchanging US dollars for pounds sterling, Bitcoins for Euros etc. Therefore Yes, like any shop,  you must get some stock in order to trade

As the name "exchange" suggests, an exchange does not buy or sell bitcoins themselves. They merely function as an exchange between sellers and buyers.
So what you will have to do is wait for people to start trading. But people won't come by themselves, so you will have to give users a reason to come to you instead of an existing exchange. It may also help to trade on your own site in the beginning both to not completely rely on new user's transactions and to generate some trade volume.

Well an exchange isn't usually selling directly, it's simply hooking up buyers and sellers. A large enough exchange can do this pretty quickly and easily. So the biggest barrier is getting bootstrapped which might mean starting with a volume to sell and buy yourself. And providing incentives over the already-existing exchanges for both parties.


text:
Where can I find a graph of average transactions per block over time?
Is there a website where I can view the size of the memory pool over time, or the average number of transactions per block?

For the size of the memory pool you are referring to the number of transactions the node knows of but not yet included in a block?


text:
Could bitcoin be destroyed if an entity cornered the market?
I know the US Government is opposed to competing currencies.  It seems that it would be a rather simple solution for them to destroy Bitcoin before it grows too much by merely buying all the currency, which would be rather feasible given today's market cap of $80M (as of July 2012), and never selling.

The chosen answer is wrong, because it doesn't consider the option of destruction through volatility, and thus it doesn't consider that manipulators can fool the speculators on timing.

Let's assume they actually did manage to buy all the coins. What's stopping us from starting Bitcoin2, the exact same protocol under a different name?

The exchange rate at any one point in time is determined by supply and demand at the markets.
The value of all bitcoins at the current market price is $80 million because the current market price is the point where the demand for bitcoins at a certain price meets the supply.  You are describing introducing an artificial demand that would indeed cause incredible rallies in the exchange rate and cause tremendous exchange rate volatility
While some people cash out in a rally, others are buying.  This government taking this action would be enriching speculators mostly -- certainly not the best use of the governed's tax dollars.
Even in a hypothetical scenario where this party you describe were somehow able to acquire 9.49 of the 9.5 million coins issued today, there are just about 11 million more that will be issued, so this entity would need to continue buying.  But even with just 10,000 coins remember that Bitcoin is divisible down to a Satoshi (0.0000001 BTC).  That 10K BTC gives 1,000,000,000,000 Satoshi trading units.  That allows plenty enough time to get an update out that provides for even greater divisibility.
Of course, the risk then is that those 9.49 million coins are not destroyed but find their way back onto the market, creating again huge volatility and price inflation.  That can technically be done, yes.
I don't think too many speculators are losing even a wink of sleep over it though.

Speculators would be elated if that happened. It'd be really easy to make money in that situation.

Whoa dude! Hold your bravado! You assume that the attacker would simply buy. They have another option which is to raise the volatility of the currency to make it unattractive to hold and use. See my answer. Can you market-time the manipulators in the real markets? Of course not!

@theymos, And really easy to lose money too ;)

The process of attempting to buy all of the currency would drive the price up arbitrarily high.
For example, I have some bitcoins and plan to sell 10% of what I have left every time the price doubles. I will never run out of bitcoins to sell, no matter how high the price, so it is impossible for anybody to buy them all.
The US government could try to destroy Bitcoin by repeatedly buying and driving up the price, then selling to make the price crash. Eventually they should get tired of paying transaction fees to the exchanges (or run out of money to pay the exchange fees). And, of course, if their buying and selling is at all predictable everybody else will just repeatedly sell high and buy low.

That is an interesting strategy for selling! Thank you. I made a chart, but formatting was tough. At any rate, Gavin will make 1.8-fold more USD each doubling period.

But what do you do if the manipulators cause the volatility to never reach a doubling, rather a downward grind of debilitating volatility with adoption going into a tailspin? At some point, you sell too at less than your fancied speculation.

It's impossible to tell the difference between bitcoins that have been lost forever and bitcoins that are being hoarded, so the US government would never be able to tell when they had bought all available bitcoins.  And they're going to have to offer a lot more than the current market prices for some people to sell.

Yes but if their goal was to reduce the bit coin supply to the point where it was not useful for much of anything they don't have to get every last bitcoin. If they got enough so that the remaining supply was small enough that commerce shuts down then they will probably have met their goals. Of course this could be almost any government no just the USA, $80million USD is not that much money to a government or bank

It is unrealistic to believe that such a purchase would survive

Executive scrutiny
Congressional scrutiny
Judicial scrutiny

More than likely, a call for Congressional action would come not from the legislative branch, but from the executive or judicial branch. Alternatively, pressure may come from lobbying entities.
Moreover, a Congressperson who authors or support a bill outlawing digital currencies would likely face severe pressure from voters who use them. Remember that laws a written very vaguely, so digital currencies may include in-game currencies like WoW and Diablo gold, Linden dollars, Eve ISK, etc.
Lastly, can you image the headlines?

Rep. Smith introduces bill to outlaw in-game currencies
Obama administration authorizes $100M purchase of entire on-line currency system
Obama spends $300M to disable fledgling Internet currency used by fewer than 5,000 people

You forgot black budgets. See my answer.

As stated before: if the government or who ever tries to buy all existing BTC this would lead to enormous volatility. But what are the consequences(?): Increasing price volatility would harm the possibility of storing value. But as prices for goods and services which are offered in exchange of BTC are flexible, BTC could still be used as a mean of exchange.

The powers that be could theoretically accomplish horrendous volatility of the value of Bitcoins by running the price up and then selling. Thus rendering Bitcoin unsuitable as currency.
If speculators think they can game this by market-timing the manipulations better than an insider such as JP Morgan, I suggest they prove in the futures markets for gold or silver to receive their reality-check spanking.
As documented by Catherine Austin Fitts former Managing Director and Member of the Board of Directors of the Wall Street investment bank, Dillon, Read & Co., Inc.; Assistant Secretary of Housing/Federal Housing Commissioner at HUD in the first Bush Administration; and President and Founder of Hamilton Securities Group, Inc. . . .
. . . TPTB have access to at least $4 trillion "black budget" off-balance sheet funds that need no public oversight to be used.
And it probably wouldn't require any where near a majority share of the coins to create debilitating volatility. Remember when it fell from $17 to 1 cent briefly because of one account hacked and sold.

Can you define acronyms the first time you use them in your answers? I had to google TPTB to figure out what the heck you were talking about.

welcome to the internet, gavin :)

welcome to Stack Exchange, hermeister and shelby--the place people are clicking on in their search results to find out those answers.  let's save them a step.

TPTB: "The Powers That Be". I, too, had to search for it. Too bad some people think it not rude to use acronym and imply everybody else should understand it.

There are many exchanges (this reason is good enough by itself) and most exchanges "must" follow some kind of an AML policy so they can get bank accounts opened quickly, safely, ... Just because of that most of exchanges refuse to work with governments, agencies since they know there could problems. Also person with lot of money usually "must" be identified by the exchange.

It is unrealistic to assume that one entity such as the US Government would actually care enough about Bitcoin to drive it to the ground. Hypothetically, yes, one could destabilize it. But the developers would likely add preventative measures to stop this from happening.

What preventative measure can stop someone from buying and selling to create volatility? That doesn't make any sense to me. The only counter-measure I can think of is to have the debasement self-adjust, but in Bitcoin the debasement is on a fixed schedule to stop at 21 million coins. I would downvote this answer if I had enough rep power.

If Bitcoin came to challenge the USD the government would be very much interested in its demise in order to protect the billions they create through inflation.


text:
Procedure for calculating taint?
I'd like to understand taint analysis quantitatively. Blockchain.info offers a service that will calculate taint, but I've found no good explanation for how taint is calculated.
The best (and only) explanation I've found so far appears in the paper Anonymity of Bitcoin Transactions:

The taint analysis works by calculating the percentage of the
  amount of bitcoins that might origin from another address,
  thus revealing connections in the transaction graph. In the
  simplified example in Figure 4, A1 and A3 would have a taint of 75% and A2 a taint of 25%. However, it can only detect direct connections in the graph and does not consider any
  context information.

This explanation is confusing. Taint is measured between two pseudonyms (addresses). It's not a property of a particular pseudonym. The paper seems to be missing the part that says the taint scores for A1, A2, and A3 are relative to A4. If so, then the scores make sense.
However, it's not clear what would happen for more complex chains of ownership. For example, imagine another pseudonym, A5 that pays A1 5 BTC. What would be the taint score between A5 and A4?
I've seen this, but it doesn't discuss how to compute a taint score between two pseudonyms.
What I'd like to see is the outline of a step-by-step procedure for calculating taint, as done by Blockchain.info. If I had to guess, here's how the procedure would look:

Find two pseudonyms, S (source) and T (target). Funds flow from S to T.
Using the block chain, find a chain of ownership Ci from each coin controlled by S to T.
For each chain of ownership Ci, find the lowest valued coin transfer mi.
Sum all mi, giving m.
Sum the value of all outputs received through T, giving s.
Taint is defined as m/s.

Using this procedure would give a taint score of 50% between A5 and A4 (2 / 4).
Is this correct?

I haven't gotten around to going to the source,  but I too find the example confusing. If I had to come up with a metric,  I'd measure taint as an attribute of UTXO, not addresses. I.e. 1BTC claimed stolen, therefore 100% tainted getting spent together with 0.5 clean BTC would result in a UTXO with taint of 2/3.

Ah sorry, I started reading the paper and realized that it uses taint in a different context than the Bitcoin community usually does. Usually "taint" refers to the amount of coins traceable to a known theft, this paper however is using it as a term to measure address correlation. That's why I was confused and will remove the tainted-coins tag in a moment.

I think I have an answer. It's not clear if this is how blockchain.info does it, but I'm not sure it matters, either.
Taint is very similar to the everyday experience of diluting a liquid.
Imagine starting with three glasses. One glass contains orange juice. The second contains water. The third is empty.
Pouring some or all of the orange juice into the empty glass doesn't dilute it at all. However, pouring a 1:1 mixture of orange juice and water into the empty glass dilutes the orange juice.
We can define a metric called dilution factor. Dilution factor equals the final volume contained in the formerly empty glass divided by the volume of orange juice added. The dilution factor for a 1:1 mixture is therefore 2 (2 / 1). If no dilution takes place, then the dilution factor is 1. More generally:
dilution factor = V2 / V1 if V2 > V1
dilution factor = 1 if V2 <= V1
We can add another empty glass and dilute again. For example, we can take half of the diluted orange juice and dilute it with an equal volume of water. This gives a second dilution factor of 2.
The overall dilution factor equals the cumulative product of the dilution factor at each step. In this case, it is 4 (2 x 2).
Now imagine that monetary value is like a liquid, and an output is like a container. We can do dilution analysis just like we did with orange juice.
In this case, the dilution factor tells us how diluted the value of an output in a chain of ownership has become relative to a downstream output. Provided that the limits of this metric are clear, it can be useful.
The liquid being diluted is "taint". In this model, "taint" would be the multiplicative inverse of dilution factor. A dilution factor of 2 implies a taint of 50% (1/2).
Returning to the question posed above, given this chain of ownership, find the dilution factor between A5 and A4:
A5(5 BTC)->A1(2 BTC)->A3(3 BTC)->A4(4 BTC)
The dilution factors are, from left to right: 1; 3/2; 4/3. Multiplying them together gives 1 x 3/2 x 4/3, or 2. This is a 50% taint, the same answer as I got above.
However, the answer postulated in my original question is wrong in that it doesn't account for serial dilution. Consider this chain of ownership:
A5(1 BTC)->A1(5 BTC)->A3(3 BTC)->A4(4 BTC)
The serial dilution factor is 5 x 1 x 4/3, or 20/3.
Simply dividing the final value by the minimum value upstream gives a dilution factor between A5 and A4 of 4/1.


text:
How can using Bitcoin with Tor improve privacy?
As far as I understand Bitcoin, user privacy and anonymity are hard to guarantee in the presence of multi-input transactions and shadow addresses. Some sites suggest using Tor to hide the source of a new user introducing an unconfirmed transaction into the network, but does this really help? It may hide the physical address from which the address was generated, but it doesn't help prevent linkability between Bitcoin addresses and single users due to the two aforementioned properties, right?

Using Tor doesn't help to prevent someone from linking addresses and guessing that they might be owned by the same person.
It may help to keep someone from finding out who that owner actually is, where they live, etc.

Right @Nate,
Bitcoin transactions are validated by bitcoin peers. There in no way to do send/receive money without shoe to the whole world. But if no one knows that such wallet belongs to you, your transactions stays anonymous. Tor helps to maintain your transactions anonymous.
If you want to use Bitcoin over Tor proxy, follow this article.

There is an updated setup guide for running Bitcoin Core and Tor on Bitcoin.SE right here.


text:
Varying mempool statistics across multiple sources
I understand that each node is different and will have a different mempool (and size). But in looking at https://tradeblock.com/bitcoin/ it is showing a mempool size of around 20MB (http://bitcointicker.co/networkstats/ shows similar mempool size of 20MB). But https://blockchain.info/charts/mempool-size is showing a mempool of 103MB (https://jochen-hoenicke.de/queue/#24h showing similar 100+ MB size). Neither site explains how they configure their mempool. tradeblock.com and blockchain.info are referenced from many sources - do you know what can explain this big difference in how they report mempool size? thanks

Nodes have different policy about accepting transactions to mempool. Some nodes accept all transactions, others accept only transactions with a fee greater than 10 satoshi per byte for example.
Nodes have different policy about droping transaction from mempool. Some nodes drop one-day-old transactions, other nodes drop three-days-old transactions.
Nodes have different policy - this is the answer.


text:
Why do my futures keep getting cancelled using BitcoinJ?
I am trying to write an application that queries bitcoin nodes for the results of a particular transaction. I am attempting to imitate FetchTransactions.java, one of the examples that comes with bitcoinj.
Sometimes my requests go through to the peers, no problem. Other times, they get cancelled. I figured maybe I was stressing some of the peers, so I decided to loop through all the peers I could find and ask. Now I can't seem to get any peers to answer my request. I think I'm missing some basic network etiquette or something. Here's the relevant code:
        NetworkParameters params = getNetworkParameters();
        PeerGroup peerGroup = getPeerGroup();
        peerGroup.startAndWait();
        peerGroup.addPeerDiscovery(new DnsDiscovery(params));
        peerGroup.setMaxConnections(100);

        peerGroup.waitForPeers(3).get();
        Peer peer;
        int i = 0;
        while (true)
        {
            try
            {
                while (i >= peerGroup.numConnectedPeers())
                {
                    peerGroup.waitForPeers(peerGroup.numConnectedPeers() + 10);
                    System.out.println("Waiting to connect to more peers.");
                }

                System.out.println("Attempting to connect to peer " + i);
                System.out.println("numConnectedPeers = " + peerGroup.numConnectedPeers());
                peer = peerGroup.getConnectedPeers().get(i++);

                Sha256Hash txHash = new Sha256Hash(hash);
                ListenableFuture<Transaction> future = peer.getPeerMempoolTransaction(txHash);
                System.out.println("Waiting for node to send us the requested transaction: " + txHash);
                tx = future.get();
                System.out.println(tx);
                peerGroup.stopAndWait();
                break;
            }
            catch (CancellationException e)
            {
                System.out.println("Task was cancelled. Trying again.");
            }

        }

Also, when it hits 75 peers and tries to wait for more peers, it returns immediately. I don't understand why it doesn't wait until it gets more peers before returning, since the source code of PeerGroup.java indicates it should only return when it has as many peers as specified in the argument.
Also it has never worked on the testnet: requests for a transaction have always been cancelled on the testnet.
Anyways, any tips in the right direction would be much appreciated.

Ok figured it out. The memory pool only holds transactions that have not been included in a block. The reason it stops working after a few minutes is the transaction is included in a block, and therefore the peer does not have it in its memory pool.
It seems I will need a different approach.


text:
Is it possible to build mining reward pooling directly into Bitcoin?
Mining pools were formed quite early in Bitcoin's history. Since then, they have not been considered ideal because of more and more centralization creeping in. But it seemed the community has learned to accept and live with this necessary evil.
So in this context, has it ever been discussed to build mining reward pooling into the actual Bitcoin protocol, making centrally administrated mining pools obsolete?
A technical implementation could look like this:
A miner that finds a hash with difficulty n still solves a block around every 10 minutes, but also miners who find a hash with difficulty n-1, n-2, or even n-3 can submit their solution[1], however without triggering a solution for the current block.
The mining reward could then be distributed in one transaction proportionally to all miners who have found hashes.
Are there any altcoins that implement this or a similar concept already?
I'm aware there's P2Pool, but it uses a separate blockchain, which causes latency issues that make it unable to compete with centralized mining pools.

[1] Submit their solution how and to where? This would be a technical detail to discuss later. They could be opening a transaction channel or the like.

Are you familiar with the "Uncle Blocks" of Ethereum?

I believe this would be very difficult to implement in Bitcoin.  Not only because of technical feasibility, but also because gaining concensus would be difficult.

The mining reward could then be distributed in one transaction
  proportionally to all miners who have found hashes.

This appears to be making modifications to the coinbase transaction, which would almost certainly require a hard fork.  Also, what is preventing the miner who created the block at full difficulty from simply cutting out all the miners who submitted blocks at n-1, n-2, etc...?  How would other network participants know that other miners have been cut out, so know they should reject the block?  That trust model would have to be solved.
If a hard fork is necessary, you would need concensus from the mining pools...which are the entities your are attempting to disrupt.  Even though their hashing power comes from individual participants in the pools, it would be hard to push something through that isn't necessarily in their best interest.
Finally, what would prevent individual miners from banding together to "game" the new protocol, thus re-creating mining pools on top of this mining pool protocol?  Building pools into the protocol won't stop people from pooling together...it will just give them different goals for them to pool resources for.

One simple reason why this is not feasible: you would need to store in the next block the block+hash of all the miners claiming to have resolved some difficulty level in order to reward them. Simply not possible.


text:
Can I use Ripple to keep track of loans to friends?
Say I already lent EUR 100.00 to a friend, in cash, quite informally. Can I use Ripple to keep track of it? If so, how?
I guess I need to get him sign up at ripple.com (or get another Ripple client).
Then I grant him > EUR 100.00 trust.
Then he can just "send me" EUR 100.00.
Is that all? Or is there anything more to it? Does my friend need trust from anybody else in Ripple in order to be able to do that?

Yes, Ripple is created precisely for such purposes. Both you and your friends need some small balance in ripple first to "activate" your accounts. After that, you need to grant your friend trust for at least the amount he will owe you, and then he needs to send you money. After that, you will see a net positive amount on your account, and they will see a net negative amount.
If you don't trust your friend with the money but you are connected through a web of trust, there is still a possibility of them sending you money. The transaction will appear from them, but your balance will show some other friend owes you money, and in part your borrower will owe them money.

I would love to do it, problem is I still don't trust Ripple enough. Has anyone used it for real world purposes / nontrivial amounts yet?

@ripper234 Well, you don't need to trust ripple too much if you only trust people you trust (it's confusing to talk about it, ain't it?), and just use it as some ledger of how much someone owes you and so forth. If you don't try turning it into a web of trust where your IOUs can shift easily, then you should be fine.

@ripper234: People are using it for real world purposes, but not in non-trivial amounts yet. You could use it for non-trivial amounts now so long as you double-check transactions and are prepared to switch to a backup system should something go wrong with Ripple.

ThePiachu and @DavidSchwartz, I don't want to enter my debts into both Ripple and a backup system, my txs are too complex as it is. So ... I'll wait for it to graduate out of alpha/beta.

Does "and then he needs to send you money" means sending some "virtual" money in Ripple? And what does happen then? After that, he still owes me the real EUR100, right? And if I use my new Ripple balance of EUR100 to pay soemone else (Charles), he'll owe the real EUR100 to Charles then, will he?

And a 2nd question: what if I grant the friend trust for EUR100 (which I have lent him), but after that he doesn't "send me this money". Will something go wrong? (In your answer, he does send me the money, after I grant him the trust. So, what if not?)

@imz--IvanZakharyaschev If he doesn't send you the virtual money in Ripple, then you can't track the debt this way through Ripple. If he does send you the IOUs, you can transfer the debt to other people. As long as your friend agrees that the debt is transferable, he should uphold the debt to anyone who has the IOUs. This is essentially how new money is created.

@ThePiachu Thank you for your answer! Essentially, the debt can be transeferred directly only to those who trust him, too, as far as I can understand. (Otherwise, if they don't trust him, why would they accept this debt as a payment?..) But indirectly by following a chain of trust such a payment can succeed even if the destination doesn't trust him, but trusts someone who trusts him, and so on, OK...

@imz--IvanZakharyaschev Yes, you can only receive the debt if you trust that person. The payment can also ripple through the system if someone is trading that debt for some other currency or if they enable rippling (which is essentially similar to trading for another currency). But otherwise yeah, your friend's debt becomes money - http://www.moneyasdebt.net/ .

@ThePiachu Thanks! (Funny: the site you linked to--although in English--features a typical Moscow underground carriage on the picture. The real interiors of the carriages: https://ru.wikipedia.org/wiki/81-717/714#.D0.92.D0.BD.D1.83.D1.82.D1.80.D0.B5.D0.BD.D0.BD.D1.8F.D1.8F_.D0.BF.D0.BB.D0.B0.D0.BD.D0.B8.D1.80.D0.BE.D0.B2.D0.BA.D0.B0)


text:
What's the simplest way to deposit BTC into US Banking account with minimal fees?
I've been looking through the bitcoin wiki and googling isn't providing any useful results. Basically I'm looking for some way to deposit my BTC into my US bank account. Is there any service that can do this without incurring massive processing fees or surcharges?
Essentially I'm looking for the following:

Simple to use. Should not have to jump through hoops like signing up for paypal account or go through intermediate exchange like mtgox USD etc.
Preferably has a direct deposit method similar to how you might get payed from a job.
No fee or extra surcharges or kept to a minimal. Many of the exchange services I've looked at has wire-transfers but the associated fee makes it simply prohibitive especially for small BTC to USD transactions.
Doesn't necessarily have to be instant or fast.

"I don't want to go through intermediate exchange like mtgox USD": So, who is going to give you the dollars? That is exactly what services like mtgox do. Your bank is not (yet?) going to do that.

@Thilo say I do use something like mtgox, how will the funds get to where it matters, which is my bank account? AFAIK, none of the services provide a way to enter a routing transit number or setup a direct deposit.

I thought you can have MtGox deposit to your account (possibly after some verification). I might be wrong. But if there is no way to get money out of services like MtGox I have to wonder how they succeed... Anyway, services like that are exactly what you asked for, but it could be that they provide a "bad service" at the moment.

How about replacing "without incurring any fees" to "with minimal fees"? An exchange service that doesn't any fees does not exist, and is not likely to exist in the future.

@Thilo: Of course you can withdraw USD from mtgox. But the available options for it aren't good for everyone (international wire has high fees for small transactions, Dwolla is only for US, etc.)

It's unclear what you are asking. Literally you seem to want to deposit actual bitcoins into your bank account. Of course you can't do that, since no bank currently accepts BTC accounts (BTC isn't even an official currency code yet, Bitcoin isn't even an official currency!). If instead you just wanted to convert bitcoins to dollars, and then deposit those dollars into your bank account, you have already been answered.

Are you saying you don't want an intermediary because of the time required to administer the transactions?
If so, then here's a solution for automating that.
MagicalTux from Mt. Gox was acknowledging the need for the API to support creation of a bitcoin address where any coins received at that address are immediately sold at market.  Also discussed was the need for an account to be able to specify that once daily the account's USD balance would be swept to Dwolla.
That combination will be among the least expensive methods for converting BTCs to USDs in an automated manner.
Today the closest you can get to that is to create a separate account on Mt. Gox with no bitcoins and then create a large market sell order.  Whenever coins are received and confirmed, they will automatically be sold at market because of the open sell order.  Moving the funds to Dwolla periodically remains a manual step though.

[...] I'm looking for some way to deposit my BTC into my US bank
  account. Is there any service that can do this [...] ?

In short, no.
Your US bank account holds US dollars, not Bitcoins.
You can sell your Bitcoins for US dollars, and deposit the US dollars into your US bank account, but you can't deposit Bitcoins into US dollar bank accounts.
Edit: I just found the Bit-Pay Deposit Card which claims to allow you to "Receive Bitcoins into your US Bank Account!"  So perhaps that's what you are looking for.  There's also a video about it.  Apparently "the fees are 2.99% which includes the currency exchange and the next-day ACH".

It's unclear from their home page, but in the FAQ Bit-Pay explains it doesn't actually deposit bitcoins into your bank account, of course, how could they do that?

If you want it simple, I think what you need is https://get-bitcoin.com/. You can sell bitcoins directly to them, and they have a variety of US-centric payment options.
If you want to minimize fees, I don't think you can beat selling on Mt. gox, withdrawing to Dwolla, and transferring to your account with ACH.
You can also try looking at bitcoin-otc or the bitcointalk forum for people wishing to buy bitcoins from you with a payment method that is good for you.


text:
Can old wallets redeem segwit outputs it receives? If so how?
There's some conflicting information out there on whether this is true or not. I'm looking for a technical answer to this in the hopes of clearing up future potential confusion over the matter.
The main question is: Can old non-upgraded non-segwit aware wallets redeem a segwit output it receives?
Segwit output is defined as an outpoint having a P2WPKH or P2WSH structure as outline in bip141 in its scriptPub section.
As I understand it, when an old wallet receives a segwit transaction meant for it(assume tx is already mined in a block), it will see 0 <20-byte hash>(assuming P2WPKH) in the scriptPub from this segwit transaction. Interpreting this under non-segwit rules, old wallets will see this as anyone_can_spend -- the top of the script stack always evaluates to truthy regardless of what's provided in the scriptSig in the redeeming transaction.
The only way for the wallet to use/redeem this segwit output is to construct a transaction as outline in the bip. That is, it constructs the transaction specifying prev_txid and index as normal, an empty scriptSig and a witness program + witness hash. But a non-segwit aware wallet won't know how to construct the last part of this. Without that part, segwit validating nodes and miners will have to reject this transaction.
So from this, it naturally follows that old non-segwit wallets should not be able to spend segwit transactions.
Note, this question is not about:

old wallets sending non-segwit inputs -> to a segwit output.
segwit wallets sending segwit inputs -> to a non-segwit output.

So from this, it naturally follows that old non-segwit wallets should not be able to spend segwit transactions.

That is correct. A wallet that does not know anything about segwit will be unable to construct a valid transaction input that spends a segwit output.
However, the premise of the question

when an old wallet receives a segwit transaction meant for it

doesn't make sense either. If a wallet does not know about segwit, it will never construct a segwit address to give out. So, by definition, there cannot be any segwit output meant for it.
It is always the receiver who decides what exact outputs to accept money on - and this is what gets encoded into an address.


text:
Why does the Satoshi client not use blocking synchronous communication with peers?
Why does the Satoshi client not use blocking synchronous communication with peers? I think that is mush simpler than the current asynchronous scheme.
I mean after a node sends out a request, it waits for the response in a blocking manner, with a timeout deadline. After the response has arrived, it starts to send the next request. Doesn't this way have better control of communication context?

If all clients in a network used blocking synchronous communications, then a single bad client could potentially bring down the entire network.
In a distributed untrusted network, asynchronous communications are required for robustness and reliability.

Cannot a timeout deadline of blocking wait prevent that? Currently, an attacker can occupy a connect with ping/pong command for a long time anyway.

The Bitcoin network could not scale to accommodate higher traffic if that was the case.

It's an inferior design for a lot of reasons. The main one is this -- say you need to do a little bit of work for each of 60 peers. Do you really want to have to do 60 context switches to do it? Also, you'd be letting the scheduler decide what work you do, which is never a good thing, especially for a portable, cross-platform program.


text:
Is there a "MtGox Live" alternative which supports Euro?
MtGox Live is a quite pretty live market depth graph.
For some reason it only shows prices in USD.
Does anyone know an equally good alternative which supports EUR instead?

MtGox Live now supports 17 currencies. Use this URL with the desired country code:
http://mtgoxlive.com/orders?currency=YOUR_DESIRED_CURRENCY_CODE

  BTC  // Bitcoin
  USD  // USA
  EUR  // Euro
  JPY  // Japan
  CAD  // Canada
  GBP  // Great Britain
  CHF  // Switzerland
  RUB  // Russia
  AUD  // Australia
  SEK  // Swedish
  DKK  // Denmark
  HKD  // Hong Kong
  PLN  // Poland
  CNY  // China
  SGD  // Singapore
  THB  // Thailand
  NZD  // New Zealand

Here is the Euro chart: http://mtgoxlive.com/orders?currency=EUR

There should be a menu for that. When I'm on the EUR MtGox homepage, the MtGox Live link sends me to the USD version

One of the most popular semi-live market watches is: http://bitcoinwatch.com/ if you click on mtgox, there is a panel on the left which will allow you to select EUR
There is also a #bitcoin-market channel on freenode IRC dedicated to real-time market updates.

I knew that, it's quite detailed but has an embarrassing interface, confused and full of bugs. Maybe there's something better out there.

I prefer http://bitcoinity.org/markets - but alas EUR is not an option

This should not be just a comment:
http://bitcoinity.org/markets

True. BTW, since that comment was written, it also supports EUR now.

I've tried several of them, found the following to best suit my likings:
http://bitcoin.clarkmoody.com/

Live streamed data
Multi-Currency support
Depth of market table is great

Would be great if it weren't bugged... every time I accidentally use the mouse wheel on the graph, it gets mad and I have to refresh the page...


text:
Can a bitcoin transaction be reversed from the receiving end?
I know this seems like a duplicate of the question 'Can a bitcoin transaction be reversed?' but none of the answers there were explicit enough as they all seemed to assume reversal triggered from the sending side.
I guess a secondary part of my question is 'What would happen if a merchant just sent the funds back to any one of the input addresses that was used in the original transaction?' Would the  money be effectively returned to my control?

When sending coins, the original Bitcoin client picks the more "secure" coins, i.e. the oldest ones that can be used as input for the transaction. Internally, it doesn't care about accounts, although it does of course keep track of each account's balance.
As a result, sending coins back to an input address will only guarantee they will go back to the original wallet, not necessarily the original account, let alone the original person. In many situations wallets are shared between different persons, e.g. in web services (online wallets, mining pools, etc.), so the difference is crucial.
Thus if you're designing an application and you want to allow refund, you should absolutely not rely on the sending address in your application design. Instead, allow people to give an email, a refund address, etc. at some point.
We're talking about the original Bitcoin client here. Although this behaviour is largely justified for security reasons, some current or future clients may not mix addresses between accounts and still be compliant at protocol level.

+1 for pointing out that sending coins back to an address that (for example) MtGox used to facilitate a withdrawal is very counter-productive. They'll receive it, but they'll have no idea what they are supposed to do with it. It will probably end up being credited to a random account holder (or lost).

Not clear. So if I return money to the address where I receive it the money will be lost?

(Just adding a somewhat important remark to davux answer)
It seems that free scripting for transactions will be soon activated in the real network, like it is currently in the test network.
With scripts, it's possible to issue transactions that will go through completely different mechanisms than the simple one based on those standard bitcoin addresses we all know. In some cases, the receiving side might be unable to even find any addresses where to send the money back.
A “standard” bitcoin address should be considered as one way to receive some bitcoins (and to spend those). It should not be considered as the universal way to receive (or send) them.

Regarding the "second part" of your question, if you sent from your own wallet then yes, you would receive the funds "returned".
There is at least one service that only works like this (using the input address as a return address): http://www.bitlotto.com  The reason they do this is so that all "tickets" are visible in the block chain, as well as all payouts -- which are only sent to an input address from the winning ticket.  This effectively eliminates the chance that the lottery operator is paying out properly and that the operator has no potential to gain advantage over any other participant.
The downside to doing this is that if someone uses an ewallet, and then becomes the winner -- the lottery winnings get sent to some other user of that ewallet service.

Oh, that is fun. It is like finding a winning lotto ticket on the sidewalk that someone dropped.


text:
Where is Australia's second bitcoin ATM machine?
Last ABC1's 7:30 ran a balanced Bitcoin story.
http://www.abc.net.au/7.30/content/2013/s3926368.htm
In it they showed a Bitcoin ATM being use in Melbourne.
They also said "One way to buy Bitcoins is using Melbourne's first Bitcoin machine. It's one of just two nationwide".
I haven't been able to google up where the second machine is. Possible places mentioned online are Melbourne (different provider), Sydney and Nimbin.
Anyone know were this second AMT machine is?

I contacted the reporter, via Twitter.
They commented that "I believe it's in regional NSW, just checking for you".
During the research before asking the question I found one manufacture's blog post that said they had an order for Nimbin (Far North Coast).
The reporter has not yet got back to me with further information.

The first Bitcoin ATM is in Melbourne, the second is in Nimbin and there is another one being launched in Sydney tonight. I believe they are all made by Lamassu

Assuming that you're interested in locating a Bitcoin ATM in Oz, I have just learned (in early 2014) that one will be soon installed in Sydney at co-working place The Workbench, in Ultimo.
It's a pretty cool place too: http://theworkben.ch/

Blue bar on chapel st has one.
https://www.getbitcoin.com.au/bitcoin-news/melbournes-chapel-st-gets-new-bitcoin-atm


text:
Bitcoin-qt to input.io no confirmations
I sent 2.4 BTC from the vanilla bitcoin client to my input.io wallet.  The bitcoin-qt client didn't ask for any fees and sent instantly. In transaction details it shows 0/3 confirmation and no transmitting nodes. My input.io wallet does not show any unconfirmed balance.  It has been 2 hours. What happens next? Did I lose my bitcoin?
Status: 0/unconfirmed
Date: 8/4/13 13:06
To: input.io 1QGd7qen3Qj6mht7ikmbHiKsLYgF3cEuWN
Debit: -2.40129 BTC
Net amount: -2.40129 BTC
Transaction ID: 30600040f3bac94fa4fff1f990d36f15434d3e0074cb5c919dc63fb34f578ce9

Your transaction now has five confirmations.

https://blockchain.info/tx/30600040f3bac94fa4fff1f990d36f15434d3e0074cb5c919dc63fb34f578ce9