что такое адрес кошелька криптовалюты

Различия между кошельком криптовалюты и ее адресом

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Вы новичок в мире криптовалют и ищете способ хранить свои монеты? Все, что вам нужно, это кошелек для управления адресом и адрес для хранения ваших монет. Подождите!? Это кошелек, адрес или адрес кошелька?

Термин «кошелек» и «адрес» создают ненужную путаницу, и новички часто думают, что это одно и то же. Недавно один из наших пользователей спросил: «Биткойн-кошелек то же самое, что и биткойн-адрес? Если нет, то чем они отличаются?»

Так как многие пользователи, как правило, путают как кошелек, так и адрес, мы решили сделать пост, объясняющий эти понятия. Здесь все очень просто, не вдаваясь в технические подробности, мы объясним разницу между кошельком и адресом. Мы будем использовать Биткойн в качестве примера, но концепция применима к Litecoin, DASH, Monero и почти ко всем криптовалютам.

Итак, что такое биткойн-адрес и что такое биткойн-кошелек?

Биткойн-адрес

Пример:

Адрес представляет собой открытый ключ нескольких асимметричных ключей и является пунктом назначения для оплаты Биткойнов. Каждый адрес (открытый ключ) имеет соответствующий приватный ключ, который используется для перемещения Биткойнов на соответствующий адрес (открытый адрес или открытый ключ).

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Биткойн-адрес (открытый ключ) и приватный ключ

Теперь сравните адрес Биткойн (открытый ключ) с номером вашего банковского счета или адресом электронной почты. Так же, как Вы делитесь своим адресом электронной почты и номером банковского счета для получения электронной почты и платежей, Вы можете поделиться своим Биткойн-адресом (публичным адресом) с любым желающим перевести вам Биткойны.

Однако, чтобы отправить Биткойн с этого адреса, вам нужен приватный ключ, который является конфиденциальным и не должен передаваться никому. Рассматривайте приватный ключ как пароль своего банковского счета или пароль электронной почты.

Без пароля Вы не сможете получить доступ к своей электронной почте или банковскому счету. Без доступа Вы не можете отправлять электронные письма с вашего адреса электронной почты или совершать транзакции с вашего банковского счета, верно?

Аналогичным образом, приватный ключ в Биткойне используется для подписания транзакций и подтверждения права собственности на связанный Биткойн адрес (им Вы подписываете сообщения).

Вы можете опубликовать свой Биткойн-адрес где угодно, и любой может отправить на него Биткойны. Однако, как мы уже говорили, чтобы отправлять Биткойны с этого адреса, вам нужен приватный ключ этого конкретного адреса.

Только используя правильный приватный ключ, Вы можете создать действительную подпись. Он назван приватный ключом по причине того, что держать его нужно тайне и помнить, что любой, имеющий доступ к вашему личному ключу, сможет получить доступ к вашим криптовалютам, связанным с этим публичным адресом.

Это похоже на то, как любой пользователь с вашим паролем может получить доступ к вашему банковскому счету и вывести средства, а также получить доступ к вашей учетной записи электронной почты и отправлять электронные письма, используя ваш идентификатор.

Создание Биткойн-адреса

В отличие от идентификатора электронной почты или номера банковского счета, Вы можете создать столько биткойн-адресов, сколько захотите, и адреса могут быть созданы бесплатно.

Кроме того, в официальном документе Биткойн рекомендуется создавать новый адрес для каждой транзакции Биткойн. Но как мне создать адрес и как получить приватные ключи адреса? Разве не сложно управлять несколькими парами ключей (открытыми и приватными ключами)? А вот тут в игру вступает Биткойн-кошелек.

Что такое Биткойн-кошелек?

Так кошелек используется только для сопоставления нескольких адресов или он также проводит транзакции? На самом деле он выполняет обе эти функции. Кошелек предлагает удобный способ управления несколькими ключами, а также используется для создания транзакций.

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Сравните Биткойн-кошелек с программным обеспечением, в котором Вы управляете несколькими учетными записями электронной почты: Вы можете отправлять электронные письма с нескольких учетных записей, которыми Вы управляете в этом приложении.

