Where can I find my bitcoin address?
You can find your Bitcoin Cash (BCH) or Bitcoin (BTC) address for receiving payments into your Bitcoin.com wallet by tapping «Receive» on the bottom toolbar of your wallet. Your address will be the long string of numbers and letters directly below the QR code for that address.
If the person/company is sending you BCH then select one of your Bitcoin Cash (BCH) wallets. If they are to send you BTC, please make sure you provide them with an address from your Bitcoin (BTC) wallet.
You can switch between your BTC and BCH wallets at the bottom of the page by tapping/clicking on the wallet name and selecting the one you wish to receive bitcoins to.
All Bitcoin (BTC) addresses will start with the number «1» or «3«.
What can make things a little confusing sometimes, is that Bitcoin Cash (BCH) addresses can also start with either a «1» or «3» if being displayed in the old «legacy» format. (This is because BCH is a fork off the BTC chain)
To help cut down on confusion a new BCH address format was introduced called the «cash address» format (or cashaddr for short).
All BCH addresses using the new «cash address» format, will start with either the letter «q» or «p«
(If providing an address to receive Bitcoin Cash (BCH), we highly recommend that you provide a BCH in the «cash address» format. This is so that nobody will accidentally send BTC to your BCH address)
Sometimes you may see a BCH address starting with «C«, this is the «BitPay» BCH address format.
If you want to swap between the different BCH address formats, you can do so on the «Receive» screen by tapping/clicking on the «Address Type» option.
Please note that this address will change every time you receive a payment, however, all previously used addresses that have been generated by your Bitcoin.com wallet can continue to receive payments.
You must be careful not to send BCH to a BTC address or vice-versa, as recovery with all wallets is not possible.
If you are purchasing bitcoins for a specific reason, please confirm if you require BCH or BTC before proceeding with your purchase.
Since both Bitcoin Cash (BCH) and Bitcoin (BTC) are irreversible payment systems, there is no way to reverse a sent transaction, or for you to recover bitcoins from your end.
If someone is asking you to provide them with a «Testnet» address, then only provide it if you are to get the BTC for free. Testnet coins have no real-world value and are mainly only used by developers.
Please also be sure to read our Getting Started section to learn more about Bitcoin and how it works.
Источник
Адреса Bitcoin. Часть I, теория.
Адрес Bitcoin, или просто адрес, является идентификатором, содержащим около 33 алфавитно-цифровых символов, в текущей версии протокола начинается с символа 1 или 3, используя этот идентификатор вы можете совершать операции с Bitcoin. Адреса могут быть получены на безвозмездной основе любым пользователем Bitcoin. Например, с помощью программного обеспечения Bitcoin, нажав кнопку «Получить адрес».
Пример Bitcoin адреса: 1BQ9qza7fn9snSCyJQB3ZcN46biBtkt4ee
Как с помощью электронной почты вы можете отправить письмо, зная адрес получателя, также вы можете отправить BTC кому-либо, отправив их на соответствующий адрес Bitcoin. Только в отличие от электронной почты один человек может, и это поощряется, иметь неограниченное число различных адресов Bitcoin. Рекомендуется использовать уникальный адрес для каждой транзакции, если вы хотите добиться большей анонимности платежей. Большая часть программного обеспечения Bitcoin и тематические веб-ресурсы помогут с этим, путем создания нового адреса каждый раз при создании транзакции, или когда вы вручную запросите новый адрес.
При использовании веб-сайтов, которые принимают Bitcoin или держат у себя ваши сбережения в BTC, не удивляйтесь, что сайт будет создавать временные Bitcoin адреса для переводов. Временные адреса могут меняться при каждой новой транзакции, но старые адреса обычно остаются рабочими. При отправке Bitcoin на такие временные адреса, обычно их зачисляют на ваш счет в течение часа или двух (в зависимости от политики сайта).
Адреса вводятся точно и с учетом регистра символов. Как правило, Bitcoin адрес должен быть скопирован и вставлен с использованием буфера обмена компьютера где это возможно. Если приходится набирать адрес Bitcoin вручную, проверьте дополнительно, правильно ли введен адрес. Если он будет введен неправильно, то средства будут отправлены не на нужный счет, т.е. утеряны, или такая транзакция может быть отклонена, если адрес не будет соответствовать правилам. Некоторые из символов внутри адреса Bitcoin используются в качестве контрольной суммы, так что опечатки могут быть автоматически обнаружены и отклонены.
Некоторые Bitcoin адреса могут быть короче 33 символов. Значительная часть существующих адресов Bitcoin содержат только 32 символа — это совершенно нормально. Каждый адрес Bitcoin является чем-то вроде номера счета. Случается, что они начинаются с нуля, и когда нули опускаются, закодированный адрес становится короче.
Технически Bitcoin адрес представляет собой 160-битный хэш от открытого ключа ECDSA ключевой пары. Используя математические методы, вы можете «подписать» данные вашим секретным ключом, и любой, кто знает ваш публичный ключ, может удостовериться, что подпись действительна. Для получения более подробной информации, как работает криптографическая система с открытым ключом можно обратиться к соответствующей статье в Википедии . А если вам требуются глубокие знания о генерации адреса биткоин, то их можно почерпнуть в статье Википедии про спецификацию протокола Bitcoin.
Каждой новой сгенерированной паре ключей ставится в соответствие адрес для приема монет. Bitcoin адреса (открытые ключи) и соответствующие им закрытые ключи хранятся в файле wallet.dat. Этот файл принадлежит только вам и необходимо постоянно делать его резервные копии. Операция отправки BTC на определенный адрес Bitcoin подразумевает, что у получателя есть соответствующий закрытый ключ находящийся в его кошельке. Это означает, что если вы сгенерируете новый адрес и получите на него монеты, а затем восстановите кошелек из более раннего бэкапа, в котором адрес еще не был сгенерирован, то монеты, переданные на этот адрес будут потеряны. Если вы полностью потеряли ваш кошелек, то все монеты будут потеряны и не смогут быть восстановлены.
Bitcoin позволяет сгенерировать столько адресов, сколько вы пожелаете, И каждый из них будет полностью самостоятельными. Не существует главного адреса, поле «Your Bitcoin address» в пользовательском интерфейсе программы Bitcoin не имеет особого значения, это один из адресов, имеющихся в вашем кошельке. Приложение только для вашего удобства будет автоматически менять их время от времени для повышения вашей анонимности в системе. При этом все другие ваши адреса будут оставаться рабочими навсегда. Они перечислены в разделе «your receiving addresses». Каждый адрес занимает всего 500 байт и потому даже большое их число в кошельке, как правило, не является проблемой.
Bitcoin адрес содержит встроенный код проверки, так что совершенно невозможно отправить биткоины на некорректный адрес. Однако, если адрес правильно сформирован, но никто не владеет им (или владелец потерял wallet.dat), любые монеты, отправленные на этот адрес, будут потеряны навсегда.
Адрес может содержать все буквенно-цифровые символы латинского алфавита, кроме 0, O, I (i большое), and l (L маленькое). В настоящее время, все нормальные адреса всегда начинаются с 1 или 3, хотя это может быть изменено в будущих версиях. Адреса тестовой сети обычно начинаются с m или n. Нормальные адреса могут иметь длину в 25-34 символов, а адреса тестовой сети могут быть из 26-34 символов в длину. Большинство же адресов все же состоят из 33 или 34 символов.
Кроме того, можно отправить BTC непосредственно на IP адрес.
Поскольку Bitcoin адреса базируется на случайных числах, возможно, хотя и крайне маловероятно, что для двух людей независимо друг от друга сгенерируются одинаковые адреса. Это называется коллизия. Если это случается, то оба владельца этого адреса могут тратить деньги, отправленные на этот адрес. Но здесь невозможно второму владельцу адреса потратить все деньги первого настоящего владельца (или наоборот). Если бы вы намеренно решили подобрать такой адрес, который вызовет коллизию, то на настоящий момент вам бы пришлось потратить в 2^107 раз больше времени, чтобы сгенерировать такой адрес, чем на создание нового блока. Пока подписи и алгоритмы хеширования остаются криптографически сильными, а вероятно так будет всегда, выгоднее будет генерировать и получать комиссии за переводы, чем искать дублирующиеся адреса.
Как создается bitcoin адрес:
1. Берется открытый ключ (65 байт, 1 байт 0x04, 32 байт соответствуют координате X, 32 байт соответствуют координате Y):
2. Производится SHA-256 хэширование открытого ключа:
3. Выполняется RIPEMD-160 хэширование результата SHA-256:
4. Добавляется байт-идентификатор сети перед RIPEMD-160 хэшем (0x00 для основной сети)
5. Выполняется SHA-256 хэширование по расширенному результату от RIPEMD-160:
6. Выполняется SHA-256 хэширование по предыдущему SHA-256 хэшу, результат будет представлять собой контрольную сумму:
7. Берутся первые 4 байта от полученного хэша:
8. Эти 4 байта контрольной суммы из пункта 7 добавляются в конец расширенного RIPEMD-160 хэша из пункта 4. Это 25-байтовый двоичный Биткоин адрес.
9. Результат пункта 8 конвертируется в строку base58 . Это наиболее часто используемый формат bitcoin адреса.
Источник
Mini private key format
This page contains sample addresses and/or private keys. Do not send bitcoins to or import any sample keys; you will lose your money.
The mini private key format is a method of encoding a Bitcoin private key in as few as 30 characters for the purpose of being embedded in a small space. A private key encoded in this format is called a minikey. This private key format was designed for and first used in Casascius physical bitcoins, and is also favorable for use in QR codes. The fewer characters encoded in a QR code, the lower dot density can be used, as well as more dots allocated to error correction in the same space, significantly improving readability and resistance to damage. The mini private key format offers its own built-in check code as a small margin of protection against typos.
Casascius Series 1 holograms use a 22-character variant of the minikey format, instead of 30 characters. Everything is the same other than the length. To properly implement minikey redemption, services and clients must support the 30-character format, but may optionally support the 22-character format as well to allow redemption of old Casascius coins. Use of the 22-character format for future applications is discouraged due to security considerations; the standard 30-character format should be used instead.
An example key using this encoding is S6c56bnXQiBjk9m _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ qSYE7ykVQ7NzrRy.
Contents
Usage
Physical bitcoins
Minikeys are used extensively on physical bitcoins, because their small size allows them to be printed and read easily even on tiny surfaces inside the coins. Typically, a small paper or plastic disc is placed behind a tamper-evident security hologram on the back of a metal coin or bar, with the minikey printed on the inside such that it can only be read if the security hologram is removed.
Some physical bitcoins include a window in the security hologram to view the back of this disc, which includes the prefix of the address corresponding to the hidden minikey.
1D barcodes
The mini private key is small enough to fit in a one-dimensional barcode while still remaining practical. Among the most popular one-dimensional barcode symbologies, the one known as «Code 128» is best suited for encoding a minikey due to its favorable data density and support for mixed case strings. The variant known as «Code 128-B» produces the shortest code for strings containing lowercase characters.
The sample private minikey encoded with Code 128-B looks like this:
2D barcodes
The mini private key is suitable for use in QR codes. The recommended settings for maximizing readability are: QR version 3, error correction level Q (near highest, 25% possible lost codeword recovery). This results in a 29×29 grid. A minikey QR code can also fit in a 25×25 grid with QR version 2, error correction level L (lowest, 7% possible lost codeword recovery).
The sample private minikey encoded as a QR code on a 29×29 grid looks like this:
Import
Mini private keys can be imported through the following clients/services:
Applications
The current mainline («Satoshi») client cannot currently be used to import minikeys.
- BlockChain.info
- Private keys can be imported into a Blockchain.info wallet and bitcoins can be sent to another address immediately upon import without needing to wait for any confirmations. Even after import, funds remain associated with the private key until they are actually spent to a different address.
- StrongCoin
Decoding
The private key encoding consists of 30 alphanumeric characters from the base58 alphabet used in Bitcoin. The first of the characters is always the uppercase letter S.
To determine whether the minikey is valid:
- Add a question mark to the end of the mini private key string.
- Take the SHA256 hash of the entire string. However, we will only look at the first byte of the result.
- If the first byte is 00, the string is a well-formed minikey. If the first byte is not 00, the string should be rejected as a minikey.
Example with SHA256
Here is an example with the sample private key S6c56bnXQiBjk9mq _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ SYE7ykVQ7NzrRy.
The string «S6c56bnXQiBjk9 _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ mqSYE7ykVQ7NzrRy?» has a SHA256 value that begins with 00, so it is well-formed.
To obtain the full 256-bit private key, simply take the SHA256 hash of the entire string. There is no encoding for line breaks in the string, even if the key is broken into multiple lines for printing. The SHA256 should be taken of exactly thirty bytes.
This sample key in wallet import format is 5JPy8Zg7z4P7RSLsiqcqyeAF1 _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ 935zjNUdMxcDeVrtU1oarrgnB7, and the corresponding Bitcoin address is 1CciesT23BNionJe _SAMPLE_ADDRESS_DO_NOT_SEND_ Xrbxmjc7ywfiyM4oLW.
Command line verification
To calculate SHA256 from the command line on OSX or Linux devices:
That should output a line of text like «000f2453798ad4f951eecced2242eaef3e1cbc8a7c813c203ac7ffe57060355d -«. Since the first two characters are 00 the verification passes for the mini key S6c56bnXQiBjk9 _SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ mqSYE7ykVQ7NzrRy
Check code
The mini private key format offers a simple typo check code. Mini private keys must be generated in a «brute force» fashion, keeping only keys that conform to the format’s rules. If a key is well-formed (30 Base58 characters starting with S), but fails the hash check, then it probably contains a typo.
If the SHA256 hash of the string followed by ‘?’ doesn’t result in something that begins with 0x00, the string is not a valid mini private key.
Creating mini private keys
Creating mini private keys is relatively simple. One program which can create such keys is Casascius Bitcoin Utility.
Mini private keys must be created «from scratch», as the conversion from mini private key to full-size private key is one-way. In other words, there is no way to convert an existing full-size private key into a mini private key.
To create mini private keys, simply create random strings that satisfy the well-formedness requirement, and then eliminate the ones that do not pass the typo check. (This means eliminating more than 99% of the candidates.) Then use the appropriate algorithm to compute the corresponding private key, and in turn, the matching Bitcoin address. The Bitcoin address can always be computed from just the private key.
It is strongly advisable to avoid using the digit «1» in minikeys unless it is being printed in such a way where a user is unlikely to mistake it for the lowercase letter «l». Few clients and redemption tools are prepared to tell the user that their entry containing the letter «l» should actually be the number «1» — rather, they will simply reject the code and may leave the user confused.
In all cases, you must use a secure cryptographic random number generator to eliminate risks of predictability of the random strings.
Python Code
The following code produces sample 30-character SHA256-based mini private keys in Python. For real-world use, random must be replaced with a better source of entropy, as the Python documentation for random states the function «is completely unsuitable for cryptographic purposes».
Источник