Перейти к содержимому

Eth адрес что это

  • автор:

Адреса в Ethereum

Адрес аккаунта с самым большим количеством Ether

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

Адрес

Адрес идентифицирует аккаунт в сети Ethereum и имеет следующий вид:

160 бит | 20 байт | 40 символов (hexadecimal)

Для шестнадцатеричного представления (далее hexadecimal) каждый байт кодируется двумя символами, поэтому для определения длины в байтах нужно количество символов в строке поделить на два. При подсчёте длины строки мы не учитываем префикс 0х перед адресом, так как он несёт лишь информацию о том, что строка справа представляет собой hexadecimal-последовательность.

Кстати, адрес в примере выше, это реальный адрес из главной сети Ethereum. На момент написания статьи стостояние его аккаунта выглядело так:

Произвольный аккаунт из сети Ethereum

Перейдём к описанию процесса формирования адреса.

Формирование адреса

Прежде чем приступить к рассмотрению процесса формирования адреса, необходимо уточнить, что в сети Ethereum существуют два типа аккаунта:

Externally-owned account (EOA)

Поскольку назначение этих аккаунтов отличается, то и адреса к ним формируются по-разному. Приведу основные различия этих аккаунтов:

Externally-owned account (EOA)

Contract account

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

Не обладает приватным ключом, управляется логикой кода смарт-контракта, который задеплоен по этому адресу.

Инициатором транзакций в сети Ethereum может быть только EOA.

Контракты тоже могут осуществлять транзакции, но первоначальным инициатором всё равно будет EOA.

Создание EOA абсолютно бесплатное.

Списывается пошлина в виде Gas за storage, которое используется контрактом.

Далее мы рассмотрим отдельно как формируется адрес для Externally-owned account и для Contract account.

A. Формирование адреса для EOA

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

Разберём процесс более детально.

Шаг 1. Генерация приватного ключа.

Пример приватного ключа:

Длина приватного ключа:

256 бит | 32 байта | 64 символа (hexadecimal)

Шаг 2. Генерация публичного ключа.

На основании приватного ключа при помощи алгоритма ECDSA (Elliptic Curve Digital Signature Algorithm) генерируется публичный ключ.

Пример публичного ключа:

Длина публичного ключа:

512 бит | 64 байта | 128 символов (hexadecimal)

Шаг 3. Вычисляем хэш публичного ключа

Используя хэш-функцию Keccak-256 получаем хэш публичного ключа:

256 бит | 32 байта | 64 символа (hexadecimal)

Шаг 4. Берём последние 20 байт от хэша публичного ключа

Отсчитываем последние 40 символов от хэша, который был получен на предыдущем шаге:

Эти 20 байт и будут нашим адресом.

После рассмотрения всех шагов, попробуем сгенерировать адрес самостоятельно.

Практический пример получения адреса для EOA

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

Готово. Мы получили как ключи, так и сам адрес. Единственное, вызов команды keyGenerate не отображает хэш публичного ключа, так как хэш является промежуточным шагом для получения адреса. Но для наглядности я покажу как мы можем вычислить хэш самостоятельно командой keccak256 на вход которой мы подадим публичный ключ:

Видим, что последние 40 символов хэша действительно отражают адрес нашего аккаунта:

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

Отлично, мы познакомились с получением адреса для Externally-owned account, и теперь пришло время взглянуть на получение адреса для Contract account.

B. Формирование адреса для Contract account

Как было отмечено выше, у Contract account нет приватного ключа, поэтому его адрес формируется из адреса EOA-аккаунта, с которого он был создан, и поля nonce этого аккаунта. Про поле nonce я рассказывал в одной из своих предыдущих статей.

Если изобразить функцию создания адреса на псевдокоде, то она будет выглядеть следующим образом:

Разберём детально по шагам, что же здесь происходит:

Берется адреc EOA аккаунта, который отправил транзакцию на создание контракта

Берётся поле nonce из транзакции на создание контракта

Адрес отправителя и nonce сериализуются при помощи RLP-кодека

Вычисляется Keccak-256 хэш от сериализованного значения

Последние 160 бит хэша и будут адресом нашего контракта

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

Одно важное уточнение. У созданного аккаунта смарт-контракта тоже есть поле nonce , но в отличие от EOA аккаунта, оно инициализируется единицей, тогда как у EOA поле nonce инициализируется нулём. Изначально у обеих типов аккаунтов поле nonce инициализировалось нулём, но затем были внесены правки.

