February 5

Где ваши токены

Это фундаментальное понимание того, как работает криптовалюта. Сейчас объясню подробно.

Где на самом деле находятся ваши токены

Короткий ответ: Токены НИКОГДА не находятся в кошельке. Они всегда находятся в блокчейне.

Кошелек хранит только приватные ключи, которые дают право управлять этими токенами.


Как это работает: детальная схема

1. Основные понятия

Blockchain (блокчейн):

  • Распределенная база данных (ledger)
  • Хранит все транзакции и балансы
  • Копируется на тысячах узлов (nodes) по всему миру
  • Публично доступен для чтения

Address (адрес):

  • Уникальный идентификатор в блокчейне
  • Например: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
  • Аналогия: номер банковского счета
  • Публичный, можно показывать всем

Private Key (приватный ключ):

  • 256-битное случайное число
  • Математически связан с адресом
  • Доказывает право владения адресом
  • НИКОМУ нельзя показывать
  • Аналогия: пароль от банковского счета

Public Key (публичный ключ):

  • Получается из приватного ключа через криптографическую функцию
  • Из публичного ключа генерируется адрес
  • Можно публиковать безопасно

Seed Phrase (сид-фраза / мнемоническая фраза):

  • 12 или 24 слова
  • Человекочитаемое представление приватного ключа
  • Из seed-фразы генерируются все приватные ключи
  • Стандарт BIP-39

Схема хранения: что где находится

В блокчейне хранится:

Блокчейн Ethereum (пример):
├─ Адрес: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
│  ├─ Баланс ETH: 2.5 ETH
│  ├─ Токены:
│  │  ├─ USDT: 1000
│  │  └─ UNI: 50
│  └─ История транзакций
│
├─ Адрес: 0x8B3192f2F7E1B48a9d6F121F07E7d8A6a4b12345
│  ├─ Баланс ETH: 0.1 ETH
│  └─ ...
│
└─ ... миллионы других адресов

Важно: Блокчейн просто говорит "на адресе X находится Y токенов". Но он НЕ знает, кто владеет этим адресом.


В кошельке (Trust Wallet, Trezor) хранится:

Кошелек Trust Wallet или Trezor:
├─ Seed-фраза (12-24 слова)
│  └─ Из нее генерируются:
│     ├─ Private Key 1 → Public Key 1 → Address 1
│     ├─ Private Key 2 → Public Key 2 → Address 2
│     └─ Private Key N → Public Key N → Address N
│
└─ Больше НИЧЕГО
   (никаких токенов, никаких балансов)

Детальный процесс: как это работает

Создание кошелька

Шаг 1: Генерация энтропии

Кошелек генерирует случайное число (256 бит)
↓
Пример: 10101100011010...01011 (256 бит)

Шаг 2: Преобразование в seed-фразу (BIP-39)

256 бит → 24 слова из списка 2048 слов
↓
abandon ability able about above absent absorb abstract...

Шаг 3: Генерация приватного ключа (BIP-32/44)

