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...

The Ethernaut #4 i #5 – telephone & token

The Ethernaut #4 i #5 – telephone & token

W dzisiejszym wpisie wracamy na platformę Ethernaut(https://ethernaut.openzeppelin.com/). Skupimy się na dwóch kolejnych wyzwaniach, które pomogą poznać kolejne “smaczki” języka Solidity. Dlatego bez zbędnego gadania bierzemy się do roboty!  Zadanie #4 – telephone Pierwszym wyzwaniem, za które się dzisiaj zabieramy jest to o nazwie Telephone. Jego celem ponownie będzie przejęcie kontroli nad kontraktem. Spójrzmy,  jak wygląda kod. Kontrakt jest bardzo krótki i nie zawiera skomplikowanej logiki. Przechowuje jedną wartość, mówiącą, kto obecnie…

Dowiedz się więcej...

Jak zmienić niezmienialne – czyli o aktualizacji smart kontraktów

Jak zmienić niezmienialne – czyli o aktualizacji smart kontraktów

Blockchain jest niezmienny. Blockchain jest przejrzysty. Wszystko, co dzieje się na blockchainie można w łatwy sposób sprawdzić i zweryfikować. Raz wgrany kod na blockchain pozostanie tam na zawsze i to w niezmienionej formie. To tylko kilka z określeń, które powtarzane są jak mantra w stosunku do zdecentralizowanych technologii. Czy są one w stu procentach prawdziwe? Co w przypadku, gdy smart kontrakt wymaga usprawnień lub naprawy błędów? Na te i inne pytania…

Dowiedz się więcej...