Терміни Шлях переказу Чого не можемо Питання
Mitilena Mitilena Wallet Cold crypto wallet
ONLINE · 22,000+ COINS Створити гаманецьСтворити
Як це влаштовано · шлях переказу за 7 кроків

Ми не можемо витратити ваші гроші. Зараз покажемо, де саме це в нас зривається.

Переказ у Mitilena проходить сім кроків. Ключ від ваших грошей потрібен рівно на одному з них — і він відбувається на вашому пристрої. На сервер іде вже підписаний результат, який неможливо переписати.

Підпис транзакції на пристрої Сервер бачить лише підпис Некастодіальний гаманець — ключ у вас
Сім кроків, один підпис
01Обираєте адресу відправниканічого секретного02Вказуєте одержувачапублічні дані03Рахуємо комісіюключ не потрібен04Збираємо чернеткуще не гроші05Підпис на вашому пристроїєдиний крок із ключем06На сервер іде результатпідписаний конверт07Запис в історіюбез імені та IP
Ваш пристрій
зібрали й підписали
ключ бере участь лише тут
підписана транзакція
Сервер Mitilena
передає в мережу, ключа не бачить
хеш повертається вам
Блокчейн
записав · бачить адреси, не людей
Три слова, без яких далі незрозуміло

Адреса

Це як номер рахунку. Його можна показувати кому завгодно — на нього приймають гроші. Він не каже, хто ви: у блокчейні немає графи «ім’я».

Приватний ключ

Це ваш підпис. Не пароль від особистого кабінету, а саме підпис: у кого ключ, той і розпоряджається монетами на адресі. Приватний ключ де зберігається — лише у вас; нам його не показують і в нас його немає.

Транзакція

Це доручення: «з адреси А на адресу Б переказати стільки-то». Саме по собі воно нічого не варте, поки під ним немає підпису. Мережа приймає лише підписане.

Шлях переказу

Як гаманець надсилає криптовалюту: сім кроків — і рівно один із ключем

Кожен крок — спочатку простими словами, потім один рядок «під капотом» із технікою. Новачок його пропускає, технік читає лише його. Усе звірено з кодом гаманця й бекенду — без здогадок.

Крок 01

Ви обираєте, з якої адреси платите

Ви відкриваєте список гаманців і обираєте той, з якого підуть гроші. У цей момент нічого секретного не відбувається: застосунок просто бере рядок адреси.

Де лежать ваші адреси. Без реєстрації — лише на вашому пристрої, у локальному сховищі браузера чи застосунку, поруч із балансами й налаштуваннями. Жодна адреса до нас не йде: ми навіть не знаємо, що ви є. Якщо завели акаунт (пошта, Google або Apple) — на сервер їде адреса і лише адреса, щоб список збігався на телефоні й комп’ютері. Приватний ключ в акаунт не потрапляє: для нього там просто немає місця в коді.

Під капотомСписок гаманців - JSON у localStorage під ключем walletsWithCryptoIds. При реєстрації адреса додається сокетом addSpecificWalletToUser і прив’язується до хешу користувача. В об’єкті, який іде на сервер, поля для приватного ключа немає взагалі.
Поле «З» — рядок адреси й баланс із блокчейну. Більше гаманцю на цьому кроці нічого не потрібно.
Без реєстрації
Адреси лише на вашому пристрої. Ми не знаємо, що ви є.
З акаунтом
На сервер іде адреса і лише адреса. Поля для ключа немає.
Крок 02

Ви вказуєте, кому надсилаєте

Адресу одержувача можна вставити з буфера, відсканувати QR або взяти з адресної книги. Книга будується з ваших же переказів: застосунок надсилає список ваших адрес у цій мережі й отримує назад тих, кому ви з них вже платили. Ми не збираємо «контакти» і не просимо доступ до телефонної книги.

Імена й зірочки — лише у вас. Підпис «Мамі» чи «П��стачальник» і закріплені адреси лежать у локальному сховищі пристрою — на сервері їх немає. Поки ви друкуєте, гаманець перевіряє адресу за правилами мережі: довжину, формат, контрольну суму. Друкарська помилка далі поля введення не пройде.

