- How to Generate a Bitcoin Address — Step by Step
- Introduction
- Dependencies
- Cryptography Primer
- Public Key Cryptography
- Creating a Bitcoin Address
- Private Key Generation
- Public Key Generation
- Compressed Public Key
- Address Generation
- Pay-to-Script Hash
- Адрес биткоин-кошелька: где взять, как создать, узнать Bitcoin Address и получить на него криптовалюту
- Как создать кошельки для хранения Bitcoin
- Адрес биткоин-кошелька: что это и где взять
- Как купить и получить Bitcoin на адрес кошелька
- Как узнать информацию по адресу биткоин
How to Generate a Bitcoin Address — Step by Step
Here is a bash script that does what is outlined below: https://bit.ly/2MIgeOD
Introduction
This is a hands-on, technical guide about the generation of Bitcoin addresses including private and public keys, and the cryptography involved.
Learn more and join people in 22 countries around the world in my course on how to Become a Bitcoin + Blockchain Programmer.
This guide will walk you through all the steps to generate a Bitcoin address using the command line on a Mac. Similar steps should be possible on other operating systems using similar cryptographic tools. Lines starting with $ denote terminal commands, which you can type and run (without the $ of course).
Dependencies
- brew — Installation: https://brew.sh/
- pip — Installation: sudo easy_install pip
- libressl — Installation: brew install libressl
- base58 — Installation: pip install base58
Note: To do the contained openssl cli commands, I installed libressl in order for some of the elliptic curve commands to work as the current version of openssl cli on mac has a bug.
Cryptography Primer
Public Key Cryptography
Or asymmetric cryptography, is a type of cryptography that uses key pairs, each of which is unique. The pair of keys includes a public key and a private key. This is the type of cryptography that Bitcoin uses to control funds. A public key can be generated from a private key, but not vice-versa (computationally too difficult). Also, something encrypted with a private key can be decrypted with the public key, and vice-versa, hence they are asymmetric.
- Encryption: When a user has a public key, a message can be encrypted using a public key, which can only be read by the person with the private key. This also works in reverse.
- Digital Signatures: A user can, with their private key and a hash of some data, use a digital signature algorithm such as ECDSA, to calculate a digital signature. Then, another user can use the algorithm to verify that signature using the public key and the hash of the same data. If it passes, this proves a user did in fact submit a specific message, which has not been tampered with.
- Digital Fingerprint: Is a way to represent an arbitrarily large data set by computing the hash of it to generate a fingerprint of a standard size. This fingerprint would be so difficult to replicate without the same exact data, which can be assumed to have not been tampered with.
Private keys are what prove you can send Bitcoin that has been sent to you. It is like the password to your bank account. If you lose it or someone else gets a hold of it, you’re toast.
Public keys help people know how to send you Bitcoin.
Creating a Bitcoin Address
Private Key Generation
Private keys can be any 256 bit (32 byte) value from 0x1 to 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140 .¹
The total possible number of private keys is therefore 2²⁵⁶ or 1.16 x 10⁷⁷. Imagine the total number of atoms in your body, then imagine that each of those atoms is an earth. The total number of atoms on all of those earths is about 7 x 10⁷⁷.² There is virtually no chance that your random private key will ever be generated randomly or found by someone else.
A common (but not the most secure) way of creating a private key is to start with a seed, such as a group of words or passphrases picked at random. This seed is then passed through the SHA256 algorithm, which will always conveniently generate a 256 bit value. This is possible because every computer character is represented by an integer value (see ASCII and Unicode).
Note: SHA256 is a one-way, deterministic function meaning that it is easy to compute in one direction, but you cannot reverse it. In order to find a specific output, you have to try all the possible inputs until you get the desired output (brute forcing) and it will always produce the same output given the same input, respectively.
The seed can be used to generate the same private key if the same hashing algorithm is used in the future, so it is only necessary to save the seed.
This private key is in hexadecimal or base 16. Every 2 digits represents 8 bits or 1 byte. So, with 64 characters, there are 256 bits total.
Public Key Generation
Public keys are generated from the private keys in Bitcoin using elliptic curve ( secp256k1 ) multiplication using the formula K = k * G , where K is the public key, k is the private key, and G is a constant called the Generator Point⁴, which for secp256k1 is equal to:
It doesn’t seem to be known how this point was chosen by they designers of the curve. Also, this algorithm is a one-way algorithm, or a “trap door” function so that a private key cannot be derived from the public key. It is important to note that elliptic curve multiplication is not the same as scalar multiplication, though it does share similar properties.
To do this in the terminal from our private key earlier,
This public key contains a prefix 0x04 and the x and y coordinates on the elliptic curve secp256k1 , respectively.
Compressed Public Key
Most wallets and nodes implement compressed public key as a default format because it is half as big as an uncompressed key, saving blockchain space. To convert from an uncompressed public key to a compressed public key, you can omit the y value because the y value can be solved for using the equation of the elliptic curve: y² = x³ + 7. Since the equation solves for y², the right side of the equation could be either positive or negative. So, 0x02 is prepended for positive y values, and 0x03 is prepended for negative ones. If the last binary digit of the y coordinate is 0, then the number is even, which corresponds to positive. If it is 1, then it is negative. The compressed version of the public key becomes:
The prefix is 0x02 because the y coordinate ends in 0xa4 , which is even, therefore positive.
Address Generation
There are multiple Bitcoin address types, currently P2SH or pay-to-script hash is the default for most wallets. P2PKH was the predecessor and stands for Pay to Public Key Hash. Scripts give you more functionality, which is one reason why they are more popular. We’ll first generate a P2PKH original format address, followed by the now standard P2SH .
The public key from the previous output is hashed first using sha256 and then hashed using ripemd160 . This shortens the number of output bytes and ensures that in case there is some unforeseen relationship between elliptic curve and sha256, another unrelated hash function would significantly increase the difficulty of reversing the operation:
Note that since the input is a string, the xxd -r -p will convert the hex string into binary and then output it in hexdump style (ascii), which is what the openssl hashing functions expect as input.
Now that we have hashed the public key, we now perform base58check encoding. Base58check allows the hash to be displayed in a more compact way (using more letters of the alphabet) while avoiding characters that could be confused with each other such as 0 and O where a typo could result in your losing your funds. A checksum is applied to make sure the address was transmitted correctly without any data corruption such as mistyping the address.
Bitcoin P2PKH addresses begin with the version byte value 0x00 denoting the address type and end with a 4 byte checksum. First we prepend the version byte (prefix) to our public key hash and calculate and append the checksum before we encode it using base58 :
Note: -c denotes a checksum is to be applied. The checksum is calculated as checksum = SHA256(SHA256(prefix+data)) and only the first 4 bytes of the hash are appended to the end of the data.
The resulting value is a P2PKH address that can be used to receive Bitcoin: 16JrGhLx5bcBSA34kew9V6Mufa4aXhFe9X
Pay-to-Script Hash
The new default address type is a pay-to-script-hash, where instead of paying to a pubKey hash, it is a script hash. Bitcoin has a scripting language, you can read more about it here. Basically it allows for things like multiple signature requirements to send Bitcoin or a time delay before you are allowed to send funds, etc. A commonly used script is a P2WPKH (Pay to Witness Public Key Hash): OP_0 0x14
where the PubKey Hash is the RIPEMD160 of the SHA256 of the public key, as before, and 0x14 is the number of bytes in the PubKey Hash. So, to turn this script into an address, you simply apply BASE58CHECK to the RIPEMD160 of the SHA256 of the script OP_0 0x14
except you prepend 0x05 to the script hash instead of 0x00 to denote the address type is a P2SH address.
If you like the article, check out my course on how to Become a Bitcoin + Blockchain Programmer.
Источник
Адрес биткоин-кошелька: где взять, как создать, узнать Bitcoin Address и получить на него криптовалюту
Популярность биткоина растет, а вместе с тем увеличивается и количество желающих приобрести ценную криптовалюту. К сожалению, нельзя просто взять деньги, сходить в банк и купить Bitcoin. Поэтому у новичков часто возникают разного рода вопросы по этому поводу, которые требуют разъяснения. В статье редакция Profinvestment.com расскажет, что такое адрес биткоин-кошелька, где его взять, как получить и узнать всю информацию о нем.
Bitcoin Address нужен для получения и перевода криптовалюты на кошелек. Например, его необходимо указывать при покупке BTC в онлайн-обменниках или при выводе монет с криптовалютной биржи. Состоят биткоин-адреса из хаотичного набора букв латинского алфавита и цифр (обычно длина 33–34 символа). Такой адрес называется публичным. Генерируются они из приватного ключа. Получить адрес может каждый бесплатно, но необходимо первым делом создать кошелек для хранения криптовалюты BTC. Сделать это можно на биржах, онлайн-сервисах, используя локальные приложения на компьютере или мобильном устройстве и т. д. Ниже об этом расскажем подробнее и покажем на примере, где посмотреть и как выглядит адрес биткоин (Address Bitcoin).
Купить/продать биткоин можно через:
Как создать кошельки для хранения Bitcoin
Существует несколько способов хранения биткоинов, каждый обладает своими достоинствами и недостатками.
- Самый простой способ — это создать кошелек для биткоин на бирже, на которой можно быстро купить или продать криптовалюту. Популярными биржами на русском языке в СНГ являются: EXMO (работает с фиатными валютами — рублями, долларами и т. д); Binance — крупнейшая по торговому обороту в мире; криптобиржа Localbitcoins — еще одна площадка, которая предлагает очень удобные способы вывода фиатных денег; биржа Livecoin — доступно множество альткоинов, работает с обычными валютами.
На биржах можно купить, продать, обменять криптовалюту, при этом будет кошелек, где легко хранить виртуальные монеты. Регистрация стандартная, нужно указать свой почтовый ящик и придумать пароль, обязательно подтвердив адрес электронной почты (после регистрации на него придет письмо от биржи, в котором будет находиться ссылка, по которой нужно пройти). Зайдя в личный кабинет, необходимо задать настройки безопасности, подключить 2fa-аутентификацию и получать коды на вход по SMS или в приложении «Google authenticator». Как правило, проходить верификацию на бирже не требуется, но если нужно использовать карты Visa/MasterCard, банковские переводы, то придется ее пройти.
Если работать с Exmo , то обязательная верификация аккаунта не нужна. Можно сразу заводить деньги на баланс и покупать Bitcoin, Ethereum, Ripple, Litecoin и другие популярные криптовалюты. Данная биржа имеет широкий выбор платежных решений на ввод и вывод, сам сайт многоязычный, присутствуют русский и украинские языки. Приобретенную криптовалюту затем можно вывести с биржи на адрес другого кошелька.
- Установить локальный кошелек на компьютер. Скачать его можно с сайта bitcoin.org . Популярными кошельками являются Exodus, Jaxx, Lumi, Copay и т. д.
В данном случае кошелек установится на компьютер или телефон. На выбор предложено несколько приложений от разных разработчиков. Все бумажники делятся на «тяжелые» (требуется загрузить весь блокчейн) и «легкие» (синхронизация с сетью происходит онлайн). Наиболее популярные кошельки: «тяжелый» — Bitcoin Core, «легкий» — Electrum.
При установке программы-кошелька Bitcoin Core сразу нужно позаботиться о наличии свободного места на диске компьютера, так как после ее запуска запускается синхронизация программы с сетью, в ходе которой происходит скачивание блоков всех транзакций за все время существования. В итоге будет закачано около 145 Гбайт информации, поэтому займет данный процесс не один час. Пользоваться им несложно, но обязательно нужно делать резервные копии после каждой операции с новым кошельком для восстановления в случае удаления программы (перейдя в раздел «Обзор»).
Рекомендуем использовать программу Electrum . Она не требует загрузки блокчейна сети Bitcoin и достаточна надежна. Буквально через минут 5–10 можно получать и отправлять криптовалюту. При установке важно не забыть сохранить seed-фразу из 12 слов на английском языке (для восстановления доступа), а также приватные ключи для переноса на другие кошельки.
Можно скачать программы других разработчиков, не представленных на данном сайте, например, Jaxx — это популярный мультикриптовалютный клиент для хранения не только BTC, а и других криптовалют. Преимуществом является то, что скачивать все блоки не придется, но для работы нужен постоянный доступ к интернету.
- Использовать в качестве кошелька Bitcoin онлайн-сервисы. Например, Blockchain (можно хранить BTC, ETH, BCH), Luno, Guarda, Coinfy и другие сайты.
Достаточно просто пройти регистрацию, тогда уже будет кошелек, на который можно переводить криптовалюту. Понятно, что в данном случае загружать на компьютер всю цепочку блоков не придется. Аккаунтов можно создать несколько, меняя только электронную почту при регистрации. Особое внимание нужно уделить настройкам безопасности. Для этого лучше использовать сложные пароли; подключить двухфакторную аутентификацию 2fa; создать почту для регистрации на надежном сервисе (лучше всего от Google — Gmail); поставить и обновлять антивирус и т. д. А пароли, логины, seed записать и хранить в укромном месте, не сообщая их посторонним людям.
Например, кошелек Блокчейн :
- Установить приложение на мобильный телефон или планшет: Exodus, Bread Wallet, Carbon, Jaxx, Kcash Wallet, Mycelium, Luno, Guarda и т. д.
- Сгенерировать бумажный кошелек на сайте bitaddress.org.
- Приобрести аппаратный кошелек: Ledger, Trezor, Keepkey и т. д.
При использовании любого способа важно уделить внимание безопасности данных, особенно хранению приватного ключа.
Адрес биткоин-кошелька: что это и где взять
Адрес биткоин-кошелька — это произвольный набор цифр и символов латинского алфавита (длина около 33–34 знаков). Создается он сразу после регистрации аккаунта на онлайн-сервисах или после установки программы-клиента. Для каждой новой операции он может генерироваться заново, но все старые остаются рабочими. Нужно внимательно относиться к копированию адреса биткоин при переводе, чтобы не пропустить какой-нибудь символ (транзакции нельзя отменить).
Приведем примеры, как и где можно посмотреть Bitcoin Address:
- При регистрации на бирже Exmo в разделе «Кошелек» нажать в строке BTC кнопку «Пополнить» напротив BTC:
Там будет адрес биткоин-кошелька для пополнения его на бирже exmo.me (минимальная сумма — 0,001 BTC). Он постоянный, нет возможности генерировать новые:
- На бирже LocalBitcoins — перейти в «Кошелек», нажать «Получить биткоины» и посмотреть адрес. Минимальная сумма отсутствует, комиссия составит 0,00015 BTC:
- На бирже Livecoin найти адрес можно, если нажать «Балансы» — «BTC» — «Пополнение». Появится окошко с инструкцией.
- На бирже Binance выбрать «Актив» — «Депозит» — «Bitcoin» — «BTC Адрес Депозита»:
- В онлайн-кошельке Blockchain нажать «Получить» (на англ. Request). В настройках можно создать новый Bitcoin Address:
- В программе Bitcoin Core найти биткоин-адреса можно в разделе «Обзор».
Как купить и получить Bitcoin на адрес кошелька
- Биржи криптовалют — площадки для покупки и продажи монет. Наиболее известные криптобиржи, которые работают с фиатом (традиционными валютами): Exmo , BitFlip , Livecoin , Localbitcoins .
- Второй способ — обменять имеющуюся валюту (рубли, доллары, евро, гривны и другие) на Bitcoin в обменниках. Список надежных и безопасных обменников: 60cek , Xchange , Prostocash .
Например, проверенный обменник Prostocash осуществляет надежный, круглосуточный обмен по лучшему курсу. Резервы – более 600 тысяч долларов США. Обмен осуществляется практически с любыми электронными платежными системами (Яндекс, Киви, Адвакеш, Payeer, Perfect Money и другие); работает в направлении российских банков (Сбербанк, Россельхозбанк, ВТБ 24, Альфа-Банк, Русский Стандарт, АК-Барс); криптовалютных бирж (Exmo code, Livecoin ваучер).
Отзывы положительные, например, в мониторинге Kurs-expert:
Например, чтобы купить биткоины за рубли, достаточно выбрать направление «Сбербанк» на «Bitcoin» и сумму:
Указать детали обмена: информацию по банковской карте и адрес кошелька для получения биткоина. Нажать «Обменять» и получить инструкцию по оплате. Если есть вопросы, нужно обращаться в онлайн-чат поддержки обменника электронных денег.
После подтверждения операции в сети криптовалюта придет на адрес кошелька Bitcoin, который указан. Обычно время зачисления зависит от величины уплаченной комиссии и составляет от нескольких минут до часа. В каждом кошельке устанавливается оптимальный ее размер, но его можно изменить в большую или меньшую сторону.
Как узнать информацию по адресу биткоин
Всегда важно знать статус транзакции и информацию об адресе кошелька Биткоин. Сеть Bitcoin публична, а история всех операций открыта для общего просмотра. Но так как сеть анонимна, узнать, кто владелец, не представляется возможным, если он сам не сообщил об этом.
Для просмотра всей доступной информации поможет сервис Blockchain , в котором можно и хранить криптовалюты: BTC, ETH, BCH, XML. При переходе на сайт вверху будет окно поиска «Block, Hash, Transaction».
Нужно вставить адрес любого кошелька Bitcoin или hash (идентификатор транзакции) и просмотреть всю информацию о балансе, совершенных транзакциях, входящих/исходящих переводах и т. д.
Можно узнать статус перевода криптовалюты (подтверждена или нет). Для этого в окне достаточно указать значение Hash: Txin или Txout.
Источник