Всякий раз, когда Вы хотите отправить Биткойн со своего кошелька, кошелек сначала общается с сетью. Затем он проверяет список адресов в кошельке, который содержит баланс и объединяет их. Затем он создает подпись с использованием соответствующих приватных ключей и передает транзакцию в сеть.

Примечание. Ваши монеты хранятся не в вашем кошельке, а в блокчейне. Точно так же, как электронные письма на самом деле хранятся на почтовом сервере, а не локально на компьютере пользователя.

Транзакции с биткойнами работают аналогично тому, как работает электронная почта. Как только письмо отправлено, оно отправлено, и вы не можете забрать его обратно. Так же и транзакции: это как путешествие в один конец.

Вы получите письмо (транзакцию) обратно только в том случае, если человек, которому Вы отправили письмо (монеты) добровольно, отправит их обратно. То же самое относится и к вам. Как только Вы получите Биткойны на свой адрес кошелька, их сможете использовать только Вы, так как только у вас есть доступ к приватным ключам данного адреса.

Типы Биткойн кошелька

Формат файла отличается в зависимости от клиентов кошелька, и большинство кошельков обычно имеют такие функции, как шифрование кошелька, резервное копирование и маркировка адресов.

В настоящее время не все кошельки криптовалюты содержат приватные ключи. Например, существуют только кошельки для наблюдения за монетами, которые используются только для проверки баланса и проверки транзакций. Он не содержат приватного ключа, поэтому Вы не сможете подписать транзакцию, то есть отправить эти монеты с данного кошелька. Также есть обменные кошельки и некоторые онлайн-кошельки, где Вы не контролируете приватные ключи, их контролирует тот, кто ими управляет.

Существует много различных типов кошельков, таких как онлайн-кошелек, аппаратный кошелек, настольный кошелек, мобильный кошелек и т. д. Также существует множество приложений с открытым и закрытым исходным кодом.

Какой бы это ни был кошелек, просто запомните одну вещь: «Не ваши ключи, не ваши Биткойны». Если Вы не владеете приватными ключами адреса, на котором храните монеты, монеты вам не принадлежат.

Всегда используйте кошелек, в котором Вы управляете приватными ключами. Кроме того, любой, кто владеет серьезным количеством криптовалюты, должен рассмотреть возможность использования аппаратного кошелька, такого как Trezor, поскольку он обеспечивает лучшую безопасность.

Источник

Как узнать номер Bitcoin-кошелька

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Если не будете знать свой биткоин-адрес, то не сможете выполнить ни одну операцию в сети блокчейн. В том числе перевести биткоины. Биткоин-адресом называют уникальный номер, который используют для совершения транзакций с монетами, то есть отправки и получения криптовалюты. В принципе, рассматривая, что такое биткоин-адрес, его вполне можно сравнить с e-mail или почтовым адресом.

Информацию об адресе кошелька вы передаете человеку, который будет делать пересылку на ваш виртуальный счет. Это очень важные данные, поэтому многих волнует вопрос, как узнать адрес биткоин кошелька. Без него вы не сможете полноценно пользоваться сервисом.

Биткоин-адрес еще называют идентификатором. Он полностью анонимный, так что, даже если кто-то и будет знать, как выглядит ваш адрес, он не сможет выяснить личные данные владельца. Это просто способ идентификации в сети. Даже после того, как человек получит номер вашего криптокошелька, ему это не поможет выяснить, где взять ваши персональные данные или взломать счет.

Как выглядит номер биткоин кошелька

Прежде, чем разбираться, как узнать номер кошелька для биткоинов, надо выяснить, что он из себя представляет. Адреса виртуальных бумажников для криптовалюты выглядят приблизительно одинаково. Номер кошелька bitcoin: пример:

