1781
|
Bitcoin / Technical Support / Re: How to get balance of whole wallet confirmed at least 1 (or 2) confirmations?
|
on: January 25, 2011, 02:19:43 PM
|
getinfo and getbalance (with no arguments)... are a little complicated.
They include all 1 confirmation receive transactions, but (this is the complicated part) they also include 0-confirmation receives if they are self-sends (either the "change" from coins you just sent or all the coins if you sent to one of your own addresses).
In any case, I think they will do exactly what you want-- show you coins that have at least one confirmation or that you are certain you are able to spend (because they are your own 0-confirmation coins).
|
|
|
1782
|
Bitcoin / Development & Technical Discussion / Re: What has it got in its walletses?
|
on: January 25, 2011, 02:55:16 AM
|
I have a very old wallet, created by the first version of bitcoin. Recently I upgraded to a modern version. However, the wallet has no pool entries. I thought the upgrade would create 100 keypool entries?
It will create 100 keypool entries the first time you request a new address or if you turn on coin generation (the mining threads each ask the keypool for an address to create the coinbase transactions). I don't know what the story is with "wkey".
|
|
|
1785
|
Bitcoin / Technical Support / Re: Segfault on hardened Linux systems
|
on: January 24, 2011, 03:25:29 PM
|
What version of gcc are you using? After a little googling I found this thread about the same issue: CPUID returns information in eax, ebx, ecx, and edx. With -fPIC you have to push ebx onto the stack before calling cpuid and pop it afterward as Bin points out is what the patch to xen-unstable does.
The compiler used to generate the push/pop just fine for gcc-3.3. This is an issue specific to gcc-3.4. Unless somebody volunteers to fix/maintain this, I'm inclined to simply remove all of the "try to make the CPU miner go faster" optimizations from bitcoin. CPU mining is, for most people, a waste of electricity.
|
|
|
1786
|
Bitcoin / Development & Technical Discussion / Re: Bitcoin Addresses
|
on: January 24, 2011, 02:16:21 PM
|
There are: 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 possible bitcoin addresses. As ribuck says, that is a very big number. There are approximately: 133,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 .. atoms in the Earth, so even if you used just 100 atoms to store each bitcoin address, you'd run out of atoms before you were done generating addresses.
|
|
|
1787
|
Bitcoin / Bitcoin Discussion / Re: Bitcoin topic on Quora.com
|
on: January 23, 2011, 06:45:47 PM
|
From the Quora question: The attack sould last 1h, spending those 400 BTC for 80 times instead of just 1 You can't spend 400 BTC 80 times in 1 hour. If you control a majority of the generation you could spend them twice an an hour (assuming merchants require 6 confirmations). So you need to divide your expected profit per hour by 40, making your ROI very, very negative.
|
|
|
1788
|
Bitcoin / Bitcoin Discussion / Re: Bitcoin topic on Quora.com
|
on: January 23, 2011, 05:18:50 PM
|
Satoshi Nakamoto writes in his white paper that it is not needed to control all of the bitcoin connections, but just a majority of them. Am I missing something ?
You are confusing "control 50+% of generating power" with "control connections." Lets say you control 51% of the generating power. You can: Spend bitcoins once. Then wait for them to be confirmed by the rest of the network as many times as the merchant requires, while secretly working on another version of the block chain where you did NOT spend them. Your secret block chain should be longer than the network's, since you control 51% of the generating power. So you announce your secret block chain, and instead of sending those coins to a merchant you include a transaction where you send them to yourself. YEAH! you just ripped off the merchant! Wahoo! You cannot rip off two merchants with the same bitcoins-- one or the other of the transactions will be seen as valid. And you cannot "unspend" the transaction to the merchant-- if you don't spend it SOMEWHERE, the merchant's bitcoin node will re-announce it to the network and all the other nodes will consider those bitcoins "spent, just waiting to be included in the next generated block." If you run the numbers again with the realistic double-spend scenario, you'll see crime doesn't pay. There is no way you can rent enough hashing power to commit a profitable double-spend attack. If you can steal the hashing power (maybe you're a bot farmer), then if you run the numbers you'll find it is more profitable to just generate blocks and sell the bitcoins rather than try to somehow get stuff trying to double-spend.
|
|
|
1789
|
Bitcoin / Bitcoin Discussion / Re: Bitcoin topic on Quora.com
|
on: January 23, 2011, 03:18:11 PM
|
Your calculations are garbage. You cannot spend coins 80 times in an hour. The attacker has the power to rewrite a history that doesn't include him spending the coins, that is all. He can't simultaneously convince 80 people that they have the same coins.
FreeMoney is absolutely right. The only way to get 80 people to accept the same 400 bitcoins would be to control all of their bitcoin connections and feed them different versions of the block chain. And THAT will be impossible, because the people you're trying to rip off (merchants selling stuff) are exactly the people with long-running, well-connected bitcoin nodes.
|
|
|
1790
|
Bitcoin / Technical Support / Re: Significance of port 8333?
|
on: January 23, 2011, 02:47:19 PM
|
I have Bitcoin (GUI version) running (and mining) on two machines, but can obviously only forward port 8333 to one of those. What implications does this have for the machine without incoming connections?
It will have only 8 (outgoing) connections. With fewer connections, it will notice new blocks a tiny bit more slowly than the other machine, and blocks it finds will propagate to the rest of the network slightly more slowly than the other machine. So it will spend a teeny-tiny bit more time working on an out-of-date block chain, and will be a teeny-tiny bit more likely to lose "announce a new block" races. But I bet the effects are so small you'd never notice them. Will it be able to "find" coins while mining? Will it be able to receive coins by transactions (more precisely: will received coins be displayed without my intervention)? Will the answers be any different for "bitcoind"?
Yes and yes and no.
|
|
|
1793
|
Economy / Economics / Re: Bitcoin's immunity to government action
|
on: January 22, 2011, 08:54:01 PM
|
Zimbabwe perhaps, having recently abandoned the Zimbabwe Dollar?
"Bitcoin, the New Zimbabwe Dollar" would be TERRIBLE marketing. How about a nice, respectable country that is just tired of using somebody else's currency? If the value of the dollar keeps falling, there may be a lot of those in the next 20 years.
|
|
|
1794
|
Bitcoin / Development & Technical Discussion / [RFC] Trusted build process
|
on: January 22, 2011, 04:50:33 PM
|
It is time to build and test a new version of bitcoin.
In the past, Satoshi built the Windows and Linux releases, Laszlo built the Mac releases, and we trusted them not to put malware in them (or we compiled ourself from source).
Satoshi is busy, and even if he wasn't he shouldn't be spending his time doing a job that a lot of the rest of us are capable of doing. So we need a new process.
Ideally, that process should be open and verifiably trustworthy. So I'd like to propose that we do the following:
1. For each platform, somebody creates a pristine, reproducible build environment, preferably as a virtual machine image that anybody can download, inspect, clone, run, etc.
Anybody should be able to reproduce the build environment by running or following a script (e.g. "Install Ubuntu X.Y.Z. apt-get the following versions of the following packages... etc").
2. A copy of that virtual machine is used to build/package the release.
3. Anybody can audit the process by re-creating the build environment and ensuring that they end up with "identical" executables. (where "identical" means compare the code in the executables, ignoring timestamps or other meta-info linkers put into executables -- are there already tools to do that, or do we need to roll our own?).
Feedback? Suggestions for improvement, or are there better ways of creating 'trusted builds' ?
|
|
|
1795
|
Bitcoin / Technical Support / Re: Runtime error with a specific wallet
|
on: January 22, 2011, 02:57:53 AM
|
Just to be sure: "removed all bitcoin data" means you removed and reinstalled bitcoin.exe ?
RE: wallet works fine on ubuntu: did you happen to run the wallet on another machine, then copy it back to your windows machine?
I don't know what to suggest-- I'm not a Windows person...
|
|
|
1796
|
Bitcoin / Technical Support / Re: bitcoin addresses
|
on: January 21, 2011, 10:21:42 PM
|
Satoshi once suggested that people could hack their client to generate and discard a bunch of random addresses until you got one that started with your initials or even your name if it was short.
I wrote a 'vanity bitcoin address' patch a while ago that lets you do exactly that: https://gist.github.com/614460I bet finding an address starting 1HAL... wouldn't take more than a few hours. If I recall, it took a day or so to find one with the string 'gavin' in it.
|
|
|
1797
|
Bitcoin / Technical Support / Re: bitcoin addresses
|
on: January 21, 2011, 04:57:20 PM
|
Because the first byte in a bitcoin address is a version number, and "version 0" is encoded as a "1" in the bitcoin address "base58 encoding" (because 0 is too easy to confuse with capital-o).
Trivia: -testnet addresses are version 111 (eleven is my favorite number), and begin with m or n (I haven't actually worked out whether they might begin with another letter, too...).
|
|
|
1798
|
Bitcoin / Bitcoin Discussion / Re: What if I stored child porn in the block chain?
|
on: January 21, 2011, 04:15:35 PM
|
Assume I publicly release and announce a program to decode the child porn from the block chain, such that everyone knows and can easily confirm that there's child porn in the block chain.
Publicly announce where? Publicly announce it here and one of the moderators will delete it faster than you can type 'rm'. Announce it on your own website and I'd encourage the legal authorities and/or your ISP to shut you down. Announce it in IRC chat or via a Freenet/TOR/i2p hidden service and I would personally encourage everybody to shun and /ignore you... and very few people will hear your announcement, anyway. I suppose you could try to get a journalist or government interested in causing trouble for bitcoin to publicly announce it. If you did, I would ask as loudly as I could why the journalist or government is complaining about innocent bitcoin users instead of trying to track you down and prosecute you.
|
|
|
1799
|
Bitcoin / Development & Technical Discussion / Re: RFC: Bitcoin Mixnet
|
on: January 21, 2011, 03:26:00 PM
|
So if I get a payment for 100 bitcoins composed of 20 smaller balances from 20 different accounts, and I trace those coins back and find that 1 week ago they all belonged to a single account, it's likely that the coins were passed through a "send to self" mix...
Yes, after posting I realized that self-mixing creates a mostly-self-connected sub-graph. You really need to start with multiple transactions in, ideally randomly occuring during the mixing process, and not spend all your bitcoins at once. Somebody who knows a lot more about graph theory, statistics, and probability than I do should chime in and tell me how I'm wrong or come up with a good metric for the ideal amount of mixing (I bet too much is just as bad as too little). Analyzing the connectedness of the existing bitcoin transaction graph might be a good place to start.
|
|
|
1800
|
Bitcoin / Development & Technical Discussion / Re: RFC: Bitcoin Mixnet
|
on: January 21, 2011, 03:03:41 AM
|
If the threat model is as zipslack describes, then I think a "send to self" mixnet would work.
Patch bitcoin so it generates, a random transaction every, oh, I dunno, eight hours or so, sending, oh, I dunno, 1/10'th or so of your bitcoins back to yourself via a newly generated address.
And to erase your trail in case your wallet gets seized, remove the source transactions and their (spent) keys from your wallet.
After a week of doing that you'll have put 21 extra transactions on the network and, on average, four extra transactions on the coins in your wallet (four because every send typically generates a change transaction). Do it constantly and you'll have an ever-churning wallet that aught to foil any attempt to connect incoming <-> outgoing transactions.
That is all assuming that you don't start with zero bitcoins in your wallet, get exactly 111.11 bitcoins from somebody, spend a couple weeks mixing them, and then pay exactly 111.11 bitcoins to somebody else. That transaction network graph is easy to analyze, and it would be insanely unlikely that you "just happened" to receive exactly those same 111.11-worth of coins that were given out.
Hmm, I wonder if the patch could detect a bad mix and warn you if you tried to do something stupid like that...
Somebody who knows a lot more about mixnets than I do can probably work out the math to know how much, and what type, of randomness to add to the eight hours and 1/10th to make statistical analysis as difficult as possible.
|
|
|
|