Kupuj kryptowaluty BLIKiem ⚡
Błyskawiczne wpłaty bez opłat i prowizji na giełdzie OKX.
Cześć wszystkim, piszę bo od jakiegoś czasu mocno siedzę w temacie krypto i staram się to sensownie poukładać w głowie. Samo kupowanie na giełdzie jest proste, ale jak wchodzę w technikalia, robi się niezły kocioł. Rozkminiam teraz podstawy jeśli chodzi o rozproszone rejestry i ciągle odbijam się od dwóch pojęć. Chodzi mi dokładnie o to, co to jest hash i funkcja hashująca w blockchainie. Przeczytałem kilkanaście artykułów, obejrzałem masę filmików, ale mam wrażenie, że każdy tłumaczy to strasznie trudnym językiem. Chciałbym to wziąść na przysłowiowy chłopski rozum i mam nadzieję, że tutejsi wyjadacze pomogą mi to zweryfikować.
Z tego co udało mi się wywnioskować, to sam hash to taki unikalny, cyfrowy odcisk palca, prawda? Czyli bierzemy jakiś plik, tekst o przelewie czy cokolwiek innego, przepuszczamy przez program i wyskakuje nam losowy ciąg znaków. Rozumiem to tak, że ten skrót kryptograficzny jest zawsze unikalny dla konkretnych danych wejściowych. Jak zmienię choćby jedną spację w całym dokumencie, to wyjściowy hash zmienia się drastycznie. To jest niby po to, żeby napewno nikt nie mógł po cichu podmienić informacji w sieci. Ale czy to jest w 100% bezpieczne? Przecież teoretycznie może się zdarzyć, że dwie różne rzeczy dadzą identyczny wynikowy skrót, czy to po prostu matematycznie niemożliwe? Słyszałem pojęcie "kolizja", ale nie do końca czaję jak często to występuje.
Teraz płynnie przechodzimy do drugiego tematu, czyli czym właściwie jest funkcja hashująca. Z tego co wyczytałem, to jest po prostu ten algorytm, który miele dane i zawsze wypluwa wynik o stałej długości. W sieci Bitcoin to chyba ten słynny algorytm SHA-256. Nie ma znaczenia, czy wrzucę tam jedno słowo "test", czy całą wielką encyklopedię - wynikowy ciąg znaków wygenerowany przez funkcję haszującą zawsze ma równe 256 bitów. Podobno funkcja haszująca w blockchain działa tylko w jedną stronę. Czyli jak mam już gotowy wynik, to za Chiny ludowe nie da się z niego odtworzyć pierwotnych danych. Służy to wyłącznie do szybkiej weryfikacji.
Tylko jak to wszystko ostatecznie spina się z samym łańcuchem bloków? Wyczytałem, że każdy nowy blok w blockchainie zawiera w sobie hash poprzedniego bloku. I tu zaczyna sie dla mnie czarna magia. Skoro bloki są powiązane, to algorytm hashujący działa jak nierozerwalny klej, zgadza się? Jak jakiś haker chciałby zmienić transakcję sprzed roku żeby ukraść komuś krypto, to musiałby przeliczyć od nowa wszystkie skróty kryptograficzne od tamtego momentu aż do końca łańcucha? To by logicznie tłumaczyło, dlaczego technologia blockchain jest powszechnie uważana za tak bezpieczną bazę danych i nikt nie potrafi jej zhakować.
Mam jeszcze jedno pytanie. Co w tym procesie tak naprawdę robią górnicy (minerzy)? Podobno masowo używają funkcji hashującej do wydobywania nowych monet. Szukają jakiegoś konkretnego hasha, który zaczyna się od iluś tam zer? Jak to działa w praktyce i dlaczego to całe hashowanie pożera tyle prądu z gniazdka? Czy oni po prostu zgadują na oślep wrzucając losowe liczby do algorytmu, aż w końcu procesor trafi na odpowiedni ciąg znaków?
Sorki za taki tasiemiec, ale naprawde chce to dobrze zrozumieć, zanim wpakuję w ten rynek większe oszczędności. Jak ktoś potrafi ten mechanizm wytłumaczyć prostym językiem, to będę mega wdzięczny. Chce po prostu wiedzieć czy dobrze to wszystko rozumuje, czy popełniłem jakiś potężny błąd logiczny. Z góry wielkie dzięki za każdą odpowiedź!
Kupuj kryptowaluty BLIKiem ⚡
Błyskawiczne wpłaty bez opłat i prowizji na giełdzie OKX.
Siemanko. Bardzo fajnie to rozpisałeś, szacun za takie luźne podejście do tematu. Zgadzam się w stu procentach, że jak nowy wbija na forum i pyta co to jest hash i funkcja hashująca w blockchainie, to zazwyczaj dostaje w twarz ścianą tekstu z wikipedii o jakichś matematycznych wektorach. Twój przykład z maszynką do mięsa i cyfrowym odciskiem palca to absolutny klasyk i najlepsza opcja na start.
Od siebie dodam parę groszy, żeby trochę ten twój młynek rozbudować, bo temat jest gruby. Ta cała kryptograficzna funkcja skrótu to tak naprawde serce całego ekosystemu. Zauważ, że w krypto praktycznie wszystko opiera się na hashowaniu. Przelewasz komuś bitcoiny ze swojego portfela? Sieć wypluwa ci TxID, czyli identyfikator transakcji. I zgadnij co to jest? No dokładnie – ten unikalny, zakodowany ciąg znaków, czyli czysty wynik działania algorytmu mieszającego. Dzięki temu w każdej chwili możesz wejść na pierwszy lepszy eksplorator bloków, wkleić ten hash transakcji i od razu czarno na białym widać, czy hajs faktycznie poszedł, czy giełda leci z tobą w kulki.
Dobrze wspomniałeś o algorytmie SHA-256, który robi za główny silnik przy BTC, ale trzeba pamiętać, że różne łańcuchy bloków używają różnych patentów. Na przykład stare Ethereum korzystało z Keccak-256. Ale sama mechanika zawsze pozostaje niezmienna. Funkcje hashujące w świecie kryptowalut mają to do siebie, że generują tzw. efekt lawiny. Zmienisz jedną małą kropkę w pliku ważącym terabajty, a na wyjściu dostajesz kompletnie, ale to kompletnie inny ciąg znaków.
Dzięki temu łańcuch bloków jest w 100% odporny na wałki. Wyobraź sobie, że ktoś z zewnątrz próbuje podmienić chociaż ułamek transakcji w historii, żeby podpieprzyć komuś krypto. To by natychmiast drastycznie zmieniło hash całego bloku. Sieć by to momentalnie zobaczyła i odrzuciła jako bezczelną ściemę, bo reszta węzłów w sieci ma u siebie zapisaną prawidłową wersję. To jest ten mityczny konsensus, o którym wszyscy trąbią. Bez algorytmów hashujących nie byłoby w ogóle bezpieczeństwa.
A co do tych wyjących po piwnicach koparek, o których napisałeś na końcu, to górnicy odwalają tam kawał potężnej, matematycznej harówki. Proces kopania krypto polega na tym, że maszyna bierze dane z oczekującego nowego bloku i dokleja do nich taką losową liczbę, zwaną w slangu nonce. Przepuszcza to wszystko przez funkcję hashującą i patrzy co jej wyszło. Jeśli wygenerowany w ten sposób hash nie spełnia twardych wymagań sieci (czyli na przykład nie zaczyna się od z góry ustalonej liczby zer), to koparka zmienia ten nonce i próbuje znowu. I tak miliardy, a nawet biliony razy na sekundę! To jest właśnie to słynne Proof of Work w praktyce. Ten górnik, którego maszyna jako pierwsza znajdzie prawidłowy kryptograficzny skrót, ogłasza to reszcie sieci, dopina blok do łańcucha i zgarnia nagrodę w coinach.
Ogólnie zajebiście to ująłeś. Jak ktoś dalej nie kuma czym jest hash w technologii blockchain i po co nam w ogóle te wszystkie zabezpieczenia kryptograficzne, to niech lepiej nie wrzuca w rynek prawdziwego kapitału, tylko najpierw pobawi się na darmowym testnecie. Dawaj więcej takich postów, bo strasznie dużo świeżaków się teraz kręci i ewidentnie potrzebują takich łopatologicznych wyjaśnień. Pozdro!
Kupuj kryptowaluty BLIKiem ⚡
Błyskawiczne wpłaty bez opłat i prowizji na giełdzie OKX.
Elo, ekipa! Chłopaki wyżej elegancko wyczerpali temat jeśli chodzi o fundamenty, ale dorzucę od siebie jeszcze jedną mega ważną rzecz, z którą świeżaki zawsze mają problem. Mianowicie, ludzie nagminnie mylą hashowanie z szyfrowaniem.
To są dwa kompletnie różne światy! Szyfrowanie działa w dwie strony – zamykasz kłódkę hasłem, wysyłasz komuś plik, a on otwiera go u siebie. Natomiast funkcja hashująca w blockchainie to bilet w jedną stronę. Jak zrobisz z danych miazgę przez ten wasz kryptograficzny młynek, to już za nic nie odtworzysz z tego pierwotnego pliku. Ten algorytm służy wyłącznie do udowodnienia, że nikt nie majstrował przy pliku, a nie do ukrywania jakichś tajnych wiadomości przed światem.
Druga sprawa, o której rzadko się mówi na samym początku, to jak te wszystkie transakcje są fizycznie upchane w bloku. Przecież taki blok w sieci BTC ma w sobie nieraz po kilka tysięcy przelewów. Myślicie, że system wrzuca to wszystko naraz do algorytmu mieszającego w jednym wielkim worze? No nie do końca. Tutaj wjeżdża taki cwany patent o nazwie Drzewo Merkle'a (z ang. Merkle Tree).
W praktyce wygląda to tak, że system bierze dwie transakcje i wylicza dla nich wspólny skrót kryptograficzny. Potem paruje dwa takie skróty i robi z nich kolejny hash. I tak w kółko. Piramidka pnie się do góry, aż na samym szczycie zostaje nam tylko jeden, główny ciąg znaków – tzw. Merkle Root. I to właśnie ten jeden, wyselekcjonowany odcisk palca ląduje w nagłówku bloku.
Dlaczego to jest takie genialne rozwiązanie? Bo jak jakikolwiek haker spróbuje podmienić chociażby ułamek centa na samym dole tego drzewa, to przez efekt lawiny momentalnie zmienią się wszystkie powiązane hashe wyżej, łącznie z tym głównym korzeniem na szczycie. Reszta sieci w ułamek sekundy to weryfkuje i po prostu wykopuje taki zmanipulowany łańcuch bloków w kosmos.
Więc zanim w ogóle zaczniecie ładować realny hajs na giełdy, serio dobrze jest ogarnąć jak ta sieć spina dane do kupy. Jak raz a porządnie zakumacie ten mechanizm, to bezpieczeństwo krypto staje się logiczne jak budowa cepa i od razu widać, czemu to działa bez banków pośrodku. Piona!