A thin client is a program which connects to the Bitcoin peer-to-peer (P2P) network but which doesn't fully validate transactions or blocks. That is, it's a client to the full nodes on the network.
Most thin clients use the Simplified Payment Validation (SPV) method to verify that confirmed transactions are part of a block. To do this, they connect to a ...
There is no substitute in terms of security and trust for running a full node.
There are different "lightweight client" concepts. Some of them are...
BIP37 (bloom filter):
[minus] With current used false-positive rates, peers may learn all wallet addresses
[minus] Usually done over an unencrypted channel (p2p 8333), ISPs, etc. learn also all your ...
Currently, Electrum is more secure than MultiBit as the MultiBit wallets are not encrypted. The next version of MultiBit, version 0.5.9, supports encrypted wallets. (Disclaimer: I am the lead MultiBit dev)
Security in Bitcoin is related to many things. Here are some of them:
1) Is the code open source and do the developers have a track record ?
I don't use MultiBit, but just checked its source code to see what the message you quoted means.
It turns out that the message is shown when the amount you're asking to send plus fees is less than the "available balance", which is defined as:
Balance that can be safely used to create new spends. This is all confirmed unspent outputs minus the ones spent ...
How will the lightning network handle lightweight clients?
Most steps during the payment process in an LN channel don't actually require full knowledge of the blockchain or even the unconfirmed (mempool) transactions. This is because the transactions involved deal with 2-of-2 multisig scripts, where both parties have to sign off on each transaction to make ...
With a deterministic wallet you create from an initial seed a sequence of bitcoin addresses. Imagine counting 1, 2, 3, 4, etc.
You can create as many addresses as you like, but not all of them will appear on the blockchain. For instance I might create one especially for you to give me 1,000,000 BTC. That is (alas!) probably not going to be used.
When you ...
At the moment the Electrum client is more secure as the wallets are password protected.
I am the lead developer on MultiBit and am working on wallet encryption but it will take me a few weeks yet. There are a number of changes to make.
One way to look at security is to identify the risks. For a bitcoin client there are at least :
1. Theft of private keys
1.1 Keys should be encrypted.
1.2 Keys should not available to servers.
1.3 Key generation should be done securely.
2. Loss of private keys
2.1 You should be able to backup your wallet or private keys.
3. Client ...
Speaking as one of developers on MultiBit, it is not currently implemented at the time of writing (Dec 2011) but there are serious development efforts to consolidate the wallet file format to suit all major Bitcoin clients.
Expect to see this functionality in Q1 2012.
I'll answer about "the Stratum model" - it has the potential to be very secure, for any practical purpose.
Consider these facts:
Both the client and server implementations will be open source.
The vision is to have multiple independent servers, run by various entities (including large, "semi trusted" entities such as major exchanges and pools).
The server ...
If you want to keep your private keys secret (on your phone, that is), I'd recommend
Bitcoin Wallet for Android
The app also does not imply any trust in single servers, as it manages the block chain on-device.
No. The whole point of a hash is that it's a one way function. You can't "decode" any of the header data from the block hash.
Moreover, the block height isn't even contained in the block header. You're supposed to calculate the block height by looking at the previous block hash in the header, which hopefully refers to a block whose height you already ...
The block hash is a hash of the block header... but even if you could reverse the hash function (which is impossible, or Bitcoin would be broken), you wouldn't know the height, as the height is not stored in the header.
The header does contain a hash of the transaction Merkle root... but even if you could reverse the hash functions in the transaction ...
MultiBit connects to (typically) four bitcoinds at random at start up. It then picks the best peer (using ping times, advertised blockchain height and the version of the peer to decide) and uses that as the download peer to get the block headers from.
It is thus using one peer to catch up the blockchain from where it previously knew about.
It listens to ...
I think multibit shines in its ability to handle multiple wallets, which is very important to maintain anonymity and information leakage through "change" transactions.
However, Electrum is currently a much more feature rich client that allows you to create wallets and spend bitcoins from an air-gapped computer with no internet connectivity. This is the ...
The quote in the documentation is a remnant from the http://code.google.com/p/bitcoin-wallet/ which the app was forked from.
At present it does not do any blockchain validation. I would like to have it so instead of downloading the full transactions from blockchain.info the client asks for the block hashes that contain transactions of interest. It can then ...
No protection, the server you are connected to knows every address you own and will own in the future. If you use Tor your IP address is hidden, but the addresses are still associated. Bloom filters are not in use for this client.
In theory the bloom filter can be modified to include junk data to hide your addresses with loads of fake ...
I don't think any such study exists, because it is very difficult to gain any concrete information about full nodes on the network. Because nodes can (and often are) run over proxies or TOR, their true IP addresses are often obscured. Furthermore, IP addresses aren't necessarily a good indicator of geographic location, and certainly not connection speed.
Multibit download stats
MultiBit is a thin-client based on the BitCoinJ library. It is written in Java and comes with installer packages for Mac, Windows and Linux. It is intended to be used by the general public who don't have a great deal of knowledge about Bitcoin and just want to send and receive payments in the simplest manner possible.
The project owner on the repo has the info on the number of downloads but unless that is shared by that person I don't think that information can be obtained.
There is a "traffic" statistic that can be seen on GitHub. For example:
BIP 14 ...
Electrum is not peer-to-peer (P2P). It only connects to electrum-specific servers to broadcast your transactions and to receive transactions. It's very similar to a web-wallet, however you're the one who holds the keys. So the Electrum client signs the transaction with your private key (that you hold), and then sends it to electrum-specific servers that take ...
Currently, there is one light client that works on a Mac - MultiBit. This client seems to be around for awhile and is open-source, so should be trustworthy.
There a couple wallets working on Android, like Bitcoin Wallet and Bitcoin. Personally, can't say much about trustworthiness of either, asides the fact that some high-reputation people on the forum seem ...
No wallet currently supports creating replaceable transactions conveniently. To work around this, you can manually create raw transactions from scratch.
The following are suggested instructions for use with bitcoin-cli.
To create a replaceable transaction. You can use "createrawtransaction" to manually add inputs and mark the "nsequence" field to a value ...
They can lie to you about the filters, yes. However due to the filters being deterministic you can query other nodes for the hashes of their filters to gauge relative correctness. You can also use a watchtower like service to give a trusted set of the filters in some cases.
The original design document includes an extension for committing to these filters ...
It's actually a good question. Let's take a look at what is happening. First, Electrum hashes your mnemonic to generate a seed. The seed indeed contains all the information necessary to generate the Master Public Key and the Master Secret Key, first being used to generate the sequence of public keys (adresses) and the second being used to derive a secret key ...
I consider the Blockchain.info Wallet Android App the best one on the market. It's no true client but an e-wallet but you can manage your own true wallets and addresses and your private keys are stored encrypted. The decryption happens on your phone.
You can certainly find statistics on what version of the protocol are currently most commonly reported, and since certain clients are/were more prevalent in those versions of the protocol you could potentially extrapolate some data from that, but to my knowledge, the actual client application name is not reported and so this data is not public information.