The Ethernaut #10 i #11 – reentrancy & elevator

The Ethernaut #10 i #11 – reentrancy & elevator

Po dłuższej przerwie od eksploracji smart kontraktów, czas powrócić do tego fascynującego zagadnienia. Dlatego też, dzisiaj zajmiemy się kolejnymi dwoma wyzwaniami z platformy Ethernaut o nazwach “Reentrancy” oraz “Elevator“. Tradycyjnie, rozważymy kod tych kontraktów i spróbujemy je zaatakować. Bez zbędnego zwlekania, przystąpmy do pracy! Zadanie #10 – Reentrancy Nazwa dzisiejszego pierwszego zadania może wydawać się znajoma dla czytelników tego bloga. Nic w tym dziwnego, ponieważ jest to określenie ataku, który…

Dowiedz się więcej...

Nowe szaty króla – kilka słów o Chainlink Functions

Nowe szaty króla – kilka słów o Chainlink Functions

Media społecznościowe, giełdy finansowe, serwisy pogodowe i sklepy internetowe to tylko kilka przykładów rozwiązań, które ludzie stworzyli w ciągu ostatnich dwóch dekad. W międzyczasie pojawiła się technologia blockchain, na której zaczęto budować zdecentralizowane koncepcje. Jednak wszystko trzeba było tworzyć od podstaw. Co by było, gdyby te dwa światy mogły współpracować ze sobą w sposób, który był do tej pory nieosiągalny? Okazuje się, że jest to możliwe, a rozwiązaniem, które może…

Dowiedz się więcej...

Chainlink CCIP – podróżując przez równoległe światy

Chainlink CCIP – podróżując przez równoległe światy

Liczba dostępnych blockchainów, na których można opierać zdecentralizowane rozwiązania, stale rośnie. Niektóre z nich cechują się większą szybkością, inne niższymi kosztami, a jeszcze inne gwarantują wyższy poziom bezpieczeństwa. W zależności od naszych priorytetów, powinniśmy obrać odpowiednią ścieżkę. Niestety, po związywaniu się z konkretnym blockchainem, rezygnacja z niego może okazać się trudnym zadaniem. Co by się jednak stało, gdyby początkowy wybór nie miał tak dużego znaczenia, a przeniesienie danych z jednego…

Dowiedz się więcej...

The Ethernaut #8 i #9 – vault & king

The Ethernaut #8 i #9 – vault & king

Dzisiaj powracamy do rozwiązywania wyzwań z platformy Ethernaut. Jeśli spotykasz tę serię po raz pierwszy, zachęcam Cię do zapoznania się z poprzednimi wpisami, które przedstawiają interesujące aspekty związane z bezpieczeństwem. Teraz, bez dłuższego wstępu, przejdźmy do dwóch kolejnych zadań. Zadanie #8 – vault Celem pierwszego wyzwanie będzie odblokowanie skarbca. Jak zwykle rozpocznijmy od analizy otrzymanego kodu. Smart kontrakt zawiera dwa pola. Pierwsze przechowuje wartość odpowiedzialną za blokadę skarbca, a drugie…

Dowiedz się więcej...

Jak zhakować DAO – problem, który dotknął Tornado Cash

Jak zhakować DAO – problem, który dotknął Tornado Cash

Kilka tygodni temu z protokołu o nazwie Tornado Cash zostały wyciągnięte aktywa o wartości 1 mln $. W świecie zdecentralizowanych rozwiązań różnego rodzaju kradzieże są dosyć częste. Jeśli zajrzysz na tę stronę, od razu zobaczysz dane, które pokazują, jak bardzo dotkliwy jest ten proceder. Jednak w przypadku Tornado Cash nie doszło do kompromitacji poprzez błąd w kodzie, co zazwyczaj się zdarza, lecz wykorzystano pewien mechanizm oraz nieuwagę ludzi. Dlatego dzisiaj…

Dowiedz się więcej...

The Ethernaut #6 i #7 – delegation & force

The Ethernaut #6 i #7 – delegation & force

Po krótkiej przerwie w rozwiązywaniu wyzwań Ethernaut, nadszedł czas, aby do nich powrócić. Dzisiaj skupimy się na dwóch kolejnych zadaniach. W rozwiązaniu pierwszego z nich przyda się wiedza zawarta w artykułach o tytule “Ponieważ kontekst ma znaczenie – call vs delegatecall“ oraz “Kiedy nieistniejące istnieje – funkcja fallback“, dlatego polecam zapoznać się z nimi przed rozpoczęciem. Jeśli już masz to za sobą, nie traćmy czasu i przejdźmy do wyzwań :).…

Dowiedz się więcej...

Ponieważ kontekst ma znaczenie – call vs delegatecall

Ponieważ kontekst ma znaczenie – call vs delegatecall

Dla osób, które miały kiedykolwiek styczność z programowaniem, a w szczególności z językami takimi jak Java, JavaScript, C# itp., język Solidity może wydawać się bardzo podobny do tego, co już znają. Nic w tym dziwnego, ponieważ sama składnia w dużej mierze opiera się właśnie na wspomnianych technologiach. Niestety, to, co na pozór wygląda znajomo, może powodować wiele nieporozumień ze względu na różnice w zachowaniu, które nie zawsze są oczywiste na…

Dowiedz się więcej...

Kiedy nieistniejące istnieje – funkcja fallback

Kiedy nieistniejące istnieje – funkcja fallback

Kiedy osoba nieznająca Solidity przegląda różnego rodzaju smart kontrakty, może źle zinterpretować ich działanie. Często dzieje się tak z powodu “smaczków”, które powodują, że kod napisany w tym języku zachowuje się inaczej niż można by się spodziewać. Szczególnie, jeśli osoba ta ma doświadczenie w innych technologiach, może doznać nieprzyjemnego zaskoczenia. Jednym z takich “smaczków” jest tzw. funkcja fallback, a zrozumienie jej działania pozwoli na uniknięcie błędów, które mogą prowadzić do…

Dowiedz się więcej...

Kiedy blockchain spotyka AI – czyli jak wykorzystać ChatGPT

Kiedy blockchain spotyka AI – czyli jak wykorzystać ChatGPT

Ostatnie miesiące to istny boom na technologie związane z AI, a wszystko to dzięki narzędziu zwanemu ChatGPT. Dzisiaj trudno znaleźć osobę, której choć raz nie obiła się ta nazwa o uszy, i nic w tym dziwnego. Chociaż niektórzy zbyt przesadnie oceniają obecne możliwości tego rozwiązania, trzeba przyznać, że ma ono, a będzie miało jeszcze większy, wpływ na ogromną ilość branży, w tym IT. Nie inaczej jest w przypadku tworzenia rozwiązań…

Dowiedz się więcej...

Na wieki wieków – czyli Eternal Storage

Na wieki wieków – czyli Eternal Storage

“Nic nie trwa wiecznie. Niebezpiecznie jest wierzyć w to, że coś trwa wiecznie.” Te słowa zaczerpnięte z dawnej piosenki Sidneya Polaka są bardzo trafne w kontekście świata, w którym żyjemy. Ale również w odniesieniu do blockchaina są bardzo prawdziwe. Dlatego dzisiaj wracamy do tematu aktualizowania smart kontraktów i przeanalizujemy rozwiązanie zwane Eternal Storage. Nowe szaty króla W poprzedniej części został omówiony ogólny problem związany z potrzebą aktualizowania smart kontraktów, jak…

Dowiedz się więcej...