
W dzisiejszym artykule przyjrzymy się bliżej formatowaniu adresów Ergo. Dodatkowo wyjaśnimy, jak one działają, a także co sprawia, że są preferowane w porównaniu do innych typów adresów blockchain.
Zacznijmy od samego początku.
W momencie, gdy zainstalujesz jakikolwiek portfel kryptowalutowy, automatycznie tworzysz adres. Mówiąc bardzo ogólnie, możesz porównać portfel do tradycyjnego konta bankowego, a adres do odpowiadającego mu numeru konta.
To właśnie jeden z tych alfanumerycznych adresów jest potrzebny, aby wysłać pieniądze od osoby A do osoby B, otrzymać pieniądze lub wypłacić swoje nagrody za wydobycie.
Jeśli chcesz zacząć korzystać z portfela Ergo i zagłębić się w jego funkcje, sprawdź następujący link.
Teraz, czym dokładnie są adresy?
Adresy to krótkie ciągi, które odpowiadają określonym skryptom i są używane do ochrony skrzynki (ten post, który opublikował główny deweloper kushti na naszym forum, bardzo dobrze wyjaśnia, czym jest "skrzynka").
W przeciwieństwie do (zakodowanej w hex) binarnej reprezentacji skryptu, adres Ergo używa kodowania Base58 i dlatego ma kilka bardzo przydatnych cech, których binarna reprezentacja nie oferuje:
- Integralność adresu można łatwo sprawdzić za pomocą zintegrowanej sumy kontrolnej (która jest "danymi o małym rozmiarze pochodzącymi z bloku danych cyfrowych w celu wykrywania błędów, które mogły zostać wprowadzone podczas jego przesyłania lub przechowywania", według Wikipedii).
- Prefiks adresu pokazuje ci sieć i typ adresu. W szczególności prefiks sieci zapobiega przypadkowemu wysyłaniu tokenów mainnet do adresu testnet.
- Adres używa kodowania (mianowicie, Base58, jak wspomniano), które unika podobnie wyglądających znaków i jest przyjazne dla podwójnego kliknięcia oraz łamania linii w e-mailach.
- Adres koduje typ sieci, typ adresu, sumę kontrolną i wystarczającą ilość informacji, aby odpowiadać określonym skryptom.
Przyjrzyjmy się bajtowi prefiksu, który zawiera informacje o typach sieci i adresów:
Możliwe typy sieci to:
- Mainnet - 0x00
- Testnet - 0x10
Typy adresów to (semantyka opisana poniżej):
- 0x01 - adres Pay-to-PublicKey(P2PK)
- 0x02 - Pay-to-Script-Hash(P2SH)
- 0x03 - Pay-to-Script(P2S)
Dla typu adresu formujemy bajty zawartości w następujący sposób:
- P2PK - zserializowany (skompresowany) klucz publiczny
- P2SH - pierwsze 192 bity hasha Blake2b256 z zserializowanych bajtów skryptu
- P2S - zserializowany skrypt (tutaj trafiają nagrody za wydobycie!)
Na przykład, wysyłając 10 Erg do adresu P2PK, zazwyczaj oznacza, że odpowiadająca transakcja
zawiera skrzynkę, w której 10 Erg jest zablokowanych przez klucz publiczny zakodowany w adresie P2PK. Podobnie,
w przypadku adresu P2S skrzynka będzie zablokowana przez skrypt zakodowany w adresie. W najbardziej skomplikowanym przypadku skryptu
P2SH, skrzynka będzie chroniona przez specjalny zdefiniowany skrypt, który bierze pierwsze 192 bity wartości hasha Blake2b256
ze skryptu, który powinien być pokazany przez wejście wydające skrzynkę.
Oto przykład, jak poszczególne adresy będą wyglądać w testnecie:
- 3 - P2PK (3WvsT2Gm4EpsM9Pg18PdY6XyhNNMqXDsvJTbbf6ihLvAmSb7u5RN)
- ? - P2SH (rbcrmKEYduUvADj9Ts3dSVSG27h54pgrq5fPuwB)
- ? - P2S (Ms7smJwLGbUAjuWQ)
A oto jak wyglądają na naszej sieci głównej:
- 9 - P2PK (9fRAWhdxEsTcdb8PhGNrZfwqa65zfkuYHAMmkQLcic1gdLSV5vA)
- ? - P2SH (8UApt8czfFVuTgQmMwtsRBZ4nfWquNiSwCWUjMg)
- ? - P2S (4MQyML64GnzMxZgm, BxKBaHkvrTvLZrDcZjcsxsF7aSsrN73ijeFZXtbj4CXZHHcvBtqSxQ)
W krótkim podsumowaniu:
- Bajt prefiksu = typ sieci + typ adresu (na przykład, skrypt P2S w testnecie zaczyna się od 0x13 przed Base58)
- suma kontrolna = lewy_4_bajty (blake2b256 (bajt prefiksu || bajty zawartości))
- adres = bajt prefiksu || bajty zawartości || suma kontrolna
Jeśli coś z tego wzbudziło twoje zainteresowanie, serdecznie zapraszamy do dołączenia do naszej społeczności i zadawania dalszych pytań na naszym kanale telegramowym i/lub forum.
Do zobaczenia tam!
Share post
13 sierpnia 2025
12 maja 2025






