Криптографические основы блокчейн-идентичности: адреса и ключи
Теперь, когда вы освоили общую структуру блокчейна, пришло время углубиться в самый маленький, но наиболее важный компонент, который обеспечивает его работу: вашу ончейн-идентичность. Эта идентичность полностью построена на криптографии и служит вашим единственным учетным данным для управления вашими цифровыми активами.
1.4 Адреса и ключи: криптографические основы блокчейн-идентичности
Приватный ключ определяет "кто может тратить деньги", а адрес определяет "где находятся деньги", формируя ядро вашей блокчейн-идентичности.
В традиционном мире ваша личность связана с удостоверениями личности, паспортами и банковскими счетами. В блокчейне нет центрального агентства по проверке личности. Вместо этого ваша личность определяется уникальной парой ключей, сгенерированных с помощью математических алгоритмов. Понимание этой пары ключей — ваш первый шаг к освоению вашего богатства и безопасности в блокчейне.
Пара ключей: источник контроля
В основе каждо го блокчейн-аккаунта лежит "пара ключей", которая включает приватный ключ и публичный ключ.
- Приватный ключ
- Суть: Это чрезвычайно большое 256-битное случайное число, похожее на строку из 256 "0" или "1", полностью случайное. Его возможные комбинации превышают общее количество атомов во Вселенной, что делает его практически невозможным для угадывания или подбора методом грубой силы.
- Функция: Это единственный источник контроля над вашими активами. Обладание приватным ключом дает вам абсолютную власть над всеми активами по соответствующему адресу. Он используется для "подписи" транзакций, доказывая сети: "Это я согласился на этот перевод".
- Железное правило: Приватный ключ всегда должен оставаться офлайн и в секрете! Раскрытие вашего приватного ключа равносильно передаче миру ключа от вашего банковского хранилища. "Не ваши ключи — не ваши монеты" — это золотое правило в мире блокчейна.
- Публичный ключ
- Генерация: Пу бличный ключ выводится из вашего приватного ключа с помощью односторонней функции, называемой "Криптография на эллиптических кривых" (ECC). Этот процесс необратим, что означает, что вы можете легко вычислить публичный ключ из приватного ключа, но не наоборот.
- Функция: Публичный ключ можно безопасно передавать кому угодно. Его основная роль — проверка подписей. Когда сеть получает транзакцию с подписью, любой может использовать публичный ключ отправителя, чтобы убедиться, что подпись действительно была сгенерирована парным приватным ключом, тем самым подтверждая легитимность транзакции.
Различные блокчейны используют различные алгоритмы эллиптических кривых, наиболее распространенными из которых являются:
- secp256k1: Широко используется в экосистемах Bitcoin и Ethereum.
- ed25519: Принят блокчейнами нового поколения, такими как Solana и Polkadot, благодаря своим характеристикам производительности и безопасности.
Адрес: "читаемое сокращение" публично го ключа
Хотя публичный ключ может быть общедоступным, он обычно представляет собой длинную и сложную строку, неудобную для использования и обмена. Поэтому "адрес" служит более коротким, удобным для пользователя представлением публичного ключа, подобно номеру вашего банковского счета или адресу электронной почты.
Пример процесса генерации адреса Ethereum:
- Начните с вашего публичного ключа.
- Выполните вычисление хеша Keccak-256 для публичного ключа.
- Возьмите последние 20 байт (т.е. 40 шестнадцатеричных символов) результата хеширования.
- Добавьте префикс
0xв начале, и это станет обычным адресом Ethereum, который мы видим. - (Необязательно) Согласно спецификации EIP-55, некоторые буквы в адресе изменяют регистр для формирования адреса с контрольной суммой. Если вы введете неверный символ, адрес не пройдет проверку контрольной суммы, что эффективно предотвращает ошибочные переводы.
Форматы адресов других сетей:
- Bitcoin: Существует несколько форматов, таких как Legacy-адреса, начинающиеся с
1, SegWit-совместимые адреса, начинающиеся с3, и нативные SegWit-адреса, начинающиеся сbc1q. - Мультичейн-стандарты: Чтобы различать адреса разных сетей во все более сложном мультичейн-мире, появились различные схемы кодирования адресов, такие как
bech32,ss58и т. д.
Почему не использовать публичный ключ напрямую в качестве адреса?
- Короче и удобнее: Хешированная строка адреса короче.
- Повышенная безопасность: Непрямое раскрытие публичного ключа может защитить от потенциальных будущих атак квантовых компьютеров. Квантовые компьютеры теоретически могут выводить приватные ключи из публичных ключей, но не могут выполнять обратное проектирование хешированных адресов. До того как вы впервые отправите транзакцию с этого адреса (в этот момент публичный ключ транслируется вместе с подписью), ваш публичный ключ скрыт, что делает активы относительно более безопасными.
Кошелек: инструмент для управления несколькими ключами
"Кошелек" — это распространенный термин в мире блокчейна, но он несколько вводит в заблуждение. Ваши криптоактивы не хранятся в кошельке, а находятся вечно в блокчейне. Кошелек — это, по сути, инструмент для управления вашими приватными и публичными ключами.
- Самостоятельный кошелек (Self-custody Wallet): Приватный ключ полностью контролируется пользователем. Примеры включают MetaMask, Phantom или аппаратные кошельки. Вы имеете 100% владение активами, но также несете 100% ответственность за сохранность приватного ключа.
- Кастодиальный кошелек (Custodial Wallet): Приватный ключ хранится сторонней платформой (например, централизованной биржей) за вас. Вам нужно только войти с именем пользователя и паролем, чтобы использовать его. Это удобно, но вы доверяете платформе сохранность ваших активов, сталкиваясь с рисками кражи платформой, ее исчезновения или регуляторных заморозок.
- HD-кошелек (Иерархический детерминированный кошелек): Это стандарт для современных кошельков. Через протоколы, такие как BIP-32/39/44, вам нужно только создать резервную копию набора из 12 или 24 слов мнемонической фразы, и кошелек может детерминированно генерировать бесчисленное множество иерархически организованных приватных ключей и адресов, используя это "семя". Это означает, что вам нужно только надежно сохранить одну мнемоническую фразу, чтобы восстановить все ваши учетные записи, что значительно упрощает управление и резервное копирование.