Jak już jesteśmy w dziale "Ciekawostki ze świata bitcoina" i kwestii kluczy publicznych, to warto przypomnieć unikalną cechę ECDSA.
Normalnie do celu zweryfikowania podpisu trzeba dostarczyć: wiadomość, podpis i klucz publiczny.
Jednak zobaczcie jak to jest w klientach lub programach portfelowych albo na pierwszej lepszej stronie do weryfikacji (np.
http://www.coinig.com). Są tam tylko miejsca na wiadomość, podpis i adres. Adres nie jest kluczem publicznym tylko haszem. Jak więc możliwe jest zweryfikowanie podpisu?
Otóż okazuje się, że w ECDSA w kryptomagiczny sposób można odzyskać klucz publiczny z podpisu. Konkretnie to odzyskuje się więcej niż jeden klucz, a w ustaleniu tego, który jest właściwy, pomaga kilka dodatkowych bitów w podpisie, umieszczonych tam w czasie podpisywania.
Przykładowo, użyłem klucza prywatnego powiązanego z adresem 19Y5NJRPqsoXHMovQFxDCKEUSs5NAxWjLD do podpisania tej wiadomości:
To jest kryptomagia.
Otrzymałem taki podpis:
H9OWsQzR6n6YAC6Y9MH2gtmEQh5jC3XPZFuI8bKtSw/XRS0C8YdHjruhme6kqUMMda4VSLrJChGi0me91cAjass=
Spróbujcie zweryfikować ten podpis na coinig.com, ale nie podawajcie mojego adresu tylko wpiszcie zamiast niego jakieś losowe znaki. Strona wyrzuci komunikat o błędzie, ale będzie potrafiła wyświetlić adres podpisującego, wyliczony z podpisu.
A tak przy okazji, to może następnym razem gdy na Niebezpieczniku znowu zacznie się udzielać osobnik z problemami psychicznymi i będzie się podszywał pod użytkowników forum, to zamiast używania długaśnych, brzydkich GnuPG zalecanych przez Piotra Koniecznego, można by użyć poręcznych sygnatur bitcoinowych, a w stopce na forum umieścić sobie swój adres.