Co to jest blockchain?

blok-blockchain

Co to jest BLOCKCHAIN?!

Blockchain to dane, oprogramowanie i ludzie. Wszystkie te trzy rzeczy muszą ze sobą współpracować.

Zacznijmy od danych.

Dane to jakiś blok informacji. Weźmy na przykład paragon ze sklepu. Mamy ilość kupionych produktów, ich cenę, rodzaj, podatki itd. Załóżmy, że chcemy zapisywać te dane w blockchain. Co trzeba, żeby to zrobić?

blok-blockchain

Bierzemy ten paragon i wszystko co się na nim znajduje wrzucamy w specjalną funkcję matematyczną (pewnie kojarzysz funkcje kwadratowe czy liniowe z gimnazjum czy szkoły średniej). Dokładnie o to samo chodzi. Komputer zamieni litery i wszystko co znajduje się na paragonie w odpowiednie liczby. Potem wrzuca je do funkcji i otrzymujemy wynik. Ten wynik to słynny hash. Co nam to daje?

Jak wiemy zmiana słynnego “x” w funkcji kwadratowej powodowała inny wynik. Tak samo jest w tym przypadku. Jak zmieni się chociaż jedna litera hash będzie inny. To bardzo ważna właściwość hashowania. Pozwala w łatwy sposób przedstawić dowód że dane są tylko w takiej postaci. Dodatkowo jest w porównaniu do danych bardzo krótki. W końcu to jedna liczba o na przykład 10 znakach, gdzie dane to cały paragon. Jest to bardzo szybkie i łatwo zaoszczędzić miejsce. Wykorzystajmy to.

Załóżmy że mamy 10 paragonów. Liczymy hash każdego z nich. Teraz robimy blockchain:

Blok 1:

  • paragon numer 1
  • hash paragonu numer 1
  • hash bloku numer 0
  • hash bloku 1 (jest to hash paragonu + paragon + hash bloku numer 1, hashujemy wszystkie dane)

Blok 2:

  • paragon numer 2
  • hash paragonu numer 2
  • hash bloku numer 1
  • hash bloku 2 (jest to hash paragonu + paragon + hash bloku numer 1, hashujemy wszystkie dane)

Blok 3:

  • paragon numer 3
  • hash paragonu numer 3
  • hash bloku numer 2
  • hash bloku 3 (jest to hash paragonu + paragon + hash bloku numer 2, hashujemy wszystkie dane)

I tak dalej.

Przyjrzyjmy się temu.

Stworzyliśmy coś w rodzaju listy połączonej ze sobą hashami. Każdy kolejny blok ma hash poprzedniego. To jest właśnie blockchain. Spójrzmy na właściwości.

Zmienimy na paragonie numer 2, że kupiliśmy jeden chleb, nie dwa. Zmiana danych powoduje że się zmienia hash. Już nie jest taki sam. Musimy więc zmienić wszystkie kolejne bloki, ponieważ tam też zapisujemy hash paragonu numer 2.

Blok 1:

  • paragon numer 1
  • hash paragonu numer 1
  • hash bloku 1 (jest to hash paragonu + paragon, łączymy te dwie rzeczy żeby się zabezpieczyć przed zmianą)

Blok 2:

  • paragon numer 2
  • hash paragonu numer 2
  • hash bloku numer 1
  • hash bloku 2 (jest to hash paragonu + paragon + hash bloku numer 1, hashujemy wszystkie dane)

Blok 3:

  • paragon numer 3
  • hash paragonu numer 3
  • hash bloku numer 2
  • hash bloku 3 (jest to hash paragonu + paragon + hash bloku numer 2, hashujemy wszystkie dane)

Zaznaczyłem gdzie występuje związek z hashem paragonu numer 2. Jak widzimy jest on ciągle przekazywany dalej. Zobacz na hash bloku 3. On też pójdzie do bloku 4. A przecież blok 3 zawiera informacje o paragonie numer 2. I tak to się będzie ciągnąć aż to najnowszego bloku.

