Hot answers tagged

48

I know this question is old, but I stumbled upon it looking how to teach myself how multisig addresses work, and I imagine others will to. So I’m going to try to explain the typical flow for creating, adding bitcoins to, and eventually spending a multisig address. This explanation is aimed at beginners, so please excuse my lack of brevity. First off, some ...


41

As I understand it, the "stealth address" is intended to address a very specific problem. If you wish to solicit payments from the public, say by posting a donation address on your website, then everyone can see on the block chain that all those payments went to you, and perhaps try to track how you spend them. With a stealth address, you ask payers to ...


36

If this happens, then Person B will be able to spend person A's bitcoins. However, there are only two ways this can happen: a) Person B generates the same keypair (private key) as person A or b) Person B generates a different keypair, which (public key) hashes to person A's address (a hash collision) Take a look at the specification for at bitcoin address:...


36

The wiki is correct, it is a technicality. Bitcoin "balances" are actually just unspent transaction outputs (UTXOs, from previous transactions) which you have the ability to spend. In most cases, that means knowing the private key corresponding to an address which the transaction was sent to. But the address itself doesn't have a balance, it just "locks up" ...


29

RIPEMD was used because it produces the shortest hashes whose uniqueness is still sufficiently assured. This allows Bitcoin addresses to be shorter. SHA256 is used as well because Bitcoin's use of a hash of a public key might create unique weaknesses due to unexpected interactions between RIPEMD and ECDSA (the public key signature algorithm). Interposing an ...


27

This is the way I see it. The total number of bitcoins that will ever be mined is 21 million. The smallest bitcoin unit is a satoshi (0.00000001 BTC). If we place all possible satoshis into a wallet of their own, we would get the maximum number of wallets that could have any balance to them (so the actual number of wallets with bitcoins is obviously less). ...


27

Addresses are public-key hashes of an asymmetric key pair An address represents a hash of a public key of an asymmetric key pair.¹ The owner of the key pair can use the private key to sign transactions or messages (for example in order to prove ownership). Only by using the correct private key a valid signature may be created, which then anyone can verify as ...


23