Помимо адресов, созданных участниками блокчейна, существуют ещё и служебные адреса, которые принадлежат самому блокчейну. Давайте рассмотрим парочку таких адресов.

Служебные адреса

Нулевой адрес 0x0000000000000000000000000000000000000000

Выше я упомянул, что контракт создаётся при помощи транзакции. У любой транзакции должен быть отправитель и получатель, и если с отправителем всё более менее понятно, то не совсем понятен адрес получателя при создании контракта. Если вдуматься, то на момент отправки такой транзакции блокчейн ещё ничего не знает о новом контракте, а соответсвенно в сети нет его адреса. На какой же адрес отправляется эта транзакция? Ответ прост — мы либо вообще не указываем в транзакции поле отправителя, либо явно указываем to: null

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

Из ранней документации Solidity:

If the target account is the zero-account (the account with the address 0 ), the transaction creates a new contract.

После версии v0.5.0 Solidity:

If the target account is not set (the transaction does not have a recipient or the recipient is set to null ), the transaction creates a new contract.

В официальной спецификации Ethereum, так называемой Yellow Paper, просто говорится про RLP empty byte sequence:

The address hash Tt is slightly different: it is either a 20-byte address hash or, in the case of being a contract creation transaction (and thus formally equal to ∅), it is the RLP empty byte sequence and thus the member of B0

Примечательно, что Gavin Wood, который собственно и написал Yellow Paper, в своей книге Mastering Ethereum указал адрес создания контракта как 0x0 :

Contract creation transactions are sent to a special destination address called the zero address; the to field in a contract registration transaction contains the address 0x0.

После обсуждений со @splix я решил самостоятельно вручную создать тело транзакции с контрактом в поле data и отправить её сначала на адрес со всеми нулями, а затем на адрес null . Так вот контракт создался именно когда в поле to был null , или поля to вообще не было. В случае с нулями, транзакция просто уйдёт на нулевой адрес, а контракт не будет создан. Если в поле value при создании контракта ещё и были Ether, то они просто пополнят баланс нулевого адреса.

Вот так выглядит нулевой адрес:

Нулевой адрес

Если присмотреться, то можно обнаружить, что на нулевом адресе лежит довольно крупная сумма Ether. На момент написания статьи, сумма была эквивалентна 21 миллионам долларов США. Откуда на нулевом адреса эти средства? Как ни странно, это навсегда замороженные средства, которые были намеренно или по ошибке отправлены на нулевой адрес. Ошибиться мог как человек, забывший указать поле адреса-получателя, и оно было интерпретировано как нулевой адрес, так и программист, который неверно инициализировал адрес получателя. Выше мы и сами видели один из примеров ошибочной отправки Ether на нулевой адрес при попытке создания смарт-контракта. Почитать подробнее про причину появления средств на нулевом адресе можно здесь и здесь. Так же нулевой адрес можно использовать и для намеренного уничтожения Ether, и таких адресов достаточно много.

Адреса для уничтожения Ether

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

Burn адрес. Адрес для уничтожения Ether.

Окончание адреса говорит само за себя. Средства, отправленные на этот адрес будут навсегда утеряны. На самом деле токены и Ether уничтожаются не просто так, для этого есть множество экономических причин, одна из которых — сократить общее предложение, тем самым повысив спрос.

Кстати, у нулевого и dEaD аккаунтов, а так же у других Burn адресов, нет приватного ключа, поэтому никто не имеет к ним доступ. Если же вам всё же удастся подобрать приватный ключ к ним, то технически вам ничто не мешает распоряжаться средствами на этих аккаунтах.

В заключение я бы хотел коснуться хэш-функции Keccak-256 в Ethereum.

Keccak-256 vs SHA-3

Стандарт SHA-3 реализован по алгоритму хэширования Keccak-256. Но между реализацией алгоритма Keccak-256 в стандарте SHA-3 и в сети Ethereum есть различия.

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

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

Почему команда Ethereum решила написать свою реализацию алгоритма Keccak-256? Для этого обратимся к истории создания этих двух реализаций.

Алгоритм хэширования Keccak-256 стал победителем среди алгоритмов претендующих на стандарт семейства Secure Hash Algorithm (SHA), и был стандартизован как FIPS-202 SHA-3 standard в 2015 году. Уже после завершения процесса стандартизации, и перед самым опубликованием стандарта, National Institute of Standards and Technology (NIST) решил скорректировать некоторые параметры алгоритма, предположительно для улучшения его эффективности.

