Пост
Поделитесь своими знаниями.
How to convert a public key to a Sui address?
I'm trying to convert a public key to a Sui address, but I'm unsure how to do this with Sui Move. I found some information about using BLAKE2b hashing function, but I'm not clear on why Sui Move doesn't provide a straightforward function for such an important task. How can I go about this conversion?
- Move CLI
Ответы
3Чтобы преобразовать открытый ключ в адрес Sui, необходимо хешировать байт флага схемы подписи, объединенный с байтами открытого ключа, с помощью функции хеширования Blake2b. Адрес Sui будет состоять из 32-байтового хеша. Функцию хеширования Blake2b можно найти в sui lib. Если вы ищете пример Rust, вы можете посмотреть его здесь.
Хотя Sui Move не предоставляет эту функцию напрямую, использование описанной функции хеширования Blake2b позволит вам получить желаемый адрес Sui. Важным шагом в этом процессе является объединение байта флага с байтами открытого ключа.
Чтобы превратить открытый ключ в адрес Sui, просто хешируйте флаг однобайтовой схемы подписи, а затем необработанные байты открытого ключа, используя Blake2b-256. Это даст вам 32-байтовый адрес Sui. Этот процесс гарантирует, что каждый адрес кодирует как тип ключа, так и содержащиеся в нем данные. Таким образом Sui различает такие ключи, как Ed25519, SECP256k1 или SECP256r1.
В Rust вы обычно используете криптографические утилиты Sui SDK, которые уже включают эту логику. Если вы создаете эту игру с нуля, используйте ящик blake2 для хеширования комбинации «флаг и открытый ключ».
Знаете ответ?
Пожалуйста, войдите в систему и поделитесь им.