Electrum 2.0 wprowadza ulepszony sposób serializacji transakcji. Ta nowa metoda pozwala użytkownikom udostępniać niepodpisane lub częściowo podpisane transakcje innym sygnatariuszom lub przechowywać je w urządzeniach typu cold storage.
Główna zmiana w tym formacie serializacji dotyczy danych wejściowych transakcji. W szczególności Electrum rozszerza rozszerzenie pubkey
aby uwzględnić dodatkowe informacje. Rozszerzenie to umożliwia portfelowi obsługę transakcji, które nie są jeszcze w pełni podpisane, ułatwiając zarządzanie konfiguracjami z wieloma podpisami i operacjami przechowywania na zimno.
Rozszerzone klucze publiczne
Standardowe klucze publiczne Bitcoin zaczynają się od 0x02
, 0x03
lub 0x04
. Są to normalne skompresowane lub nieskompresowane klucze publiczne używane w transakcjach Bitcoin.
Rozszerzone klucze publiczne zaczynają się od 0xFF
, 0xFE
lub 0xFD
. Electrum wykorzystuje je, aby zapewnić więcej informacji o pochodzeniu klucza i ścieżce jego wyprowadzania.
Istnieją trzy rodzaje rozszerzonych kluczy publicznych:
- Klucze zaczynające się od
0xFF
są rozszerzonymi kluczami publicznymi BIP32 (xpubs) wraz z ich ścieżką derywacji. - Klucze zaczynające się od
0xFE
wykorzystują starszą metodę derywacji Electrum, łącząc główny klucz publiczny i jego ścieżkę derywacji. - Klucze zaczynające się od
0xFD
reprezentują nieznane klucze publiczne, w których znany jest tylko adres Bitcoin.
Rodzaje
- Pochodna BIP32 (zaczyna się od
0xFF
): Ten format składa się z rozszerzonego klucza publicznego (xpub) o długości 78 bajtów, po którym następuje ścieżka derywacji BIP32. Ścieżka derywacji jest reprezentowana jako seria 4-bajtowych liczb całkowitych, przy czym całkowita długość jest dwukrotnie większa od liczby kroków derywacji. - Legacy Electrum Derivation (zaczyna się od
0xFE
): Ten starszy format wykorzystuje główny klucz publiczny (mpk) o długości 64 bajtów, po którym następuje 4-bajtowa wartość pochodna. Ta metoda jest specyficzna dla wcześniejszych wersji Electrum. - Tylko adres Bitcoin (zaczyna się od
0xFD
): Ten format jest używany, gdy pełny klucz publiczny nie jest dostępny, ale znamy adres Bitcoin lub odpowiadający mu hash skryptu. Przechowuje on 20-bajtowy hash160 skryptu wyjściowego. Ten format zakłada, że cosigner może dostarczyć rzeczywisty klucz publiczny w razie potrzeby.
Te rozszerzone formaty umożliwiają Electrum obsługę różnych typów portfeli i metod derywacji, wspierając zarówno nowoczesne portfele hierarchiczne oparte na BIP32, jak i starsze struktury portfeli Electrum. Format 0xFD
zapewnia również elastyczność podczas pracy z częściowo znanymi danymi transakcji.
Standardowe klucze publiczne
Bitcoin używa określonych formatów do reprezentowania kluczy publicznych. Formaty te są uznawane za standardowe w całej sieci Bitcoin:
Skompresowane klucze publiczne: Zaczynają się one od 0x02
lub 0x03
po którym następują 32 bajty danych. Bajt początkowy wskazuje, czy y
-współrzędna punktu klucza publicznego na krzywej eliptycznej jest parzysta (0x02
) lub nieparzyste (0x03
).
Nieskompresowane klucze publiczne: Zaczynają się one od 0x04
po którym następują 64 bajty danych. Format ten obejmuje zarówno x
oraz y
współrzędne punktu klucza publicznego na krzywej eliptycznej.