Формат криптовалютных адресов: Пишем правильно

Формат криптовалютных адресов: Пишем правильно

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

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

При создании bitcoin создатели уделили немалое внимание формату адресов, чтобы исключить ситуацию "ой, не туда!". Мы ведь помним, что транзакция в blockchain является не только безотзывной, но и анонимной? 

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

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

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

Под текстовой информацией подразумевалось: буквы (латинского алфавита) от A до Z в верхнем и нижнем регистре, цифры от 0 до 9, знаки пунктуации: точка, запятая, кавычки, плюс, минус, и некоторые спецсимволы - например пробел или перевод строки. Все остальное - условно считается бинарными или двоичными данными.

Так вот, чтобы передавать эти самые бинарные данные, но не "поломать интернет" хитрые программисты придумали запись base64 - систему записи только печатными символами и цифрами. 64 в этом контексте - это 64 используемых символа, A-Z, a-z, 0-9. Конечно объем данных заметно набирал в весе, но зато старые системы его спокойно глотали, думая что это текст. Были конечно и другие вариации, такие как UU-encode, но в целом схема была подобная.

Нас же интересует base64, а точнее - его вариация base58. 

Вопрос - куда делось 6 символов, и какие именно символы? из base58 исключены все символы, которые могут быть визуально сходными и создать путаницу при ручном вводе. Исключены 0 (ноль), O (заглавная латинская o), I (заглавная латинская i), l (маленькая латинская L). Так же в base64 использовались "+"(плюс) и "/" (дробная черта) - они так же были исключены. Таким образом в адресах bitcoin вы никогда не встретите указанные символы. Вот полный список символов, которые могут применяться вадресах:


123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

Но это еще не все. 

Для записи адресов bitcoin (и его наследников litecoin, dash) используется вариант base58check - данные не просто кодируются в текстовую форму, но и дополнительно получают защиту от искажения. Точнее не то чтобы защиту, но при неправильном вводе даже одного символа программное обеспечение сразу определит, что с адресом что то не так и не даст возможности отправить средства в неизвестном направлении. 

Ну и, наконец, адрес содержит так называемый NetID - дополнительную информацию, что это за адрес, и для чего он предназначен. Визуально это выражается в том, что часть bitcoin адресов начинается с символа 1 (так называемые P2PKH-адреса) а часть с "3" (так называемые P2SH-адреса). Есть еще адреса начинающиеся с "2", "m/k" - но вы их увидите только если вы разработчик и пользуетесь тестовыми сетями. 

Теперь несколько слов о Ethereum и их записи адреса.

 Разработчики эфира решили делать все по своему, не заморачиваться, а просто использовать в качестве адреса HEX-последовательность. HEX-это запись в шеснадцатиричном виде, то есть цифры от 0 до 9 и латинские буквы A, B, C, D, E, F. начинается такая запись с префикса "0x". При этом регистр не имеет никакого значения и адреса:


0xc2d7cf95645d33006175b78989035c7c9061d3f9 
0xC2D7CF95645D33006175B78989035C7c9061d3F9

Эти адреса, с точки зрения сети, идентичны. И при передаче средств на любой из этих вариантов результат будет одинаковым. Однако многие пользователи встречают странную запись, когда часть адреса записана в верхнем регистре (естественно только буквы) а часть - в нижнем. 

Такая запись появилась в стандарте EIP55 (Ethereum Improvement Protocol), когда разработчики внезапно вспомнили о том, что неплохо бы иметь способ проверки корректности переданных данных, но менять длинну адреса, добавляя в него контрольную сумму, было уже поздно. Таким нехитрым способов в адрес вшивается контрольная сумма, которая позволяет определить - был ли адрес искажен при передаче или нет. 


Так адрес 0xfb6916095ca1df60bb79ce92ce3ea74c37c5d359 с проверкой контрольной суммы будет выглядеть так: 0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359 

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



Читайте также

41192018-10-20

Криптоматы: с чем их едят и где они обитают

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

Обучение, Технологии
16752018-11-24

Blockacademy объявляет набор на курс обучения

Курс создан командой, которая разрабатывала блокчейн-решение для правительства Финляндии, а также основала Essentia и Internet of Blockchain Foundation. Можете быть уверены - вы обучаетесь у лучших представителей сферы!

Календарь Событий, Обучение

Последние статьи из раздела Обучение

Свежее видео на канале

Выбор редакции

306922020-10-30

Топ 10 крипто кошельков в 2020 году

По мере роста популярности криптовалют растет и спрос на качественные и безопасные криптовалютные кошельки.

Кошельки
277652017-12-10

Bitcoin: пирамида или нет?

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

Bitcoin
231492018-04-28

on-chain и off-chain управление: за и против

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

Blockchain
168222018-07-28

Грузинская криптокухня. Выбираем блюда

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

Право, Майнинг, Регуляторы
119882021-05-08

Какие альткоины принесут своим держателям доход в 2021 году?

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

Альткоины
89492018-05-12

Эволюция человека и денег

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

Это интересно