Voted Coins
follow us on twitter . like us on facebook . follow us on instagram . subscribe to our youtube channel . announcements on telegram channel . ask urgent question ONLY . Subscribe to our reddit . Altcoins Talks Shop Shop


This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here

Author Topic: Формат криптовалютных адресов: Пишем правильно  (Read 616 times)

Offline resistens

  • Legendary
  • *
  • Activity: 1266
  • points:
    900
  • Karma: 9
  • Trade Count: (0)
  • Referrals: 0
  • Last Active: March 04, 2019, 02:48:48 PM
    • View Profile

  • Total Badges: 14
    Badges: (View All)
    10 Posts First Post Fifth year Anniversary
В 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
Конечно, такой костыль не то чтобы позволяет нормально вводить адрес вручную, но хотя бы при передаче адреса позволяет проверить его целостность.



https://forknews.io/education/001754-format-kriptovalyutnyh-ad.html
■□■□■TARTARIA.CLOUD■□■□■ TELEGRAM, YOUTUBE, FACEBOOK, VK, НАШ ФОРУМ, ОСНОВНОЙ САЙТ
От 77% годовых гарантированно | Ежедневные выплаты | 5% и 3% от дохода реферала | Контракт 4 года

Altcoins Talks - Cryptocurrency Forum


This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here


 

ETH & ERC20 Tokens Donations: 0x2143F7146F0AadC0F9d85ea98F23273Da0e002Ab
BNB & BEP20 Tokens Donations: 0xcbDAB774B5659cB905d4db5487F9e2057b96147F
BTC Donations: bc1qjf99wr3dz9jn9fr43q28x0r50zeyxewcq8swng
BTC Tips for Moderators: 1Pz1S3d4Aiq7QE4m3MmuoUPEvKaAYbZRoG
Powered by SMFPacks Social Login Mod