26

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 ...


12

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 ...


11

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 ? Both ...


9

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 ...


7

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.


7

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 ...


7

No. 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 ...


5

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. ...


5

Electrum: 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. MultiBit In theory the bloom filter can be modified to include junk data to hide your addresses with loads of fake ...


5

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 ...


4

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 ...


4

Bitcoin Wallet for Android supports backing up your private keys to external storage (e.g. SD Card). Just select "Export/Import private keys" from the action bar overflow menu.


4

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 ...


4

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 ...


3

As I answered in another question, Electrum Bitcoin Wallet has the feature. I've confirmed that mac client worked. It seems that Android app has the same feature. https://electrum.org/#download Which clients offer a way to replace unconfirmed transactions?


3

Thomas Voegtlin , the developer of Electrum explains the reasoning in the first 10 minutes of this interview. I think he also posted same thing to Bitcoin dev mailing list some time ago. https://letstalkbitcoin.com/blog/post/epicenter-bitcoin-69-thomas-voegtlin-electrum-spv-wallets-and-bitcoin-aliases His main point against BIP39 is that it doesn't include ...


3

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 ...


3

Thin client is one that won't download whole blockchain locally on your device. They are useful for those that have small capacity hard-drive or using mobile devices.


3

Bandwidth - You need to receive an 80-byte header about every 10 minutes. In addition, if you want to spend, you will get SPV proofs that range about 500-1000 bytes per utxo. In other words, the bandwidth requirements are really tiny. Storage - Each block header is 80 bytes, as of this writing, there are less than 430,000 blocks, so 80 * 430,000 = 35.4 MB. ...


3

Most thin clients only download, check and keep the block headers. They do not download the transactions of blocks, so they cannot fully verify blocks. To learn about transactions they request information from full nodes which will send them a Merkle block for each transaction of interest. With the transaction and the Merkle block, the thin client can ...


3

If you don't want to run a node or use any 3rd party APIs you can use a library since you only want to accept payments. Use an extended public key from one of your wallets, and generate new addresses from the HD xpub using a library. When a user pays it will show up in your Phone/PC wallet. For example with Bitcore library it would be: var bitcore = ...


3

The thin client requests the Merkle branch from any full node that has the complete block available. It is requested by specifying the inventory type MSG_MERKLEBLOCK, usually in response to learning that the bloomfilter served to the same full node had some positive results. The response includes the block header, the corresponding transactions and the ...


3

One lightweight alternative that I use quite often when setting up a Lightning node is spruned. The following will get you up and running: Install some dependencies: apt-get install -y git python3 \ libleveldb-dev \ python3-dev \ git \ gcc \ g+...


3

Why would a thin node want to know information like this ? They quite possibly don't care about exactly which block the transaction was included in, but they most certainly care about knowing the transaction was included in the blockchain at all. It just so happens that there is no easy way to prove the latter without proving which block it is included in. ...


2

NBitcoin supports connection to the bitcoin network. NBitcoin Github : https://github.com/NicolasDorier/NBitcoin NBitcoin Nuget : https://www.nuget.org/packages/NBitcoin/ Intro : http://www.codeproject.com/Articles/768412/NBitcoin-The-most-complete-Bitcoin-port-Part-Crypt Stealth Payment, and BIP38 : http://www.codeproject.com/Articles/775226/NBitcoin-...


2

Have you guys see this recent GitHub? I too have been poking around looking for a standalone library. https://github.com/TangibleCryptography/BitSharper I have it downloaded, just trying to fix dependencies so I can compile. Looks promising.


2

There is a wallet called Electrum LTC. There are versions for Windows, Linux and OS X.


2

For a desktop computer, no, there's no lightweight client yet. There is talk of developing one, but it's not released yet. The LTC blockchain isn't as large as BTC's, so it's not as necessary on PCs. For Android, there's a Litecoin Wallet that is a lightweight client.


2

When MultiBit imports a private key also in the import file is the key birthdate I.e when it was first generated. From that date it looks up the most recent checkpoint (about every 2000 blocks) in a list of checkpoints it stores. Then it contacts a bitcoind and says 'give me all the blocks from block (say) 200,000. Here is the bloom filter I want you to ...


2

Note: July 2017, Electrum v2.8.3... the command is now: getmasterprivate() The password dialog box will automagically pop up ;)


Only top voted, non community-wiki answers of a minimum length are eligible