У 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
0xC2D7CF95645D33006175B78989035C7c9> з погляду мережі, ідентичні. І при передачі коштів на будь-який із цих варіантів результат буде однаковим. Однак багато користувачів зустрічають дивний запис, коли частина адреси записана у верхньому регістрі (звичайно лише літери), а частина - у нижньому.Такий запис з'явився в стандарті EIP55 (Ethereum Improvement Protocol), коли розробники раптово згадали про те, що непогано мати спосіб перевірки коректності переданих даних, але змінювати довжину адреси, додаючи в нього контрольну суму, було вже пізно. Таким нехитрим способів на адресу вшивається контрольна сума, яка дозволяє визначити - чи була адреса спотворена під час передачі чи ні..
Так адреса
0xfb6916095ca1df60bb79ce92ce3ea74c37c5d359з перевіркою контрольної суми виглядатиме так:0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359Звичайно, такий милиця не те що дозволяє нормально вводити адресу вручну, але хоча б при передачі адреси дозволяє перевірити його цілісність.
Читайте також
Скільки можна заробити на трейдингу інвестору-початківцю. Частина друга. Депозит
Ми починаємо серію публікацій про трейдінг, щоб на практиці розібратися, скільки може заробити інвестор-початківець, використовуючи тільки прогнози, опубліковані на нашому сайті. Щоб зрозуміти, наскільки вони корисні, ми вирішили провести експеримент і змоделювати...
Періодична таблиця блокчейна
Протягом довгих років люди вважали, що Земля складається з чотирьох елементів – землі, води, вогню та повітря. Тільки 1750 року вчені з'ясували, що вогонь це результат процесу, а чи не елемент. 1869 року Дмитро Менделєєв опублікував свою періодичну таблицю хімічних елеме...
