secp256k1 стосується параметрів еліптичної кривої, що використовується в криптографії з відкритим ключем Bitcoin, яка визначена в Стандартах ефективної криптографії (SEC), посилаючись на Certicom Research:Вхід за гіперпосиланням видно.。 Наразі алгоритми secp256k1 та ECDSA використовуються в біткоїні. Походячи з додатку в Bitcoin, більшість блокчейн-проєктів, таких як Ethereum, використовуються пізніше.
До появи Bitcoin secp256k1 майже ніколи не використовувався, але зараз він стає дедалі популярнішим завдяки своїм багатьом приємним функціям. Найпоширеніші криві мають стохастичну структуру, але secp256k1 побудована спеціально, невипадковим способом, що дозволяє ефективно обчислювати. При повній оптимізації він зазвичай більш ніж на 30% швидший за інші криві. Крім того, на відміну від популярних кривих NIST, константи secp256k1 обираються передбачувано, що суттєво знижує ймовірність того, що творці кривих вставлять будь-яке програмне забезпечення для бекдорів у криву.
Цифрові підписи
Основою цифрового підпису є підпис приватних ключів і верифікація публічного ключа; Підпис — це процес використання приватного ключа для підписання даних для генерації значення підпису, а верифікація підпису — це процес відновлення публічного ключа з підпису. Цифрові підписи мають три застосування в Ethereum. По-перше, підпис доводить, що власник приватного ключа означає, що власник акаунта Ethereum дозволив сплату ефіру або виконання контракту. По-друге, доказ авторизації є _незаперечним_ (незаперечним). По-третє, підпис доводить, що дані транзакції не були і не можуть бути змінені кимось після підписання транзакції.
Криптографія, що стоїть за топ-20 криптовалют
Адреса:Вхід за гіперпосиланням видно.
C# використовує BouncyCastle.Cryptography для генерації еліптичної кривої SECP256K1 пар ключів
Як показано нижче:
Приватний ключ: C66C343A5CD1A1D25B24A47D71047442EFED87DE12933779B1DAD914401776B5 Публічний ключ: 04C99FE3CDC4D0025CFA1CC0BC6401FF273ABC4C86EB912F4325D286C5162A2D21D7DF76C3E79CF4F7C2183F0E230D187B26BC8A5FCA2436EA91AC72B8EC0F4651
Код виглядає так:
C# використовує Nethereum.Signer для генерації пар ключів
Код виглядає так:
Огляд:
Посилання:
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно. |