Hot answers tagged

30

This is not a thorough schooling on Tor and only shows how to configure it to work together with Bitcoin Core. Bitcoin Core includes Tor integration When Tor is correctly setup on your system, Bitcoin Core automatically identifies Tor and creates an anonymous service. Little configuration is required to be 'off the grid' and, just a tiny bit more to be ...


28

I couldn't find the results of the Coin Selection written out anywhere, and just finished piecing it together from the code. It works as David mentioned, but here are more details. The Coin Selection Algorithm logic to transfer Target amount If any of your UTXO² matches the Target¹ it will be used. If the "sum of all your UTXO smaller than the Target" ...


19

Yes, you can have two keys generate the same address. There are 2^160 possible addresses, and 2^256 possible private keys, so each address corresponds to roughly 2^(256-160)=2^96 private keys. Any of these will generate the same address and thus be able to spend the money owned by that address. Since 2^160 is so large, however, it would take a near-eternity ...


17

A wallet is the collection of data needed in order to receive and spend bitcoins. Usually this includes key-pairs (private key, public key and the address that may be inferred from the public key) and funds associated with each key-pair in the form of spendable outputs. The client on the other hand is the interface to the network. It handles all the ...


16

The payment protocol (see BIP 70-72) will support attaching messages to transactions. Note that these messages do not end up in the blockchain, which is the right way to do it, as they are private information between sender and receiver - no need to make the entire world replicate it.


14

(disclaimer: I work on Bitcoin Core) As Luca already mentioned, you have to distinguish wallet implementations and the fully verifying nodes on the network. Because of how Satoshi wrote his code (a node and a wallet in the same program), the two are often confused, but this is considered a bad idea now. They can perfectly function independently. The ...


13

Bitcoin Core will create a new wallet if it cannot find the wallet.dat in the Bitcoin Core folder. Close Bitcoin Core. If the wallet still has a balance, or addresses from the wallet were given out, back the old wallet.dat up: Move it to a different directory or rename it. If you are sure that it was never used, you may delete it instead. Restart Bitcoin ...


13

BIP 39 is not in Bitcoin Core largely for implementation reasons and because BIP 39 is not as secure as it could be. The structure of Bitcoin Core's wallet doesn't really allow for BIP 39 to be implemented. The current structure doesn't allow for 512 bit seeds as BIP 39 specifies, and adding it would require some significant changes to the wallet code. ...


12

You've answered your own question - "all you would need to be able to do is prove that that address belonged to you." To prove the address belongs to you you need the associated private key, which is secret and typically kept on your computer. If you lose your key you are no different than any other pretender to the address. This is why you must back up ...


12

Bitcoin is a so-called gossip network. They announce any new object to all of their peers (just the hash of the data). If the peer doesn't know the object yet, it asks for the full object. So it's certainly not a DHT or any smart organisation of data: every (full) node (eventually) learns about every block and transaction. They have to, there is no other way ...


11

This is not currently possible, as Bitcoin Core uses hardened BIP32 derivation to compute keys and addresses. This derivation scheme does not have a usable xpub that lets you derive the same keys publicly. For more background, an xpub (or extended public key) is a string defined by BIP32. Every xpub has a corresponding xprv (extended private key). From the ...


11

It looks like https://bitcoincore.org/ is the one run by the people who run the Github bitcoin/bitcoin project (the actual core developers) since it is the one listed on their Github page: https://github.com/bitcoin/bitcoin If you want the absolute best source for the client directly from Bitcoin Core devs then I would use that site or their Github page for ...


10

A bitcoin address is not like a credit card number. You can safely give your bitcoin address out publicly. What the email is asking for is something you should never give out publicly: the mnemonic that you use (e.g. if you use Electrum, they have a 12-word mnemonic code), from which you can calculate your private keys. With this, they can easily steal all ...


10

A while ago I created an extension for BitcoinLib in order to put bitcoind to the test. The setup was trivial: call getnewaddress() in the main network for ever My performance index was the number of addresses generated per second. It took off on an average of 35 addresses/sec. I left it running on a VM for a whole month. The rounded results were: Total ...


9

The bitcoin network does not know who owns which address. The concept of an address doesn't even exist at the protocol level - it's just an authentication layer on top of the scripting logic in transactions. And of course your own client does - because it has the private key for change addresses it generated itself. That's all that matters. When spending a ...


9

I'll try to give a list of the cases I know of. Whether these are considered bugs or implementation oddnesses is debatable, I guess. The genesis block's coinbase output cannot be spent. The OP_CHECKMULTISIG and OP_CHECKMULTISIGVERIFY operations pop one element too much from the stack (requiring an extra dummy push in the redeem script). The checksig ...


9

listunspent only displays information about addresses which are currently part of your wallet. Bitcoin Core does not maintain indexes of unspent outputs for addresses you do not own, and will simply return a blank set if you attempt to query for them.


9

Mining in a pool setting actually doesn't require all that much bandwidth. This is because you get block templates sent to you and that single template can be used by all 100 miners. A block template isn't very big, it's less than 1k and looks something like this: { "error": null, "result": { "coinbasetxn": { "data": "...


8

Creating a SatoshiDice-like game is rather easy. Below are the high level steps involved in making such a game. For each incoming transaction... Get the customer amount and payment address Call bitcoind getrawtransaction [The incoming transaction ID] 1. The 1 at the end will return the data in "verbose mode", which essentially the raw data in JSON ...


8

import all address using "importaddress" you can get balance using "listunspent", but you must sum all unspent amount per an address.


8

The majority needs to be trusted, but not weighted by their number of software instances, but by either computational power or economic power, depending on the context. The main technical assumption is that the majority of hashrate is not trying to attack the network. So an attacker would need to purchase and operate more hashrate than the rest of the ...


8

Depends. Generally you'd use multiple workers when you have multiple machines (ie graphics cards, mining rigs, or a farm of USB sticks). In some cases you could have them all combined and contributing to a single worker but usually this is not desirable because you'd want to keep track of how each device is performing. If for no other reason, that ...


8

You can use an SPV client such as MultiBit. This does not need the whole blockchain, and does not give up control of your wallet.


8

There are two Bitcoin softwares that should be differentiated: (i) the client software that everyone uses and (ii) the full Bitcoin node used by the miners. With regards to implementations, there are a variety of different clients. Just look at MultiBit, Electrum, Armory, Hive etc. Many are implemented using different programming languages and libraries. ...


7

No, the transactions are weaved into the blockchain by the p2p network of miners. That's what counts. Your address is only a keypair that proves you ownership. The concept of cold storage is exactly the idea to not connect to the internet so nobody can steal your coins (or rather, the key to access your wallet).


7

You can receive payments without being online. Your wallet's purpose is mainly to store your private keys which enable you to spend balances associated with corresponding addresses. The actual bitcoin balances are stored in the blockchain ("the public ledger") which is constantly being updated by the bitcoin network even when you are offline. When you open ...


7

As Arturo and Aussie already said, directory.io shows all Bitcoin addresses sorted by private key. Also, the author explains his intent on directory.io/faq. The first page has 11.302 Byte. Assuming they all are about the same size, 1TiB would just store 97,284,695 pages. Yet, there are ...


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


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