Всем привет,
В своем стремлении к дальнейшему понять механику Bitcoin, я столкнулся с асимметричным ключевым вопросом.
Вики Bitcoin просто заявляет, что для создания частных / открытых ключей, Bitcoin применяет алгоритм подписи на эллиптических кривых Digital или ECDSA (https://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm). В разработчика Bitcoin руководство читает, что Bitcoin использует эллиптической кривой алгоритма цифровой подписи (ECDSA) с кривой secp256k1 (https://bitcoin.org/en/developer-guide#transactions).
Однако, в этой научной статье (http://link.springer.com/chapter/10.1007%2F978-3-319-12400-1_35#page-1) Она считывает, что Биткойн использует «эллиптический кривой DSA над кривой NIST Р-256».
Этот обзор кривых http://safecurves.cr.yp.to/ указывает на то, что эти две кривые выше, не считаются безопасными.
Когда я Google для «Bitcoin ECDSA "п-256" сайт: github.com»и«Bitcoin ECDSA "secp256" сайт: github.com», и возвращать результаты. Сам код не дает ответа, мне (извините, паршивая кодировщик здесь).
Итак, мои вопросы:
1. Какой ECDSA кривая используется в Bitcoin, чтобы сгенерировать закрытый ключ? Где он прочитал в коде?
2. Почему обе кривые, упомянутые на Github Bitcoin в?
3. Если какая-либо используется, является то, что умная вещь, чтобы сделать, учитывая, что оба не считаются безопасными? Не было бы лучше использовать «безопасные» кривой?
4. Можно ли использовать обе кривые между несколькими пользователями, в зависимости от предпочтений пользователя?
5. Расширение на этот вопрос, если кто-то нашел главный недостаток в алгоритме ECDSA в настоящее время используется, было бы возможно, чтобы переключиться на другой алгоритм ECDSA? (Не беспокойтесь, я не нашел главный недостаток :-))
Спасибо за прочтение.
Fevir