secp256k1 odnosi się do parametrów krzywej eliptycznej używanej w kryptografii klucza publicznego Bitcoina, która jest zdefiniowana w Standardach Efektywnej Kryptografii (SEC), z odniesieniem do Certicom Research:Logowanie do linku jest widoczne.。 Obecnie algorytmy secp256k1 i ECDSA są wykorzystywane w Bitcoinie. Wywodzą się z aplikacji w Bitcoinie, a większość projektów blockchain, takich jak Ethereum, jest wykorzystywana później.
Przed Bitcoinem secp256k1 prawie nigdy nie był używany, ale obecnie zyskuje coraz większą popularność dzięki swoim licznym fajnym funkcjom. Najczęściej stosowane krzywe mają strukturę stochastyczną, ale secp256k1 jest konstruowana w specjalny, nielosowy sposób, co pozwala na efektywne obliczenia. Jeśli jest w pełni zoptymalizowana, zwykle jest ponad 30% szybsza niż inne krzywe. Ponadto, w przeciwieństwie do popularnych krzywych NIST, stałe secp256k1 są wybierane w przewidywalny sposób, co znacząco zmniejsza prawdopodobieństwo, że twórcy krzywych włożą jakiekolwiek oprogramowanie backdoor do krzywej.
Podpisy cyfrowe
Sednem podpisu cyfrowego jest podpisywanie klucza prywatnego oraz weryfikacja klucza publicznego; Podpis to proces używania klucza prywatnego do podpisu danych w celu wygenerowania wartości podpisu, a weryfikacja podpisu to proces odzyskania klucza publicznego z podpisu. Podpisy cyfrowe mają trzy zastosowania w Ethereum. Po pierwsze, podpis dowodzi, że właściciel klucza prywatnego oznacza, iż właściciel konta Ethereum autoryzował zapłatę eterem lub wykonanie kontraktu. Po drugie, dowód autoryzacji jest _niezaprzeczalny_ (niezaprzeczalny). Po trzecie, podpis dowodzi, że dane transakcji nie zostały i nie mogą być zmieniane przez nikogo po podpisaniu transakcji.
Kryptografia stojąca za 20 największymi kryptowalutami
Adres:Logowanie do linku jest widoczne.
C# wykorzystuje BouncyCastle.Cryptography do generowania krzywej eliptycznej SECP256K1 par kluczy
Jak pokazano poniżej:
Klucz prywatny: C66C343A5CD1A1D25B24A47D71047442EFED87DE12933779B1DAD914401776B5 Klucz publiczny: 04C99FE3CDC4D0025CFA1CC0BC6401FF273ABC4C86EB912F4325D286C5162A2D21D7DF76C3E79CF4F7C2183F0E230D187B26BC8A5FCA2436EA91AC72B8EC0F4651
Kod jest następujący:
C# używa Nethereum.Signer do generowania par kluczy
Kod jest następujący:
Recenzja:
Odniesienie:
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne. |