Какой алгоритм Phantom Wallet (Solana) использует для подписи сообщений?

Я пытаюсь понять, что происходит под капотом, когда мы вызываем window.solana.signMessage.

1 ответ

Solana использует кривую ed25519 для своей криптографии, поэтому подпись транзакции:

64-байтовая подпись ed25519 R (32 байта) и S (32 байта). С требованием, чтобы R была упакованной точкой Эдвардса не малого порядка, а S была скаляром в диапазоне 0 <= S < L. Это требование не гарантирует гибкости сигнатуры.

Фактический код называется tweetnaclх sign.detachedфункция.

Дополнительная информация в официальной документации: https://docs.solana.com/terminology#signature

Код знака транзакции Solana: https://github.com/solana-labs/solana/blob/2a5764ef79cff391da080cc19617f171109c4158/web3.js/src/transaction.ts#L522

Основной код твитнакла: https://github.com/dchest/tweetnacl-js/blob/971d653d301cff2dd694e95a099cb42d9201e922/nacl.js#L1076 .

Другие вопросы по тегам