Всё это произошло в то же самое время, когда Эдвард Сноуден обнародовал документы, которые пролили свет на тот факт, что National Security Agency (NSA) могло повлиять на NIST, чтобы намеренно ослабить стандарт генератора случайных чисел Dual_EC_DRBG, фактически поместив бэкдор в стандартный генератор случайных чисел.

После огласки, выход реализации стандарта SHA-3 пришлось отложить. Ethereum в этот момент был ещё на стадии разработки. Чтобы не останавливать разработку, а так же иметь более прозрачную реализацию алгоритма, команда Ethereum решила самостоятельно реализовать оригинальный алгоритм Keccak-256.

Более подробно про SHA3 и Keccak-256 можно почитать здесь.

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

В статье была допущена ошибка при описании адреса создания контракта. Статья была обновлена. Спасибо пользователю @splix за то что обратил на это внимание.

Как узнать адрес Эфириум-кошелька?

Эфириум кошелек и адрес

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

Адрес кошелька Ethereum — что это и как выглядит

Как выглядит адрес Эфириум-кошелька

Криптовалюта Эфириум считается главным конкурентом Биткоина и борется с ним за лидерство в мире виртуальных валют. На 24 августа 2018 года эта монета находится на 2-м месте по капитализации с показателем 28,2 миллиона долларов. Что касается курсовой цены, она (как и предыдущий параметр) значительно отстаёт от стоимости BTC и составляет 278 долларов. Несмотря на это, Эфириум перспективен и на фоне падения цены даже более привлекателен для инвесторов. Чтобы внести эту криптовалюту на бумажник, необходимо получить адрес хранилища — публичный идентификатор (специальный номер), о котором упоминалось выше.

Адрес кошелька Ethereum — набор символов, который создается перед проведением транзакции и предназначен для решения различных задач:

  • Получение криптовалюты от других пользователей.
  • Личное пополнение кошелька.
  • Перевод денег, заработанных на майнинге или с помощью кранов.
  • Оплата товаров и услуг.

Итак, как выглядит номер кошелька Эфириум? Люди, которые не знают особенностей бумажника, нередко путают его номер с идентификатором для других криптовалют. Адрес для хранилища Ethereum начинается с нуля и состоит из определенного числа символов (от 40 до 44). В состав кода входят цифры и латинские буквы.

Как узнать номер кошелька Эфириум — главные особенности

Отображение адреса в Эфириум-кошельке

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

    Устанавливаем хранилище для криптовалюты Эфириум (десктопную или онлайн-версию).

Как узнать адрес Эфириум-кошелька для разных видов хранилищ — краткий обзор

Эфириум-кошелек MyEtherWallet

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

Общий принцип получения Ethereum на кошелек имеет следующий вид:

    Входим в бумажник Эфира.

    Входит в свой бумажник под личными данными.

Теперь рассмотрим, как узнать адрес кошелька Эфириум для наиболее популярных бумажников:

    Онлайн-кошелек myetherwallet.com. Для начала входим на указанный сайт, меняем язык интерфейса и создаем новый бумажник. На этапе регистрации придумываем надежный пароль и сохраняем файл в нескольких местах (на выносном носителе и ПК). Также копируем или распечатываем приватный ключ, применяемый для авторизации в кошельке. После завершения регистрации система предложит определиться со способом входа — с помощью личного ключа или Keystore. Чтобы увидеть адрес кошелька, авторизуемся в бумажнике под личными данными, после чего с правой стороны видим необходимый номер. Его легко распознать по первой цифре «0» и количеству элементов (сколько символов в адресе кошелька Эфириум, упоминалось выше). Идентификатор рекомендуется переписать или скопировать в отдельный файл для дальнейшего применения.

Ошибки в адресе кошелька Ethereum

Парень ошибся и отправил деньги не туда

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

У Биткоина также имеется первичный адрес кошелька, на который пользователи отправляют монеты намеренно, чтобы отблагодарить создателя виртуальной монеты. Считается, что первый идентификатор Bitcoin принадлежит бумажнику Сатоши Накамото. Что касается «нулевого» адреса Ethereum, на него также поступают деньги, но не в знак благодарности В. Бутерину, а по причине ошибки.

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

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