Seed-фраза + путь деривации (m/44'/60'/0'/0/0)
↓
Private Key: 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80

Шаг 4: Получение публичного ключа (ECDSA)

Private Key → (elliptic curve cryptography) → Public Key
↓
Public Key: 0x04f39fd6e51aad88f6f4ce6ab8827279cfffb92266e3e1e1ba...

Шаг 5: Получение адреса

Public Key → (Keccak-256 hash) → Address
↓
Address: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb

Просмотр баланса

Что происходит когда вы открываете Trust Wallet:

1. Кошелек читает вашу seed-фразу/приватный ключ
   ↓
2. Генерирует адреса из приватных ключей
   ↓
3. Делает запрос к блокчейну (через RPC node):
   "Какой баланс на адресе 0x742d35Cc...?"
   ↓
4. Блокчейн отвечает: "2.5 ETH, 1000 USDT"
   ↓
5. Кошелек отображает баланс в интерфейсе

Важно: Кошелек просто смотрит на блокчейн. Токены остаются в блокчейне.


Отправка токенов (транзакция)

Что происходит когда вы отправляете 1 ETH:

1. Вы нажимаете "Отправить 1 ETH на адрес 0xABC..."
   ↓
2. Кошелек создает транзакцию:
   {
     from: "0x742d35Cc...", 
     to: "0xABC...",
     value: 1 ETH,
     gas: 21000,
     nonce: 5
   }
   ↓
3. Кошелек ПОДПИСЫВАЕТ транзакцию вашим приватным ключом:
   signature = sign(transaction, private_key)
   
   Это доказывает: "Я владелец адреса 0x742d35Cc..."
   ↓
4. Подписанная транзакция отправляется в блокчейн (через RPC node)
   ↓
5. Майнеры/валидаторы проверяют подпись:
   "Эта подпись действительно создана приватным ключом от 0x742d35Cc...?"
   ↓
6. Если подпись верна → транзакция включается в блок
   ↓
7. Блокчейн обновляет балансы:
   - 0x742d35Cc... : 2.5 ETH → 1.5 ETH
   - 0xABC...      : 0.0 ETH → 1.0 ETH

Разница между Hot Wallet и Cold Wallet

Hot Wallet (Trust Wallet, MetaMask, Rabby)

Где хранится приватный ключ:

Компьютер/телефон:
├─ Операционная система
├─ Файловая система
└─ Приложение кошелька
   └─ Зашифрованный файл с приватным ключом
      (шифруется паролем, который вы вводите)

Уязвимости:

  • Вирусы/malware могут украсть ключ
  • Хакеры могут взломать компьютер
  • Keylogger может перехватить пароль
  • Фишинговые сайты могут обманом получить seed-фразу

Где токены: В блокчейне (как всегда)


Cold Wallet (Trezor, Ledger)

Где хранится приватный ключ:

Hardware Wallet (физическое устройство):
├─ Защищенный чип (Secure Element)
│  └─ Приватный ключ НИКОГДА не покидает устройство
│
└─ PIN-код для доступа к устройству

Как работает подпись транзакции:

1. Компьютер (Trust Wallet/Sparrow):
   "Нужно подписать транзакцию: отправить 1 BTC на адрес..."
   ↓
2. Компьютер отправляет неподписанную транзакцию в Trezor
   ↓
3. Trezor:
   - Показывает детали транзакции на экране
   - "Отправить 1 BTC на bc1q...?"
   - Вы подтверждаете кнопкой на устройстве
   ↓
4. Trezor ВНУТРИ себя подписывает транзакцию приватным ключом
   (ключ НЕ покидает устройство)
   ↓
5. Trezor отправляет ТОЛЬКО подпись обратно в компьютер
   ↓
6. Компьютер отправляет подписанную транзакцию в блокчейн

Критическое отличие:

  • Hot wallet: приватный ключ на компьютере → может быть украден
  • Cold wallet: приватный ключ в защищенном чипе → физически изолирован

Где токены: В блокчейне (как всегда!)


Важное уточнение: что значит "владеть криптовалютой"

Владеть криптовалютой = владеть приватным ключом

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

Блокчейн говорит: "На адресе X есть 10 BTC"
Приватный ключ доказывает: "Я могу управлять адресом X"

Аналогия:

  • Блокчейн = банковская система
  • Адрес = номер счета (публичный)
  • Баланс = деньги на счету (хранятся в банке)
  • Приватный ключ = пароль от онлайн-банкинга
  • Кошелек = приложение для доступа к банку

Вы не носите деньги с собой — вы носите пароль от счета.


Практические последствия

1. Потеря кошелька

Сломался телефон с Trust Wallet:

Телефон физически уничтожен
↓
НО: приватный ключ (seed-фраза) записан на бумаге
↓
Скачиваете Trust Wallet на новый телефон
↓
Вводите seed-фразу
↓
Кошелек генерирует те же приватные ключи
↓
Получаете доступ к тем же адресам
↓
Блокчейн показывает те же балансы

Вывод: Токены никуда не делись. Они всегда были в блокчейне.


2. Кража seed-фразы

Хакер украл вашу seed-фразу:

Хакер вводит seed-фразу в свой кошелек
↓
Его кошелек генерирует те же приватные ключи
↓
Те же адреса
↓
Он видит ваш баланс в блокчейне
↓
Он может подписывать транзакции
↓
Он переводит все токены на свой адрес

Вывод: Кто владеет seed-фразой — владеет токенами.


3. Множественные кошельки

Один адрес в разных кошельках:

У вас seed-фраза: "abandon ability able..."
↓
Вводите ее в Trust Wallet → видите баланс 10 ETH
↓
Вводите ту же seed-фразу в MetaMask → видите тот же баланс 10 ETH
↓
Отправляете 1 ETH через Trust Wallet
↓
MetaMask тут же показывает 9 ETH

Почему: Оба кошелька просто смотрят на один и тот же адрес в блокчейне.


Терминология резюме

Термин Что это Где хранится Токены/монеты Ваши активы В блокчейне (на адресе) Address Публичный идентификатор В блокчейне Private Key Доказательство владения В кошельке Seed Phrase Корень всех ключей В кошельке (или на бумаге) Public Key Промежуточное звено Генерируется из приватного Blockchain Распределенная БД На тысячах узлов Wallet (кошелек) Менеджер ключей На устройстве Transaction Запись в блокчейне В блокчейне Signature Криптографическое доказательство Создается кошельком


Итоговая схема

                    БЛОКЧЕЙН (ПУБЛИЧНЫЙ)
┌─────────────────────────────────────────────────────┐
│  Адрес: 0x742d35Cc...                               │
│  ├─ Баланс: 10 ETH                                  │
│  ├─ Токены: 1000 USDT, 50 UNI                       │
│  └─ История всех транзакций                         │
│                                                     │
│  (Доступен всем для чтения)                         │
│  (Изменить могут только владельцы приватных ключей) │
└─────────────────────────────────────────────────────┘
                           ↑
                           │ Запрос баланса
                           │ Отправка транзакций
                           │
┌──────────────────────────┴──────────────────────────┐
│               ВАШИ КОШЕЛЬКИ                         │
│                                                     │
│  Hot Wallet (Trust Wallet):                         │
│  └─ Приватный ключ (зашифрован)                     │
│     └─ Генерирует адрес 0x742d35Cc...               │
│                                                     │
│  Cold Wallet (Trezor):                              │
│  └─ Приватный ключ (в защищенном чипе)              │
│     └─ Генерирует тот же адрес 0x742d35Cc...        │
│                                                     │
│  (Хранят только КЛЮЧИ, не токены)                   │
└─────────────────────────────────────────────────────┘

Критически важно понимать

  1. Токены ВСЕГДА в блокчейне, никогда в кошельке
  2. Кошелек = хранилище ключей, не токенов
  3. Seed-фраза = мастер-ключ ко всем адресам
  4. Кто владеет seed-фразой = владеет токенами
  5. Потеря seed-фразы = потеря доступа навсегда
  6. Утечка seed-фразы = потеря токенов навсегда

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