Powrót

3. Poziom zaawansowany

Ukończono: 0%
Kroki: 0/0
  1. 1. Co to jest Taproot?
  2. 2. Mosty blockchain – co to jest?
  3. 3. Czym jest atak 51% na blockchain?
  4. 4. Zero-knowledge proof- protokół, który szanuje prywatność
  5. 5. Co to jest EOSREX?
  6. 6. Mirror Protocol – co to jest 
  7. 7. Czym jest i jak działa DAO? 
  8. 8. Czym jest spoofing na rynku kryptowalut?
  9. 9. Cyfrowe prawo własności
  10. 10. Jak sprawdzić projekt kryptowalutowy – czyli tokenomia kryptowalut
  11. 11. Czym jest Ethereum Plasma?
  12. 12. Co to jest Ethereum Casper?
  13. 13. Co to jest Selfish Minning?
  14. 14. Jak stworzyć własny NFT?
  15. 15. Podpisy Schnorra - co to jest?
  16. 16. Co to jest dowód Zk-SNARK i Zk-STARK
  17. 17. Co to jest Proof of Elapsed Time- dowód upływającego czasu (PoET)?
  18. 18. MimbleWimble
  19. 19. Czym są ETFy?
  20. 20. Aktywa syntetyczne
  21. 21. Czym są likwidacje DeFI?
  22. 22. Nowy system tożsamości - Polygon ID
  23. 23. Czym jest Ethereum Virtual Machine MEV?
  24. 24. Fundacja Ethereum i protokół Scroll - czym są?
  25. 25. Czym jest bizantyjska tolerancja błędów?
  26. 26. Czym jest skalowalność technologii blockchain?
  27. 27. Interchain Security- nowy protokół Cosmos (Atom)
  28. 28. Coin Mixing vs. Coin Join - definicja, możliwości i zagrożenia
  29. 29. Co to są tokeny SoulBound SBD?
  30. 30. Co to jest Lido?
  31. 31. Czym są Threshold Signatures i jak działają?
  32. 32. Technologia blockchain i cyberataki
  33. 33. Skrypt Bitcoina - czym jest i co powinieneś wiedzieć na ten temat
  34. 34. Czym jest zkEVM i jakie są jego podstawowe cechy?
  35. 35. Czy poufne transakcje na blockchainie istnieją? Co to jest Confidential Transaction?
  36. 36. Algorytmiczne stablecoiny – wszystko, co powinieneś o nich wiedzieć
  37. 37. Polygon Zk Rollups - co powinieneś wiedzieć na jego temat?
  38. 38. Co to jest Infura Web3?
  39. 39. Mantle – skalowalność Ethereum L2 – jak działa?
  40. 40. Polygon zkEVM - wszystko, co powinieneś wiedzieć
  41. 41. Co to jest Optimism (OP) i jak działają jego rollupy?
  42. 42. Czym są węzły RPC node i jak działają?
  43. 43. SEI Network: wszystko, co musisz wiedzieć o rozwiązaniu warstwy 1 dla DeFi
  44. 44. Rodzaje mechanizmów konsensusu Proof-of-Stake: DPoS, LPoS oraz BPoS
  45. 45. Bedrock: krzywa epileptyczna, która zapewnia bezpieczeństwo!
  46. 46. Czym jest Tendermint i jak działa?
  47. 47. Pantos: jak rozwiązać problem transferu tokenów miedzy blockchainami?
  48. 48. Czym jest szyfrowanie asymetryczne?
  49. 49. Funkcja Base-58 w kryptowalutach
  50. 50. Czym jest i jak działa protokół Nostr?
  51. 51. Czym jest i jak działa most XDAI Bridge?
  52. 52. Porównanie Solidity i Rust: Wybór języka programowania w ekosystemie blockchain.
  53. 53. Czym jest Pinata w Web 3? Wyjaśniamy!
  54. 54. Czym jest Real-Time Operating System (RTOS)?
  55. 55. Czym jest i jak działa Rinkeby Testnet Ethereum?
  56. 56. Czym jest szyfrowanie probabilistyczne?
  57. 57. Czym jest EIP-4337? Czy Ethereum Account Abstraction zmieni Web3 na zawsze?
  58. 58. Czym są audyty inteligentnych kontraktów? Jakie firmy się nim zajmują?
  59. 59. Jak działa portfel AirGapped?
  60. 60. Czym jest proto-danksharding (EIP-4844) na Ethereum?
  61. 61. Jak odzyskać kryptowaluty wysłane na niewłaściwy adres lub sieć? Praktyczny poradnik!
  62. 62. Portfel MPC i Obliczenia Wielostronne: Innowacyjna technologia dla prywatności i bezpieczeństwa.
  63. 63. Czym jest i jak działa zdecentralizowana pamięć masowa?
  64. 64. Quant Network: Skalowalność przyszłości
  65. 65. Czym jest StarkWare i rekurencyjne dowody ważności