Під капотомСокет getAddressBook робить вибірку з таблиці txs за умовою «відправник - один із ваших адрес» і віддає до трьох останніх переказів на кожного одержувача. Мітки й обране - ключі mitilenaAddrLabels_v1 і mitilenaAddrFavs_v1 у localStorage.
Плашка «адреса жива»: баланс і активність одержувача. Це публічні дані — їх може подивитися будь-хто за будь-якою адресою.
Що показує плашка
Баланс монети, яку надсилаєте; для токена — ще й «рідну» монету мережі (інакше одержувачу немає чим платити комісію); і скільки транзакцій адреса вже бачила.
Крок 03

Рахуємо комісію — і ключ для цього не потрібен

Комісія мережі криптовалюта не фіксована: її платять мережі за те, що переказ включать у блок. Щоб показати чесне число, треба запитати мережу. Назовні йдуть ваша адреса, адреса одержувача й сума. Ні ключа, ні підпису — нічого, чим можна розпорядитися грошима.

Чому це безпечно. Це читання, а не дія: запитати «скільки зараз коштує переказ» — усе одно що глянути на табло вильотів. Жодне читання не спише монети: списання буває лише за підписом.

Три швидкості. Ви обираєте: повільніше й дешевше або швидше й дорожче. Це не наша націнка — комісія цілком іде майнерам і валідаторам мережі. Mitilena за переказ нічого не бере.

Під капотомБазові рівні комісії - сокет getFee, і ваша адреса в цей запит не передається взагалі, лише ідентифікатор мережі. Адресні дані - окремі виклики: getBtcUnspent і сусідні, getTronResources, getXrpAccountStatus, getTonFee. Ставка EVM-мереж береться у ноди методом eth_gasPrice.
Слайдер комісії: 1-4 sat/vB при розмірі 374 vBytes. Усі ці числа мережа відповідає без ключа.
Що саме запитуємо — по мережах
BTC, LTC, DOGE, BCH, ZEC - список ваших непотрачених «шматочків»: від їхньої кількості залежить розмір транзакції й комісія.
EVM-мережі: ETH, BNB, Polygon, Arbitrum, Base, AVAX, ETC - ціна газу в мережі й порядковий номер платежу.
Tron - безкоштовні ресурси адреси, bandwidth і energy: вистачає - переказ дешевший.
XRP - чи існує рахунок одержувача: неактивований потребує резерву.
TON і Solana - оцінка комісії й чи є в одержувача «кишеня» під цей токен.
Крок 04

Збираємо чернетку транзакції

Гаманець складає доручення цілком: звідки, куди, скільки, яка комісія й номер по порядку. У кожної адреси є лічильник вихідних платежів — nonce. Він потрібен, щоб одна й та сама транзакція не пройшла двічі й платежі йшли по порядку. Ми запитуємо в мережі поточне значення, включно з переказами, що ще висять у черзі.

Чернетка — це ще не гроші. На цьому кроці є лише текст доручення. Без підпису він нічого не вартий: мережа його не прийме, як банк не прийме платіжку без підпису. Його можна загубити, показати, викинути — на баланс це не впливає.

Під капотомnonce приходить сокетом getNonce; для EVM-мереж це getTransactionCount(адреса, 'pending'). В UTXO-мережах номера немає - його роль грають самі непотрачені виходи. Tron: extendExpiration на 1200 секунд.
Екран перед підписом: сума, зві��ки, куди. Поки це лише текст доручення — мережа його не прийме.
Нюанс Tron
Заготовку збирає вузол мережі, і живе вона близько хвилини — мало, щоб дістати картку й ввести PIN. Ми продовжуємо строк до 20 хвилин; зайвих прав це нам не дає.
Нюанс Solana
Перед підписом перевіряємо, що адреса — звичайний гаманець, а не акаунт смартконтракту: такі часто приходять із «подарованих» сід-фраз — баланс видно, а вивести не можна.
Крок 05
єдиний крок із ключем

Підпис транзакції. Це відбувається на вашому пристрої

Момент, заради якого все затівалося. Гаманець бере чернетку й ваш ключ і рахує підпис — прямо тут, у застосунку чи у вкладці браузера. Ключ може прийти чотирма шляхами, і всі чотири закінчуються на вашому пристрої:

1Вводите вручну — з папірця, з PDF, із менеджера паролів.
2Скануєте QR — камера, жодної мережі.
3Прикладаєте NFC-картку або стікер — ключ читається з носія, розшифровується вашим паролем і живе в пам’яті рівно до кінця підпису.
4Вводите PIN — якщо раніше дозволили зберегти ключ на пристрої.

Перевірка «а той чи це ключ». Перед надсиланням гаманець виводить адресу з уведеного ключа й порівнює з адресою відправника. Не збіглося — переказ не йде, ви бачите «Wrong private key». Підпис — математика над текстом транзакції й ключем: із підпису не можна отримати ключ назад, і годиться він рівно для однієї транзакції. Змініть суму чи одержувача хоч на символ — підпис перестане сходитися.

Про збереження під PIN — чесно. Ключ шифрується на вашому пристрої й у зашифрованому вигляді лежить у локальному сховищі. PIN — від 6 до 12 символів, можна емодзі. Ми цей PIN не знаємо і відновити не можемо: його ніде немає, окрім вашої голови.

Під капотомЗ PIN виводиться ключ шифрування через PBKDF2-SHA256, 100 000 ітерацій, випадкова сіль на кожен запис; шифрування AES-256-CBC, зберігається як сіль:iv:шифротекст у localStorage. Гейт «ключ відповідає відправнику» - SignOnline.vue, sendTrans.
Нюанс Monero
Транзакція збирається й підписується прямо в браузері локальним криптомодулем. Сервер віддає чужі публічні виходи для кільця підпису й перевіряє, чи не витрачені ваші. Для балансу Monero потрібен ключ перегляду — він лише читає, витратити ним не можна.
Якщо підписуєте офлайн
Mitilena Air підписує на пристрої без інтернету: транзакція їде туди QR-кодом, звуком або NFC і повертається вже підписаною. Кл��ч ні на секунду не з’являється на пристрої, який ходить у мережу.
Три способи підпису: на цьому пристрої, NFC-карткою або офлайн через Mitilena Air. Ключ нікуди не йде в жодному з них.
Екран підпису: приватний ключ або 12 слів, QR-код чи картка. Поле введення живе на вашому пристрої.
Збереження під PIN: зашифровано й зберігається лише в цьому браузері.
Крок 06

Що бачить сервер криптогаманця: лише результат підпису

Підпис готовий. Тепер гаманець надсилає нам підписану транзакцію — і все. Це один рядок, у якому вже лежить: від кого, кому, скільки, комісія, номер по порядку й сам підпис. Змінити в ньому хоч щось не можна — підпис зламається, і мережа відмовить. Ми не можемо ні переписати суму, ні підмінити одержувача, ні надіслати її вдруге.

Що робить сервер. Рівно одне: передає конверт у блокчейн через вузол мережі й повертає вам хеш — номер, за яким переказ можна знайти в будь-якому оглядачі. Як листоноша, який не вміє розкривати листи. Підписана транзакція нічим не прив’язана до Mitilena: її прийме будь-який вузол цієї мережі. Якщо завтра наш сервер зникне, монети лишаться вашими — ключ-то у вас.

Під капотомСокет pushSignedTxToBlockchain приймає поле txHex - підписану транзакцію - і викликає метод надсилання потрібної мережі. Приватного ключа в цьому запиті немає: для нього немає поля в жодному з форматів.
Кнопка «Надіслати транзакцію» відправляє на сервер вже підписаний конверт. Підмінити в ньому щось не можна.
Крок 07

Історія переказів — і що в ній записано

Після успішного надсилання гаманець зберігає короткий запис, щоб у вас працювали історія й адресна книга. У записі: мережа, монета, сума, адреса відправника, адреса одержувача, хеш, курс на момент надсилання й дата. Плюс код посилання-відстеження, яке можна скинути одержувачу, щоб він бачив статус.

Чого в записі немає: вашого імені, пошти, IP-адреси й ідентифікатора користувача. Рядок прив’язаний не до людини, а до адрес, які й так публічно видно в блокчейні. Тому ми й називаємо його знеособленим. При офлайн-підписі через Mitilena Air онлайн-частина про переказ нічого не зберігає: вона бачить лише готовий конверт.