Musielibyśmy od nowa policzyć wszystkie hashe. A to zajmuje czasu. Mamy 10 paragonów, czyli 10 bloków. Zmieniamy numer 2, czyli przeliczamy 8 bloków. Załóżmy że policzenie jednego bloku zajmuje nam 1 minutę. Czyli potrzebujemy 8 min na policzenie.

Teraz wchodzi oprogramowanie i decentralizacja

liczby blockchain

Hashe liczy oprogramowanie. Nazywa się je koparkami. Ciągle liczą i dodają nowy blok a potem wysyłają to do wszystkich innych. Najnowszy blok wygrywa, jeśli jest dobrze policzony.

Koparek jest 15. Tyle komputerów ciągle dodaje nowy blok. One w najgorszym przypadku dodają jeden blok w ciągu minuty. Tak więc co minutę zwiększa się ilość bloków. My potrzebujemy 8 min żeby nadgonić a potem jeszcze jednej żeby wyprzedzić. Czyli musimy mieć ponad połowę koparek. W tym przypadku 8. Wtedy uda nam się podrobić paragon.

Praktycznie? Jest to raczej nieopłacalne i trudne do wykonania. Musimy mieć ponad połowę mocy wszystkich komputerów w danej sieci. Dodatkowo taka zmiana jest zauważalna. Tym bardziej jak próbujemy podrobić coś co miało miejsce dawno temu. Nagle się zmienią wszystkie bloki od tego czasu.

Uff… To było trudne. Zobaczyliśmy największą zaletę blockchain. Nie da się podrobić danych w efektywny sposób. Podrobienie zostanie zauważone. Ethereum ma nowy blok co 10-20 sekund. Zmiana dokonana po 5 minutach wywoła zmianę w co najmniej 15 blokach.

Do tego wiemy że tylko przewaga mocy naszych koparek pozwala wpłynąć na blockchain. Dlatego nie wolno pozwolić żeby jedna osoba miała ponad 50%.

Podsumujmy co wiemy:

  • blockchain to dane połączone w specyficzny sposób
  • każdy blok łączy się z poprzednim za pomocą hashu
  • hash składa się z naszych danych policzonych w specjalny sposób
  • każda zmiana wymaga policzenia od nowa wszystkich hashy
  • mając ponad 50% mocy obliczeniowej (będąc szybszym od reszty) możemy podrabiać dane
  • każdą zmianę widać

 

Co nam to daje?

Blockchain to przejrzysty rejestr informacji. Nie da się zmienić w nim danych w efektywny sposób. Tutaj przychodzi ostatni czynnik. Ludzie. Programiści, którzy tworzą oprogramowanie do liczenia hashy – jak najszybciej, jak najbezpieczniej. Przedsiębiorcy, którzy adaptują rozwiązania do swojej firmy i wprowadzają w życie przejrzystość informacji. Klienci, którzy tworzą bloki wrzucając informacje o przelewach, paragonach czy ulubionych książkach.

Zapisz się na newsletter: Subskrybuj Będziesz zawsze na bieżąco a czasami podsyłam coś specjalnego.

Programista? Tak. Specjalista od blockchain? Tak. Przynajmniej sam tak uważa. Programuje i tworzy własną kryptowalutę na blogu. Realizuje pomysły i projekty. Nie narzeka i walczy o swoje. Chce być najlepszym programistą. Tworzył aplikację do konsultacji wideo. Wszystko płatne w krypto: Experty Teraz jest programistą w Netguru. Najszybciej rozwijająca się firmą w Europie. Programuje z najlepszymi i stara im się dorównać. Podróżuje z marzeniami o byciu ekspertem i blogerem. Od czegoś jednak trzeba zacząć. Od zapału, zajawki, pomysłu. Od dzisiaj.

2
Dodaj komentarz

avatar
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Patryk Szczygło - PatysBlogMateusz Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
Mateusz
Gość

Dużo ostatnio słyszę o blockchainie. Fajnie, że rozkładasz to na takie proste elementy. O wiele łatwiej wchodzi to do głowy. Zapowiada się fajna seria. 😀