The theory It is assumed that in order to forge an ECDSA signature you need to compute the private key for a given public key first (this operation is known as the "discrete logarithm" (DL), and its hardness is the basis for ECDSA's security). In order to do so, you must actually have the public key. Once you have the public key, it is assumed that you ...


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


19

Yes, you could send bitcoins directly to the public key: in fact, both Pay-to-PubKey (P2PK) and Pay-to-PubKey-Hash (P2PKH) were introduced in the first Bitcoin release. IIRC, P2PK is still used for Coinbase transactions sometimes, today. P2PK transactions are slightly bigger for outputs but significantly smaller for inputs. One advantage of P2PKH is that ...


18

While the other answers are slightly true, there's another reason. Addresses which have been spent are inherently less secure than unspent addresses. This is because, when spending on an address, you reveal the public key to the address. This means that in order to steal those funds, you only need to find the private key, whereas normally you'd need to break ...


18

The wiki is correct! The source you linked must have assumed that the address with the smallest encoding has version_byte=00, data=20*00, checksum=94A00911 $ encodeBase58 00000000000000000000000000000000000000000094A00911 1111111111111111111114oLvT2 Which has length 27. This address is valid and has been used on the blockchain! But it is not the shortest ...


17

listaddressgroupings I used the command listaddressgroupings from the bitcoin-qt console window and it listed all my addresses. I then looked for one of my old send transactions here: https://blockchain.info/ And found the change address. It matches one of the addresses in the list.


17

This seems to be a few related questions in one, so I will try to rephrase them individually and answer each one separately. First it is important to understand that a wallet is just a place to keep bitcoin addresses, in the same way that a leather wallet is just a place to keep cards and notes. Bitcoin amounts are sent to an address, not to a wallet. A ...


17

The original reason why addresses were a public key hashes is something you'll need to ask Satoshi. My guess however is that it was just shorter and more convenient (note that compressed public keys weren't known at the time). When compressed public keys were discovered it was simply easier to stick to the existing address scheme (it didn't require any ...


16

If an address begin with "1" then it's a hash of a public key, "3" for a script hash, "5" for a private uncompressed key, etc You can find a list of all prefixes here: https://en.bitcoin.it/wiki/List_of_address_prefixes


16

This is now explained in the current Beta Guide: Zcash has two kinds of address: a z-addr is a fully private address that uses the zero-knowledge proving system to shield a transaction and balance privacy. A t-addr (aka "transparent address") is similar to a Bitcoin address. An address can be created using: zcash-cli getnewaddress # t-addr, or ...


16

Bitcoin addresses do not actually exist on the Bitcoin network. They are an abstraction for humans to be able to easily send money to each other. What Bitcoin actually uses are transaction outputs. A transaction creates outputs which consist of the value and the output script. When you send money to someone, you are spending from an Unspent Transaction ...


15

TL;DR: Just read the second paragraph of "Concrete Numbers". Wallet Recommendation: Electrum Doing this in Electrum is very simple. Just switch to the Send tab and then (in the menu) choose Tools → Pay to many. The "Pay to" field will become a text area and a popup will open, telling you how to send money to many addresses. Note that the unit of the ...


14

"Improbable" is an understatement. There are 2256 possible keys. In the entire universe, there are estimated to be "only" 2100 atoms. So the odds of someone else ending up with the exact same address/key as you is far, far less than the same atom, out of the entire universe, being randomly picked twice. If you are worried about an address collision, here ...


13

Private and public key correspond to a point on the secp256k1 curve. They have a one-to-one relationship. The address is derived from the public key by performing a ripemd160 hash after a sha256 hash on the public key. Multiple public keys hash to the same address, as the address space is only 160 bit, while the public key space is 256 bit. Since both ...


13

As @Murch correctly pointed out it is indeed possible to send bitcoin to either a public key or to the hash of a public key. The original motivation for using hashes of public keys was to shorten the size of the address. Public keys in their uncompressed form are 64 bytes long whereas RIPE-MD outputs 20 bytes (+5 bytes of checksum and version). ...


13

What happens to old bitcoin addresses? I've read that they never get destroyed, but do they get reassigned? Bitcoin addresses are not reused or reassigned to anybody under any circumstances. The story is I sent some bitcoin to an exchange using an address I've used with them before, but then found out that they had just retired/stopped using that address. ...


12

With the Bitcoin Core client, you can create a transaction sending coins to several addresses. On the "Send" tab, there is an "Add Recipient" button at the bottom of the screen; click it as many times as needed to add a form for each recipient. Enter all the addresses and the corresponding amounts to be sent, and you will get a single transaction sending ...


12

"CashAddr" is the name of the new Bitcoin Cash address format, which is heavily influenced by SegWit Bech32 format. It looks like this: bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a The format is consisting of a prefix (bitcoincash, bchtest or bchreg), a seperator (always :), and a 42 character payload. TIP: P2PKH starts with q while P2SH starts ...


12

Why base-58 instead of standard base-64 encoding? Don't want 0OIl characters that look the same in some fonts and could be used to create visually identical looking account numbers. A string with non-alphanumeric characters is not as easily accepted as an account number. E-mail usually won't line-break if there's no punctuation to break at. Double-clicking ...


11

Well, all transaction between Bitcoin addresses are stored forever, and so are fully traceable. What this means in your case is indeed that the credit card company can trace the coins you bought from them. However, there are a few things to note. Bitcoin addresses don't have a name assigned. F.e. Bitstamp will not know that the Bitcoins are coming from the ...


11

There is no danger in providing your Bitcoin address. For sites that use inputs.io, certainly you have to provide some way for them to know which account to credit. The security of that account depends on the strength of your password, and how much you trust inputs.io. A more fundamental problem with these faucets is that they are a complete waste of time. ...


11

This guy wanted to do the same thing. You can find a solution there. in short: get a Linux Box/VM with >=8GB RAM download blockparser compile it run "./parser allBalances -w 250000 >allBalances.txt" the parser run take around 2 minutes on my vSphere VM (2x3Ghz Xeon, 16GB of RAM) now you have a list of the top 250.000 adresses sorted by ...


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