Это лишь набор набор латинских букв разного регистра и цифр. Чтобы идентификатор было невозможно подделать, его генерируют согласно особым правилам, следование которым делает хранилища криптовалюты одними из самых надежных в мире:

1. Согласно первому правилу в номере должно быть определенное количество символов. В частности, используется набор из 27–34 символов. То есть можно встретить номера из 27, 28, 29, 30, 31, 32, 33 и 34 символов.

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты2. Номера складываются из цифр и букв латинского алфавита. Это еще сильнее усложняет подделку.

3. В номере никогда не будут одновременно использованы следующие символы: 0, O, I. Дело в том, что их легко перепутать, например заглавную букву «О» можно спутать с нулем, а заглавную «І» — с единицей. Конечно, эти ошибки можно исключить, если внимательно присмотреться к символам, но во избежание проблем было решено не использовать их.

4. Если вы видели, как выглядит номер криптокошелька, то должны были заметить закономерность: практически все номера начинаются либо с единицы, либо с тройки.

5. В номер входят буквы и цифры верхнего и нижнего регистра. Это ещё один перестраховочный момент, который позволяет идентифицировать пользователя в сети.

Чтобы не запоминать этот набор букв и цифр, вместо длинного номера можно применять QR-код. Данный идентификатор тоже анонимный, но значительно короче полноценного кода-идентификатора.

Кстати, можете не запоминать номер криптокошелька, так как он часто меняется. Да и при совершении транзакции вводить его вручную не рекомендуется, так как велик шанс допустить ошибку. А если такое произойдет, то при транзакции биткоины попадут к другому пользователю. Причем выяснить, кому именно, не выйдет, так как система анонимна.

Чем номер кошелька для биткоинов отличается от адреса

Прежде, чем выяснять, как узнать номер кошелька в блокчейн, желательно понять, есть ли отличия между такими часто встречающимися понятиями, как «адрес биткоин-кошелька» и «номер биткоин-кошелька».

Как генерируется Blockchain номер кошелька

Так как узнать номер биткоин кошелька в Blockchain или другом сервисе? Для начала подробнее разберемся с тем, как появляется номер. При открытии нового счета, для каждого пользователя сначала генерируется приватный ключ. С помощью хэширования, на его основе подбирается публичный ключ. Потом, с помощью преобразований публичного ключа, получается адрес. Все эти процессы продуманы до мелочей. Хэширование построено так, чтобы по публичному ключу, невозможно было определить приватный.

Приватный ключ необходимо хранить надежно, так как через него злоумышленники могут получить остальные данные и перевести себе все монеты. В зависимости от выбранного типа криптокошелька, приватный ключ может храниться на сервере, компьютере или съемном носителе.

Многие интересуются, почему меняется адрес криптокошелька на разных сервисах? Это делается в целях безопасности при пополнении баланса. Создано много приложений с удобным интерфейсом. Пользователям даже не приходится разбираться в приватных и публичных ключах. Достаточно просто получить публичный ключ и придумать пароль от личного кабинета.

Как создать блокчейн адрес кошелька

Открыть счет для самых известных цифровых монет можно через биржи криптовалют, с помощью мобильных приложений, холодных кошельков и прочими способами. Самый распространенный вариант среди новичков – это использование онлайн-сервиса Blockchain. Чтобы получить здесь номер криптокошелька, достаточно заполнить простую форму:что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалютыВ онлайн-кошельке всё на русском языке, а в личном кабинете отображается баланс сразу в пересчете на национальную валюту. С недавнего времени, клиенты этого сервиса по умолчанию получают адреса для Ethereum и BitcoinCash. Можно в одном профиле хранить сразу несколько валют:

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

В сравнении с другими онлайн кошельками, этот проверенный и стабильный. Нет множества функций, зато всё лаконично и интуитивно понятно. К тому же, есть раздел «Обмен», где можно обменивать криптовалюты.

На каких сервисах еще можно получить номер BTC кошелька

