Difference between revisions of "Bitcoin address"

 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
A BSV address, or simply address, is an identifier of 26-35 alphanumeric characters, beginning with the number 1 that represents a possible destination for a bitcoin payment. Addresses can be generated at no cost by any user of Bitcoin. For example, using [[ElectrumSV|Electrum SV]], one can click "New Address" and be assigned an address. It is also possible to get a Bitcoin address using an account at an exchange or online wallet service.  
+
A Bitcoin address, or simply address, is an identifier of 26-35 alphanumeric characters, beginning with the number 1 that represents a public key hash to be used in a P2PKH output to create a [[Payments in Bitcoin|Bitcoin payment]].
 +
Bitcoin SV currently utilises an address format delineated with the prefix number 1. e.g: <code>1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2</code>.
  
Bitcoin SV currently utilizes one address format. This P2PKH format is delineated with the prefix number 1. e.g: <code>1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2</code>.
+
==Privacy concerns==
 +
If a Bitcoin user receives all of their payments into a single Bitcoin address, it becomes very easy for anyone to discover how much money they have and what they are doing with that money. To protect user privacy, [[Address reuse]] is discouraged. This idea is part of the original plan for user protections in Bitcoin and is mentioned in '''Section 10: Privacy''' of the [http://bitcoinsv.io/bitcoin.pdf Bitcoin Whitepaper] where it is stated:
  
==A Bitcoin address is a single-use token==
+
''As an additional [[Firewall (Identity)|firewall]], a new key pair should be used for each transaction to keep them from being linked to a common owner.''
Similar to e-mail addresses, one can send bitcoins to a person by sending bitcoins to an address belonging to the individual. However, unlike e-mail addresses, each individual is  expected to have many different Bitcoin addresses wherein a unique address should be used for each transaction. Most Bitcoin software and websites will help with this by generating a brand new address each time you create an invoice or payment request.  
 
  
==Addresses can be created offline==
+
==Offline creation==
Creating addresses can be done without an Internet connection and does not require any contact or registration with the BSV network. It is possible to create large batches of addresses offline using freely available software tools. Generating batches of addresses is useful in several scenarios, such as e-commerce websites where a unique pre-generated address is dispensed to each customer who chooses a "pay with Bitcoin" option. Newer "HD wallets" can generate a "master public key" token which can be used to allow untrusted systems (such as webservers) to generate an unlimited number of addresses without the ability to spend the bitcoins received.  
+
Creating addresses can be done without an internet connection and does not require any contact or registration with the Bitcoin network. It is possible to create large batches of addresses offline using freely available software tools. Generating batches of addresses is useful in several scenarios, such as e-commerce websites where a unique pre-generated address is dispensed to each customer who chooses a "pay with Bitcoin" option. Newer "HD wallets" can generate a "master public key" token which can be used to allow untrusted systems (such as webservers) to generate an unlimited number of addresses without having access to or being able to create the corresponding private keys.
  
 
==Addresses are often case sensitive and exact==
 
==Addresses are often case sensitive and exact==
Old-style Bitcoin addresses are case-sensitive. Bitcoin addresses should be copied and pasted using the computer's clipboard wherever possible. If you copy a BSV address by re-typing the address ‘character by character’, and each character is not transcribed exactly - including capitalization - the incorrect address will most likely be rejected by the Bitcoin SV wallet software. You will have to check your entry and try again.
+
Old-style Bitcoin addresses are case sensitive. Bitcoin addresses should be copied and pasted using the computer's clipboard wherever possible. If you copy a Bitcoin address by re-typing the address ‘character by character’, and each character is not transcribed exactly - including capitalisation - the incorrect address will most likely be rejected by the Bitcoin SV wallet software. You will have to check your entry and try again.  
 
 
The probability that a mistyped address is accepted as being valid is 1 in 2<sup>32</sup> , that is, approximately 1 in 4.29 billion. Importantly, a payee providing a payer with an incorrect address may will lead to the payee being unable to ever unlock the funds sent to said incorrect address.  
 
  
 +
Due to the presence of a 4 byte checksum, the probability that a mistyped address is accepted as being valid is 1 in 2<sup>32</sup> , that is, approximately 1 in 4.29 billion. Importantly, in this rare case, a payee providing a payer with an incorrect address, will lead to the payee being unable to ever unlock the funds sent to said incorrect address.
  
 
==Proving you receive with an address==
 
==Proving you receive with an address==
 
Most Bitcoin wallets have a function to "sign" a message, proving the entity receiving funds with an address has agreed to the message. This can be used to, for example, finalise a contract in a cryptographically provable way prior to making payment for it.  
 
Most Bitcoin wallets have a function to "sign" a message, proving the entity receiving funds with an address has agreed to the message. This can be used to, for example, finalise a contract in a cryptographically provable way prior to making payment for it.  
  
Some services will also piggy-back on this capability by dedicating a specific address for authentication only, in which case the address should never be used for actual Bitcoin transactions. When you login to or use their service, you will provide a signature proving you are the same person with the pre-negotiated address.
+
Some services will also piggy-back on this capability by dedicating a specific address for authentication only, in which case the address should never be used for actual Bitcoin transactions. When you log in to, or use their service, you will provide a signature proving you are the same person with the pre-negotiated address.  
 
 
It is important to note that these signatures only prove one receives with an address. Since Bitcoin transactions do not have a "from" address, you cannot prove you are the sender of funds.
 
 
 
Current standards for message signatures are only compatible with "version zero" bitcoin addresses (that begin with the number 1).  
 
  
 +
Current standards for message signatures are only compatible with "version zero" Bitcoin addresses (that begin with the number 1).
  
 
==Address validation==
 
==Address validation==
Line 34: Line 31:
  
 
Several of the characters inside a Bitcoin address are used as a checksum so that typographical errors can be automatically found and rejected. The checksum also allows Bitcoin software to confirm that a 33-character (or shorter) address is in fact valid and is not simply an address with a missing character.  
 
Several of the characters inside a Bitcoin address are used as a checksum so that typographical errors can be automatically found and rejected. The checksum also allows Bitcoin software to confirm that a 33-character (or shorter) address is in fact valid and is not simply an address with a missing character.  
 
  
 
==Testnet==
 
==Testnet==
Line 46: Line 42:
  
 
===Address balances===
 
===Address balances===
 +
It is important to note that addresses are not wallets nor accounts, and do not carry balances. Addresses only receive funds, the transfer of funds should not be seen at any time as the funds being sent ‘from’ an address. Unfortunately, services and software have contributed to this confusion by  displaying ‘bitcoins received with an address - bitcoins sent in random unrelated transactions’ as an "address balance". However, this “address balance” value is not meaningful; it does not imply that the recipient of the bitcoins sent to the address had spent them, nor that said recipient had retained the bitcoins received.
  
It is important to note that addresses are not wallets nor accounts, and do not carry balances. Addresses only receive funds, the transfer of funds should not be seen at any time as the funds being sent ‘from’ an address.. Unfortunately, services and software have contributed to this confusion by  displaying ‘bitcoins received with an address - bitcoins sent in random unrelated transactions’ as an "address balance". However, this “address balance” value is not meaningful; it does not imply that the recipient of the bitcoins sent to the address had spent them, nor that said recipient had retained the bitcoins received.
+
As an example of where such a misunderstanding can be problematic, are occasions where an individual would believe that their ‘address contains 3BSV’. They submit a transaction that spends 0.5BSV believing the ‘address now contained 2.5BSV’ when, in actuality, it contained zero. The absent 2.5BSV would have been transferred to a change address for which efforts had not been made to have this change address backed up, causing or risking a permanent loss of funds. This has happened on a few occasions to users of  paper wallets.
 
 
As an example of where such a misunderstanding can be problematic, are occasions where individual would believe that their ‘address contains 3BSV’. They submit a transaction that spends 0.5BSV believing the ‘address now contained 2.5BSV’ when, in actuality, it contained zero. The absent 2.5BSV would have been transferred to a change address for which efforts had not been made to have this change address backed up, causing or risking a permanent loss of funds. This has happened on a few occasions to users of  paper wallets.
 
  
 
==="From" addresses===
 
==="From" addresses===
Bitcoin SV transactions do not have any kind of origin-, source- or "from" address.  
+
Bitcoin SV transactions do not have any kind of origin-, source- or "from" address.
 
 
  
 
==See Also==
 
==See Also==
Line 60: Line 54:
 
* [[Wallets and key management]]
 
* [[Wallets and key management]]
 
* [[Base58Check encoding]]
 
* [[Base58Check encoding]]
 +
 +
==Attribution==
 +
This content is based on content sourced from https://en.bitcoin.it/wiki/Address under [https://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0]. Although it may have been extensively revised and updated, we acknowledge the original authors.

Latest revision as of 05:49, 21 April 2022

A Bitcoin address, or simply address, is an identifier of 26-35 alphanumeric characters, beginning with the number 1 that represents a public key hash to be used in a P2PKH output to create a Bitcoin payment. Bitcoin SV currently utilises an address format delineated with the prefix number 1. e.g: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2.

Privacy concerns

If a Bitcoin user receives all of their payments into a single Bitcoin address, it becomes very easy for anyone to discover how much money they have and what they are doing with that money. To protect user privacy, Address reuse is discouraged. This idea is part of the original plan for user protections in Bitcoin and is mentioned in Section 10: Privacy of the Bitcoin Whitepaper where it is stated:

As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner.

Offline creation

Creating addresses can be done without an internet connection and does not require any contact or registration with the Bitcoin network. It is possible to create large batches of addresses offline using freely available software tools. Generating batches of addresses is useful in several scenarios, such as e-commerce websites where a unique pre-generated address is dispensed to each customer who chooses a "pay with Bitcoin" option. Newer "HD wallets" can generate a "master public key" token which can be used to allow untrusted systems (such as webservers) to generate an unlimited number of addresses without having access to or being able to create the corresponding private keys.

Addresses are often case sensitive and exact

Old-style Bitcoin addresses are case sensitive. Bitcoin addresses should be copied and pasted using the computer's clipboard wherever possible. If you copy a Bitcoin address by re-typing the address ‘character by character’, and each character is not transcribed exactly - including capitalisation - the incorrect address will most likely be rejected by the Bitcoin SV wallet software. You will have to check your entry and try again.

Due to the presence of a 4 byte checksum, the probability that a mistyped address is accepted as being valid is 1 in 232 , that is, approximately 1 in 4.29 billion. Importantly, in this rare case, a payee providing a payer with an incorrect address, will lead to the payee being unable to ever unlock the funds sent to said incorrect address.

Proving you receive with an address

Most Bitcoin wallets have a function to "sign" a message, proving the entity receiving funds with an address has agreed to the message. This can be used to, for example, finalise a contract in a cryptographically provable way prior to making payment for it.

Some services will also piggy-back on this capability by dedicating a specific address for authentication only, in which case the address should never be used for actual Bitcoin transactions. When you log in to, or use their service, you will provide a signature proving you are the same person with the pre-negotiated address.

Current standards for message signatures are only compatible with "version zero" Bitcoin addresses (that begin with the number 1).

Address validation

If you would like to validate a Bitcoin address in an application, it is advisable to use a method from this thread rather than to just check for string length, allowed characters, or that the address starts with a 1. Validation may also be done using open source code available in various languages or with an online validating tool.

What's in an address

Most Bitcoin SV addresses are 34 characters. They consist of random digits and uppercase and lowercase letters, with the exception that the uppercase letter "O", uppercase letter "I", lowercase letter "l", and the number "0" are never used to prevent visual ambiguity.

Some Bitcoin SV addresses can be shorter than 34 characters (as few as 26) and still be valid. A significant percentage of Bitcoin addresses are only 33 characters, and some addresses may be even shorter. Every Bitcoin address stands for a number. These shorter addresses are valid simply because they stand for numbers that happen to start with zeroes, and when the zeroes are omitted, the encoded address gets shorter.

Several of the characters inside a Bitcoin address are used as a checksum so that typographical errors can be automatically found and rejected. The checksum also allows Bitcoin software to confirm that a 33-character (or shorter) address is in fact valid and is not simply an address with a missing character.

Testnet

Addresses on the Bitcoin SV Testnet are generated with a different address version, which results in a different prefix.

Misconceptions

Address reuse

Addresses are not intended to be used more than once, and doing so has numerous problems associated. See the dedicated article on address reuse for more details.

Address balances

It is important to note that addresses are not wallets nor accounts, and do not carry balances. Addresses only receive funds, the transfer of funds should not be seen at any time as the funds being sent ‘from’ an address. Unfortunately, services and software have contributed to this confusion by displaying ‘bitcoins received with an address - bitcoins sent in random unrelated transactions’ as an "address balance". However, this “address balance” value is not meaningful; it does not imply that the recipient of the bitcoins sent to the address had spent them, nor that said recipient had retained the bitcoins received.

As an example of where such a misunderstanding can be problematic, are occasions where an individual would believe that their ‘address contains 3BSV’. They submit a transaction that spends 0.5BSV believing the ‘address now contained 2.5BSV’ when, in actuality, it contained zero. The absent 2.5BSV would have been transferred to a change address for which efforts had not been made to have this change address backed up, causing or risking a permanent loss of funds. This has happened on a few occasions to users of paper wallets.

"From" addresses

Bitcoin SV transactions do not have any kind of origin-, source- or "from" address.

See Also

Attribution

This content is based on content sourced from https://en.bitcoin.it/wiki/Address under Creative Commons Attribution 3.0. Although it may have been extensively revised and updated, we acknowledge the original authors.