Lekcja 49 z 65

49. Funkcja Base-58 w kryptowalutach

Twórcy Bitcoina, czyli Satoshiemu Nakamoto możemy zawdzięczać wiele. Ma on również ogrom osiągnięć, z których nie tylko blockchain jest tym wyjątkowym. Kolejnym z nich jest Base-58. Jednak – o czym tak właściwie mowa? Na dzisiejszej lekcji zajmiemy się tym tematem.

Base-58 – definicja

Base-58 jest to grupa schematów kodowania binarnego na tekst. Używa się go do reprezentowania dużych liczb całkowitych, jako tekstu alfanumerycznego. Systemy kodowania, które istniały za czasów Satoshiego, nie nadawały się do jego pracy. Dlatego też, aby ją sobie ułatwić, Nakamoto wymyślił taką innowację.

Satoshi Nakamoto chciał mieć możliwość konwersji często używanych elementów w Bitcoinie, takich jak klucze prywatne i adresy na format, który jest łatwy do udostępnienia i użycia. Za jego przykładem, a w zasadzie – za przykładem Bitcoina poszło wiele kryptowalut i w swoim działaniu również używa Base-58, szczególnie do uproszczenia transakcji. Ale to nie koniec! Zastosowanie tej technologii znalazło miejsce we wszystkim, od haseł klucza głównego po adresy Ripple i krótkie adres URL.

Jak działa Base-58?

Podstawa „Base” to liczba znaków, których używamy do reprezentowania danej liczby. Mamy więc następująco:

  • Base – 2 (znany nam system binarny), który reprezentuje dwa znaki – zera i jedynki.
  • Base – 10, reprezentuje liczby przy użyciu 10 znaków (0-9).
  • Base – 16, znana lepiej jako baza szesnastkowa używa 0123456789abcdef – używa 16 znaków.
  • Base-58, analogicznie, używa 58 znaków. W swoim działaniu wykorzystuje wszystkie znaki alfanumeryczne (0-9, a-z, A-Z) z wyjątkiem łatwych do pomylenia znaków. Base-58 nie zawiera zer, wielkich liter i (I) i o (O), małych liter l oraz symboli + i /. Celem Base-58 jest reprezentowanie dużych liczb w krótkim formacie, przy jednoczesnym unikaniu łatwo interpretowanych znaków.

Liczby zakodowane w Base-58 mają 56.7% rozmiaru liczb dziesiętnych. Eliminacja wizualnie podobnych do siebie znaków zmniejsza szansę na ludzki błąd – czy to w przepisywaniu, czy czytaniu.

Jak wspominaliśmy w akapitach wyżej, Base-58 znalazł zastosowanie w wielu różnych aplikacjach. Oprócz technologii blockchain i kryptowalut znajdziemy go również w aplikacjach, jako kompaktowy sposób kodowania danych ścieżki lub nazwy pliku.

Base-58 a kryptowaluty