Чтобы получить свой адрес для Биткоинов, необходимо зарегистрировать кошелек. Сейчас для этого создано много инструментов. Есть сайты, программы, мобильные приложения, расширения для браузеров и даже специальные устройства. Из огромного разнообразия мы рекомендуем следующие варианты:

Воспользуйтесь одним из этих проектов, чтобы создать Биткоин-адрес и начать пользоваться криптовалютой. Любой новичок в этом без труда разберется, регистрация не сложнее, чем в социальных сетях. К тому же, данных требуется меньше, ведь в этой нише приветствуется конфиденциальность.

Где посмотреть адрес биткоин кошелька в Блокчейн или другом сервисе

Проблем с поиском своего адреса после регистрации не должно быть. Как правило, он представлен на главной странице или показывается после перехода к пополнению баланса:

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Появится окно, где опять же можно выбрать криптовалюту и скопировать обычный текстовый адрес. Также есть ссылка, чтобы получить адрес в виде QRкода.

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Во многих кошельках используется такая же схема. Нужно переходить к пополнению счета, чтобы увидеть свой адрес. Лишь в программных кошельках номер бывает представлен в основном окне.

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Как и в случае с онлайн кошельком Блокчейн, дальше представляется адрес в стандартном виде и в формате QR кода. На него можно переводить BTC, чтобы получить их на биржу.

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Используйте любой кошелек для криптовалют, большой разницы в их интерфейсе вы не заметите. Получить адрес не сложно, главное использовать проверенные сервисы и не путать его с приватным ключом. Как выглядит номер биткоин кошелька мы уже показали, поэтому вы точно сможете его отличить.

Можно посмотреть не только номер BTC кошелька, но и баланс

Если для получения адреса ещё нужно выполнять какие-то действия, то баланс проверяется ещё проще. К примеру, когда заходишь в кошелек на Блокчейн, информация появляется в центре:

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Аналогично в других кошельках и на биржах криптовалют, где чаще всего показан общий баланс в Биткоинах:

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалютыИнформация о созданных счетах открыта, если это полноценный кошелек (а не личный кабинет на бирже), то кто угодно может посмотреть, сколько на нём BTC. Но будет крайне сложно выяснить, кому принадлежит этот адрес.

Как импортировать номер биткоин кошелька на Blockchain

В сервисе Blockchain есть возможность импортировать Биткоин-адреса с других кошельков. Так пользователь сможет увидеть общий баланс криптовалюты в других бумажниках, не заходя на них.

Добавка импортированных адресов и управление ими находится в списке категорий в меню «Настройки» > «Кошельки и адреса» («Settings > Wallets & Addresses»). Чтобы импортировать биткойн-адрес со сторонней платформы, нажмите + Импортировать биткойн-адрес (Import Bitcoin Address) и выберите Существующий адрес (Existing address), созданный вне данного кошелька. Введите закрытый ключ импортируемого биткойн-адреса. Затем добавьте (по вашему усмотрению) метку для адреса и выберите существующий вложенный кошелек для перевода средств или оставьте это поле пустым, если хотите, чтобы средства оставались на импортированных адресах. Нажмите Импорт (Import), чтобы завершить процесс.

После импортирования, пользователь будет видеть все транзакции совершенные им (входящие и исходящие). Все переводы будут помечены своим ярлыком. В Blockchain.info ведена еще одна функция. Пользователь может осуществлять переводы по импортированным адресам. Ему понадобится приватный ключ, который можно найти в настройках кошелька.

Почему номер кошелька bitcoin меняется?

Можно пользоваться ранее применявшимися для проведения транзакций адресами. Или пойти на отключение вручную функции динамического адреса, зайдя в настройки кошелька.

Источник

Адрес

Понравилась статья? Поделись:

Bitcoin-адрес (Биткоин адрес) – идентификатор (номер счета), начинающийся с 1 или 3 и содержащий 26—35 буквенно-цифровых латинских символа (кроме 0, O, I). Адрес так же может быть представлен в виде QR-кода, является анонимным и не содержит информации о владельце. Его можно получить на безвозмездной основе, используя, например, программное обеспечение системы Bitcoin. В сети получили популярность специальные онлайн генераторы по созданию адресов для кошельков биткоин, где адрес создается рандомно.