Так, один владелец криптовалюты пишет, что по ошибке отправил на «нулевой» адрес 1493 монет. Если говорить в целом, за весь период существования Эфириума (с 2015 года), на идентификатор с сорока нулями после «0x» проведено больше 750 операций, а общая сумма на бумажнике составляет больше 7 тысяч монет. Сюда же попадают токены ERC20, многие из которых имеют вид бонусных. Известно, что на начальном этапе на «нулевой» адрес часто отправлялся Эфириум в количестве от 100 монет и более.

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

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

Что такое ETH Address и зачем он нужен – база знаний для криптоновичков

Большинство пользователей, только входящих в мир криптовалют, задают вопрос, что это такое ETH Address и зачем он нужен (продвинутые читатели, не обессудьте – есть люди, которые до вчерашнего дня и не догадывались о существовании других криптомонет, кроме биткоина!).

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

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

Получить ETH Wallet address, может только владелец криптокошелька. Услуга предоставляется совершенно бесплатно.

Что нужно знать криптоэнтузиасту

По своей сути, указанный ETH Address, это не кошелек, не ваш аккаунт, не содержит информации о наличии всех средств на криптокошельке.

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

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

В программе клиента есть специальная кнопка, которая генерирует автоматически адрес.

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

Ошибка в адресе, как исправить

Каждый идентификатор имеет проверочный код, который предназначен для проверки написания точности адреса.

Если вы некорректно или ошибочно ввели адрес, транзакция будет отменена автоматически.

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

В техническом исполнении идентификатор представлен как математический код хеша открытого ключа ECDSA.

Зная определённые математические методики, можно «подписать» сведения при помощи наличия секретного ключа, при этом можно удостовериться в подлинности существования подлинности указанной подписи.

Простыми словами – имея секретный ключ (особый хэш) к открытому ключу (eth address) пользователь может управлять средствами на кошельке.

Об онлайн или оффлайн-адресах криптокошельках

Создать ETH Address можно двумя способами, при помощи веб-версии кошелька или скачав на мобильное устройство софт.

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

В настоящее время можно скачать приложения кошельков для ПК, в том числе для популярной ОС — Виндовс.

Кроме этого, есть мобильные версии для Андроид и для iOS.

Рекомендуем использовать официальные клиенты ПО:

  • ПО Ethereum для Виндовс, можно скачать на GitHub.com и на официальном сайте Ethereum org;
  • Your ETH address для версий мобильных гаджетов на основе ОС Андроид и iOS;
  • Мультивалютная версия Jaxx.

Обратите внимание, что официальный клиент ПО для Виндовс занимает 2Гб свободной памяти на жёстком диске.

Такой большой объем обусловлен большими размерами алгоритма Эфириума.

Необходимо знать также одну техническую сторону работы Эфириум кошелька.

Если биткоины хранятся на специально выделенных серверах, то эфириум — прямо на вашем ПК или мобильном устройстве.

Реквизиты адресной строки

Адрес ETH будет иметь набор букв и цифр в количестве 40-44 значения, включающие арабские цифры и латинские буквы.

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

Примерный вид реквизита ETH будет выглядеть так:

Заключение

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

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

Проводите инвестиции безопасно и уверенно, используя только надежные сервисы.

Receiving Ethereum

Receiving Ethereum

Learn how to quickly and easily create a crypto wallet. Understand the different wallet types and their respective pros & cons.

How do I create a crypto wallet?

How do I create a crypto wallet?

Learn how to quickly and easily create a crypto wallet. Understand the different wallet types and their respective pros & cons.

What are crypto debit cards?

What are crypto debit cards?

Crypto debit cards make it possible to spend crypto anywhere credit cards are accepted.

What are crypto debit cards?

What are crypto debit cards?

Crypto debit cards make it possible to spend crypto anywhere credit cards are accepted.

Безопасность цифровых активов

Безопасность цифровых активов

MОбеспечьте безопасность своих цифровых активов с помощью этих простых советов

Безопасность цифровых активов

Безопасность цифровых активов

MОбеспечьте безопасность своих цифровых активов с помощью этих простых советов

What's decentralized finance?

What's decentralized finance?

Learn what makes decentralized finance (DeFi) apps work and how they compare to traditional financial products.

What's decentralized finance?

What's decentralized finance?

Learn what makes decentralized finance (DeFi) apps work and how they compare to traditional financial products.

Bitcoin.com в вашем почтовом ящике

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

Wallets

Начните безопасно инвестировать с Bitcoin.com Wallet

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

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

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