Під капотомСокет saveAnonymTxDataForTrackingLinkPurposes кладе рядок у таблицю txs. Колонок під користувача там немає. Адресна книга з кроку 2 читає цю ж таблицю за вашими адресами - тому вона знає ваших одержувачів, не знаючи вас.
таблиця txs · один рядокбез колонки «користувач»
Є
мережа й монета
сума
адреса відправника
адреса одержувача
хеш транзакції
курс на момент надсилання
дата
код посилання-відстеження
Немає
ваше ім’я
пошта
IP-адреса
ідентифікатор користувача
Чого ми фізично не можемо зробити

Не «обіцяємо не робити», а не можемо — бо немає чим

Витратити ваші гроші

Чи може гаманець вкрасти крипту? Ні: для списання потрібен підпис, для підпису — ключ. Ключа в нас немає, він не передається на жодному кроці.

Заморозити чи скасувати переказ

Підписана транзакція йде в мережу й живе за її правилами. Кнопки «відкотити» немає ні в нас, ні в когось іншого.

Підмінити одержувача

Адреса зашита в підписаний конверт. Будь-яка правка ламає підпис.

Відновити ваш PIN чи ключ

Їх немає на наших серверах. Це неприємно, але це ж і є гарантія.

Показати вашу історію сторонньому як «вашу»

У базі вона прив’язана до адрес, а не до особистості.

І чого ми не обіцяємо

Теж чесно: де гаманець не допоможе

Блокчейн публічний

Ваші адреси, суми й час переказів видно всім і назавжди. Приватність дає не гаманець, а акуратність з адресами — або мережі на кшталт Monero.

Втратили ключ — втратили доступ

Ніхто, включно з нами, його не поверне. Збережіть у двох місцях одразу, краще офлайн.

Пристрій під контролем зловмисника — це його пристрій

Підпис відбувається там, де ви його запускаєте. Вірус на телефоні небезпечніший за будь-яку серверну дірку; для великих сум є NFC-картка й офлайн-підпис.

Monero потребує ключ перегляду

Він потрібен, щоб показати баланс. Він лише читає, витратити ним не можна — але знати про це варто заздалегідь.

Питання

Що запитують, дочитавши до цього місця

Чи безпечно надсилати крипту через ваш сервер, якщо все робиться на пристрої?

Так, якщо розуміти роль сервера: запитати в мережі комісію й порядковий номер, отримати курси й передати готовий конверт далі. Усе це публічні операції, ключ для них не потрібен. Частину вузлів мережі ми тримаємо самі, щоб не залежати від чужих сервісів.

Ви бачите мій баланс?

Баланс будь-якої адреси бачить хто завгодно — це відкритий запис у блокчейні. Питання лише в тому, чи пов’язана адреса з вами. Без реєстрації ми навіть списку ваших адрес не знаємо: він лежить на вашому пристрої.

Що якщо ви підміните адресу одержувача, поки я не бачу?

Адреса потрапляє всередину підпису. Підмінена після підпису — зламає його, і мережа відмовить. А до підпису адреса перед вами на екрані: звіряйте останні символи — звичка на все життя в крипті.

Чому комісія весь час різна?

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

Переказ висить без підтвердження. Що робити?

Він вже в мережі — у нього є хеш, і його видно в оглядачі. В EVM-мережах застряглий переказ можна перебити: надіслати новий із тим самим порядковим номером і більшою комісією.

Що таке nonce простими словами?

Порядковий номер платежу з вашої адреси. Перший переказ — нуль, другий — один і так далі. Не дає провести один і той самий платіж двічі.

Чим це відрізняється від біржі?

На біржі монети записані на рахунок компанії, а ви — рядок у її базі: можуть заморозити, попросити документи, обмежити виведення. Тут монети записані на вашу адресу в блокчейні, а ключ — у вас.

А якщо я втрачу телефон?

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

Перевірте самі: шлях із семи кроків, ключ — лише у вас

30 секунд, без реєстрації й паспорта · support@mitilena.com · @mitilena_wallet
Створити безкоштовний гаманець