Пример биткоин адреса:

Содержание

Для чего нужен биткоин адрес [ править ]

Посредством адреса можно совершать операции перевода/получения биткоинов (криптовалюты, ВТС) наподобие работы с письмами электронной почты. Один человек может создавать неограниченное количество адресов, повышая уровень анонимности своих платежей. При совершении очередной операции с ВТС чаще всего создается новый адрес (средства зачисляются/списываются в течение 1-2 часов). Одновременно генерируется пара закрытых ключей, обеспечивающая доступ к идентификатору и возможность выполнения операций с валютой. Они хранятся в файле wallet.dat на компьютере пользователя.

Условия ввода [ править ]

С целью исключения ошибки при ручном вводе адреса, рекомендуется использовать буфер обмена. При ручном вводе учитывается регистр символов. В случае неверного ввода биткоины отправляются не по адресу или транзакция отклоняется. Последнее выполняется автоматически, если идентификатор содержит символы, используемые в качестве контрольной суммы (для проверки).

Генерация Биткоин-адреса [ править ]

Адрес создается путем генерации случайных чисел и выполнения специальных математических операций. При этом не требуется подключения к Интернету и регистрации в сети Bitcoin, в которой он начинает отслеживаться. За 1 минуту возможна генерация тысяч адресов (в том числе персонализированных) и ключей к ним, например, при использовании утилиты Vanitygen.

Транзакции [ править ]

Запись о переводе ВТС с одного адреса на другой формирует транзакцию. Она содержит хеш предыдущей транзакции, подписанный отправителем, и адреса получателей биткоинов. Вся информация отправляется в сеть Bitcoin и после проверки подписей транзакция принимается к обработке.

Потеря биткоинов [ править ]

Потеря биткоинов возможна в следующих случаях:

Источник

Blockchain на Go. Часть 5: Адреса

Вступление

В предыдущей статье мы начали реализацию транзакций, а также ознакомились с принципом ее работы: нет учетных записей, личные данные (например, имя или серия и номер паспорта) не требуются и не хранятся нигде в Bitcoin. Но все же должно быть что-то, что идентифицирует вас как владельца выходов транзакции (т. е. владельца монет, заблокированных на выходах). И это то, для чего нужны адреса в Bitcoin. До сих пор мы использовали произвольные строки в качестве адресов, теперь пришло время реализовать реальные адреса, таким образом, каким они реализованы в Bitcoin.

В этой части мы изменим очень много кода, поэтому я не вижу смысла объяснять все подробно. Посетите эту страницу, чтобы увидеть все изменения, по сравнению с прошлой статьей.

Биткоин-адрес

Вот пример Bitcoin-адреса: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. Это самый первый Bitcoin-адрес, который якобы принадлежит Сатоши Накамото. Bitcoin-адреса находятся в открытом доступе. Если вы захотите отправить кому-то монеты, вам нужно знать адрес получателя. Но адреса (несмотря на уникальность) не являются идентификатором вас, как владельца «кошелька». Фактически, такие адреса являются открытым ключом. В Bitcoin ваша личность — это пара (или пары) закрытых и открытых ключей, хранящихся на вашем компьютере (или в каком-либо другом месте, к которому у вас есть доступ). Для создания таких ключей используются криптографические алгоритмы, которые гарантируют, что никто другой не сможет получить доступ к вашим монетам без физического доступа к вашим ключам. Давайте рассмотрим, что же это за алгоритмы.

Криптосистема с открытым ключом

Алгоритмы криптосистем с открытым ключом используют пары ключей: открытые и закрытые. Открытые ключи можно сообщить кому угодно. Закрытые ключи, напротив, не должны раскрываться никому: никто, кроме владельца, не должен иметь к ним доступа, поскольку это личные ключи, которые служат идентификатором владельца. Ваше лицо — это ваши закрытые ключи (в мире криптовалюты, конечно).

