Допис
Діліться своїми знаннями.
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, щоб хешувати комбінацію прапор+відкритий ключ.
Ви знаєте відповідь?
Будь ласка, увійдіть та поділіться нею.