Istnieje wiele odmian Base-58, które są w użyciu. Najprostsze z nich po prostu zmieniają alfabet (zazwyczaj polega to na zmianie kolejności liter). Na przykład Ripple. W swoim kodzie używa znaków, które wydają się prawie losowe. Tak naprawdę zostały wybrane w taki sposób, że pierwsze znaki ważnych sekwencji zawsze mają wspólną, znaczącą literę.

Monero. Ta kryptowaluta koduje długie sekwencje w krótki, 8-bajtowych blokach. Dane mają deterministyczny rozmiar. Sam adres Monero ma długość 69 bajtów. Dzięki zastosowaniu kodowania blokowego i schematu wypełniania 69-bajtowe adresy Monero po zakodowaniu zawsze będą miały długość 95 znaków.

Sumy kontrolne

Ważnym aspektem przy Base-58 są sumy kontrolne. Mamy ich trzy różne schematy. Bitcoin wprowadził Base58Check. Pozwala on na dodanie do danych prefiksu, który w praktyce jest pojedynczym bajtem (technicznie nie ma takiego wymogu). Tak dodany prefiks, plus dane są haszowane przez SHA256. Otrzymany wynik jest jeszcze raz przepuszczany przez SHA256.  Pierwsze cztery znaki są używane jako suma kontrolna.

Avalanche wprowadził prostszą wersję Base58Check. Eliminuje ona drugie przejście przez SHA256.

Kolejnym przykładem będzie Substrate SDK dla Polkadot, który wprowadza SS58. Jest to format adresu z implikowanym algorytmem sumy kontrolnej, opartym na Base58Check, ale z kilkoma istotnymi różnicami. Zamiast użycia SHA2, używa Blake2 dla kryptograficznej funkcji haszowania.

Musisz pamiętać, że rozmiar sumy kontrolnej może wahać się od jednego do ośmiu bajtów. Wszystko w zależności od używanego formatu adresu. Samym wyzwaniem przy implementacji biblioteki Base-58 jest to, że większość pracy powiązanej z kodowaniem, tak naprawdę obraca się wokół wykonywania prostych działań matematycznych na bardzo dużych liczbach.

Wady Base-58

Bazy potęgowe wprowadza się bardzo szybko. Tekst wejściowy jest potęgą dwóch liczb. Kodowanie tekstu może być więc postrzegane jako zmiana bazy między bazą 256 a nową. Dla bazy 64 możemy to zrobić za pomocą przesunięcia bitów i maskowania. Przy bazie 58 musimy jednak użyć podziału. Co czyni proces bardzo wolnym. Schemat kodowania Base-58 używa długiego podziału do zmiany bazy. Dlatego czyni go to użytecznym tylko dla małych fragmentów tekstu (np. adresy portfeli Bitcoin). W przypadku innych, większych miejsc jest praktycznie nieużyteczny. Otóż dlaczego:

  • Kodowanie jest bardzo wolne.
  • Samo kodowanie wymaga implementacji złożonego, zmieniającego bazę konwertera.
  • Sam kod musi zawierać bibliotekę liczb całkowitych o wysokiej precyzji.
  • Złożony kod możemy zaimplementować ręcznie, co jeszcze bardziej wydłuża nam czas kodowania.

Dlaczego więc Base-58 ułatwia nam korzystanie z Bitcoina?

Ponieważ przekształca dane źródłowe adresu w czytelny dla nas format. Na przykład klucz ECDSA jest zmieniony na łatwy do odczytania adres Bitcoina, który składa się z 20 znaków. Base-58 jest również wykorzystywany w kluczach prywatnych w formacie WIF. Inne kryptowaluty również używają tej funkcji.

Podsumowanie

Pomimo swoich wad, funkcja Base-58 jest niezwykle użyteczna. Swoje zastosowanie ma nie tylko w branży kryptowalut, ale również w innych sektorach poświęconych zdecentralizowanej technologii.