По сути, Bitcoin-кошелек — это всего лишь пара таких ключей. Когда вы устанавливаете приложение кошелька или используете Bitcoin клиент для создания нового адреса, для вас генерируется пара ключей. Тот, кто контролирует закрытый ключ, контролирует все монеты, которые были на него отправлены.

Закрытые и открытые ключи — это просто случайные последовательности байтов, поэтому они не могут быть напечатаны на экране и прочитаны человеком. Вот почему Bitcoin использует алгоритм для преобразования открытых ключей в удобочитаемую строку.

Если вы когда-нибудь использовали Bitcoin кошелек в виде приложения, вероятно, для вас была создана мнемоническая фраза. Такие фразы используются вместо закрытых ключей и могут быть использованы для их генерации. Этот механизм реализован в BIP-039.

Итак, теперь мы знаем, что идентифицирует пользователей в Bitcoin. Но как Bitcoin проверяет владельца выхода транзакции (и монеты, которые там хранятся)?

Электронная цифровая подпись

В математике и криптографии существует концепция электронной цифровой подписи — алгоритмы, которые гарантируют:

Чтобы подписать данные, нам понадобится следующее:

Цифровые подписи не шифруются, а данные получить из нее невозможно. Это похоже на хеширование: вы преобразуете данные при помощи алгоритма и получаете их уникальное представление. Разница между хешем и подписью — это пары ключей, которые позволяют произвести проверку последней.
Но такие пары ключей также можно использовать и для шифрования данных: для шифрования используется закрытый ключ, а для расшифровки — открытый. Однако же Bitcoin не использует алгоритмы шифрования.

Каждый вход транзакции в Bitcoin подписывается тем, кто создал эту транзакцию. Каждая транзакция в Bitcoin должна быть проверена перед тем, как поместить ее в блок. Верификация означает (помимо других процедур):

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Давайте рассмотрим полный жизненный цикл транзакции:

Эллиптическая криптография

Как мы уже с вами говорили, открытые и закрытые ключи представляют собой последовательности случайных байтов. Мы не хотим генерировать закрытый ключ, принадлежащий кому-то другому, поэтому возникает необходимость в особом алгоритме для генерации последовательностей.

Bitcoin использует эллиптические кривые для генерации секретных ключей. Эллиптические кривые — это сложная математическая концепция, которую мы не будем здесь подробно объяснять (если интересно, можете почитать об этом здесь ПРЕДУПРЕЖДЕНИЕ: очень много математики!). Кривая, используемая Bitcoin, может случайным образом выбирать число между 0 и 2²⁵⁶ (что составляет приблизительно 10⁷⁷, на заметку, атомов в видимой вселенной где-то между 10⁷⁸ и 10⁸²). Такой предел означает, что почти невозможно сгенерировать один и тот же закрытый ключ дважды.

Кроме того, Bitcoin использует (и мы будем) алгоритм ECDSA для подписи транзакций.

Base58

Теперь давайте вернемся к вышеупомянутому адресу 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. Теперь мы знаем, что это общепринятое для человека представление открытого ключа. И если мы его декодируем, он будет выглядеть примерно так (как последовательность байтов, записанных в шестнадцатеричной системе):

Bitcoin использует алгоритм Base58 для преобразования открытых ключей в читаемый человеком формат. Алгоритм очень похож на известный Base64, но он использует более короткий алфавит: некоторые буквы были удалены из алфавита, чтобы избежать гомографические атаки. В связи с этим, в этом алфавите отсутствуют следующие символы: 0 (ноль), О (заглавная буква «о»), I (заглавная «i»), l (строчная «L») а также знаки «+» и «/».

Примерно так выглядит процесс получения адреса из открытого ключа:

что такое адрес кошелька криптовалюты. Смотреть фото что такое адрес кошелька криптовалюты. Смотреть картинку что такое адрес кошелька криптовалюты. Картинка про что такое адрес кошелька криптовалюты. Фото что такое адрес кошелька криптовалюты

