🔐Схемы генерации ключей
Пожалуй, самое простое
Ed25519
Ed25519 был представлен в OpenSSH версии 6.5. Это реализация EdDSA с использованием кривой Twisted Edwards . Он использует криптографию с эллиптическими кривыми, которая обеспечивает лучшую безопасность и более высокую производительность по сравнению с DSA или ECDSA.
Для любых типов взаимодействия с KLYNTAR необходимо иметь пару ключей. Приватным ключом вы подписываете данные, а публичный используется для проверки подписи. В целом, принцип знакомый для всех.
В качестве самой дефолтной пары KLYNTAR использует Ed25519. Размеры ключей(как приватного так и публичного) - 32 байта. Публичный ключ в Base58 - это и есть ваш адрес на KLYNTAR.
Кстати, KLYNTAR адреса совместимы с Solana(учитывая тот факт что их дефолтные адреса-это просто публичный ключ в Base58). Более того, транзакция коммита useful.txt на мейнете Solana(с вызовом Memo программы) была произведена парой ключей KLYNTAR
Вот типичный пример пары ключей сгенерированной например через CLI или UI в Apollo
Node.js генерирует пару ключей в DER формате
1.Публичный SPKI типа. Так он имеет такой вид сразу после генерации
MCowBQYDK2VwAyEAsqv+zpsKO6vdklZ7wGcXzkpb27j+buojClSpqj78F3U=
Все ключи подобного типа имеют общие 12 байт которые незачем хранить публично. Мы их срезаем и переводим оставшиеся 32 байта в Base58. Данный процесс можно визуализировать так
2.Приватный PKCS8 типа. Аналогично, все приватные имеют общие 16 байт, однако поскольку они не публикуются, то менять их размер незачем. Мы просто применяем Base64 к такому ключу и он имеет следующий вид
MC4CAQAwBQYDK2VwBCIEIKiJ1JIhmP4NelCCV5IAgQdOSfS/t3+9EjiL4zgG1HA0
Генерация через OpenSSL
Вы так же можете повторить всё это через OpenSSL
Генерация публичного
Останется только перевести в байтовую форму публичный ключ, убрать первые 12 байт и перевести в Base58.
Подпись
Подпись стандартная и занимает 64 байт. На KLYNTAR мы используем ее в Base64.
А почему не через мнемоническую фразу
Тут как говориться coming soon. Мы также добавим позднее HD(hierarchical deterministic) возможности в кошелёк, а пока вот таким вот образом.
UPD: Начиная с версии v17.1.0 ValarDohaeris поддерживает HD адреса в KLYNTAR, а так же генерирует для вас 12 мнемо-слов. Тем не менее, функционал по генерации цепочек пар ключей и импорта фразы будет реализован в скором времени
Так же, начиная с v19.4.0 KLYNTAR получил реализацию стандарта BIP-44 и включён в официальный список BIP-44 идентификатором со значением 7331(1337 в обратном направлении). По ссылке можно увидеть мердж в главную ветку регистра
В будущих релизах и обновлениях мы так же создадим реализацию BIP-44 и для других типов ключей которые будут доступны на KLYNTAR - для мультисиг адресов и постквантовых пар ключей
Ещё пару слов
Мы так же решили не идти по пути генерации каких-то чексумм, определённых префиксов и так далее. Так же мы не стали разделять адреса на mainnet / testnet форматы ввиду бесполезности и неудобства(учитывая опыт работы с Bitcoin и форками).
Ed25519 был выбран как наилучший из всех доступных кандидатов для того чтоб стать универсальным для симбиотов, сервисов, для использования в смарт контрактах и других проектах в экосистеме.
Ссылки
Last updated