Публичный ключ
Открытая часть пары асимметричного ключа. В TON используется Ed25519, публичный ключ длиной 32 байта; из него детерминированно получается адрес кошелька. Может публиковаться без риска для приватного ключа.
Синонимы: public key, открытый ключ, pubkey
Публичный ключ — открытая половина криптографической пары ключей. В TON используется схема Ed25519: публичный ключ — это 32 байта (256 бит), вычисляемые из приватного ключа путём умножения на базовую точку эллиптической кривой.
Что можно делать с публичным ключом
- Проверять подписи. Любой держатель публичного ключа может проверить, что транзакция или сообщение подписаны соответствующим приватным ключом — без знания приватного ключа.
- Получить адрес кошелька. Адрес — это, по сути, хэш от состояния смарт-контракта, в которое включён публичный ключ. То есть зная публичный ключ и версию контракта (v3, v4, v5), можно вычислить все возможные адреса этого кошелька.
- Шифровать сообщения (теоретически — на практике в TON шифрование сообщений делается отдельным механизмом).
Что нельзя делать: тратить средства, подписывать транзакции, восстанавливать приватный ключ. Из публичного ключа в Ed25519 нельзя обратно получить приватный — это однонаправленная операция.
Связь с адресом
В TON адрес кошелька — это workchain:hash(StateInit), где StateInit включает код контракта и его начальные данные (среди которых — публичный ключ). Поэтому:
- Один публичный ключ → разные адреса для разных версий контракта (v3R2, v4R2, v5R1).
- Поменять контракт без смены ключа можно — это «миграция» на новую версию кошелька.
- Поменять ключ без смены seed нельзя — нужна новая мнемоника.
Когда виден
Публичный ключ становится известен сети при первой исходящей транзакции с кошелька — он включается в подпись. До первой транзакции (deploy) публичный ключ присутствует только в коде на стороне пользователя; на блокчейне виден лишь адрес.
Это даёт небольшое преимущество в приватности: адрес, никогда не отправлявший транзакции, не раскрывает свой публичный ключ. Для постквантовой безопасности это потенциально важно, но в текущей сети — скорее курьёз.
Где встречается в интерфейсах
Публичный ключ обычно скрыт от пользователя — кошельки показывают только адрес. В продвинутых сценариях (multisig, ручной деплой контракта, проверка сторонних подписей) ключ можно увидеть в Tonscan или Tonviewer как поле pubkey в данных контракта.