Следуя этой схеме, ключ, который мы привели выше, разделен на три части:

Хорошо, теперь, когда мы собрали все воедино, пришло время писать код! Я надеюсь, что сейчас все, что было непонятным прояснится.

Реализация адресов

Начнем со структуры кошелька Wallet

Теперь, создадим функцию генерации адреса:

Разберем по шагам преобразование открытого ключа в адрес Base58:

Обратите внимание, что вам не нужно подключаться к узлу Bitcoin для получения адреса. Алгоритм генерации адресов использует комбинацию алгоритмов, которые уже реализованы во многих стандартных библиотеках популярных языков программирования.

Теперь нам нужно изменить входы и выходы для использования адресов:

Теперь давайте проверим, что все работает правильно:

Отлично! Пришла пора реализовать подписи транзакций.

Реализация подписей

Транзакции необходимо подписывать, так как это единственный способ гарантии в Bitcoin надежности транзакций. Если подпись недействительна, транзакция считается недействительной и, следовательно, не может быть добавлена в цепочку.

У нас есть все для реализации подписей к транзакциям, кроме одного: данных для подписи. Какую часть транзакции мы должны подписывать? Или же необходимо подписывать сделку в целом? Выбор данных для подписи очень важен. Дело в том, что данные, которые должны быть подписаны, должны содержать информацию, которая идентифицирует данные уникальным образом. Например, нет смысла подписывать только выходные значения, потому что такая подпись не будет учитывать отправителя и получателя.

Учитывая, что транзакции разблокируют предыдущие выходы, перераспределяют их значения и блокируют новые выходы, должны быть подписаны следующие данные:

В связи с этим в Bitcoin происходит подпись не транзакции, а ее обработанной копии со входами, содержащими ScriptPubKey указанного выхода

Здесь описан подробный процесс обработки копии транзакции. Скорее всего, он устарел, но мне не удалось найти более надежный источник информации.

Все это выглядит достаточно сложным, давайте начнем писать код. А начнем мы с метода Sign :

Метод принимает закрытый ключ и ассоциативный массив предыдущих транзакций. Как уже упоминалось выше, для подписания транзакции нам необходимо получить доступ к выходам, указанным во входах транзакции, поэтому нам нужны транзакции, которые хранят эти выходы.

Давайте внимательнее рассмотрим этот метод:

Coinbase транзакции не подписаны, так как в них нет реальных выходов

Мы подписываем обработанную копию, а не всю транзакцию:

Копия будет включать все входы и выходы, а TXInput.Signature и TXInput.PubKey будут равны nil.

Затем пройдемся по каждому входу в копии:

Рассмотрим функцию верификации:

Метод довольно простой. Для начала получим копию транзакции, как в прошлом методе:

Затем нам понадобится кривая, которая используется для генерации пар ключей:

Затем пройдемся по всем входам и проверим, что они подписаны:

Эта часть идентична той, что используется в методе Sign, так как во время проверки нам нужны те же самые данные, что мы и подписывали

Теперь нам нужна функция для получения предыдущих транзакций. Поскольку для этого требуется взаимодействие со всей цепью, мы сделаем его методом Blockchain :

FindTransaction находит транзакцию по идентификатору (для этого требуется итерация по всем блокам в цепи); SignTransaction берет одну транзакцию, находит транзакции, на которые она ссылается, и подписывает ее; VerifyTransaction просто проверяет транзакцию.

Теперь нам нужно подписать и проверить транзакции. Подписывать мы будем в методе NewUTXOTransaction :

Проверка транзакции происходит до того, как она будет добавлена в блок:

Вот и все! Давайте проверим все еще раз:

У нас даже ничего не сломалось, удивительно!

Заключение

Мы реализовали почти все ключевые особенности Bitcoin и это потрясающе. А в следующей части мы наконец-таки завершим реализацию транзакций.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *