Studia przypadków - Nemefiy

Co uczestnicy faktycznie zbudowali

Uczestnik masterclassu pracujący przy kodzie smart kontraktu

Przypadek 01 - Zarządzanie dostępem

System uprawnień dla platformy DeFi

Agnieszka Wrotek pracowała jako administratorka baz danych, zanim trafiła na masterclass z Solidity. Jej projekt zakładał zbudowanie kontraktu zarządzającego rolami użytkowników w protokole pożyczkowym - bez centralnego serwera. Przez pierwsze tygodnie walczyła głównie z modelem uprawnień i reentrancy guard, a nie z logiką biznesową.

Po ośmiu tygodniach pracy kontrakt przeszedł audyt wewnętrzny z jedną uwagą dotyczącą optymalizacji gas. Agnieszka opisuje ten moment jako punkt, w którym zrozumiała, że blockchain to nie baza danych z innym API - to inny sposób myślenia o stanie.

Kluczowe narzędzia

Hardhat · OpenZeppelin AccessControl · Ethers.js · Sepolia testnet · Chai

tygodni od pierwszej linii Solidity do działającego kontraktu z testami pokrywającymi 14 scenariuszy brzegowych

Przed kursem

  • Brak znajomości EVM
  • SQL jako jedyny model danych
  • Brak doświadczenia z Web3
  • Nieznajomość gas i opłat

Po kursie

  • Kontrakt z AccessControl
  • Testy w Mocha i Chai
  • Deploy na Sepolia
  • Optymalizacja gas o 18%

Przypadek 02 - Protokół głosowania

Zdecentralizowane głosowanie bez pośrednika

Tomasz Bryjak pracował wcześniej w administracji publicznej i interesował go konkretny problem: jak przeprowadzić głosowanie, którego wyniki nie mogą być zmienione po fakcie. Wybrał masterclass z zakresu architektury kontraktów i skupił się na implementacji mechanizmu commit-reveal, który ukrywa głos do czasu zakończenia rundy.

Projekt wymagał zrozumienia, jak Ethereum przechowuje dane w storage i jak unikać kolizji slotów. Tomasz spędził trzy tygodnie wyłącznie na tej warstwie, zanim przeszedł do logiki głosowania. Wynik to kontrakt z czterema stanami przejścia i mechanizmem delegacji, który działa bez żadnego backendu.

Jak przebiegała praca krok po kroku

Środowisko i narzędzia

Hardhat z lokalnym węzłem, konfiguracja Metamask na Sepolia, skrypt deploymentu w TypeScript.

Solidity - mechanizm commit-reveal

Haszowanie głosu z salt po stronie klienta, przechowywanie hashy w mapping, ujawnienie w fazie reveal.

Testy i symulacja ataków

Scenariusze podwójnego głosowania, próba zmiany głosu po commit, weryfikacja overflow w liczniku.

Wdrożenie i weryfikacja

Deploy na Sepolia, weryfikacja kodu źródłowego w Etherscan, publiczny interfejs przez Ethers.js.

Diagram stanów kontraktu głosowania commit-reveal zbudowanego przez uczestnika

stany przejścia w kontrakcie - Pending, Active, Reveal, Closed - każdy z osobnym zestawem dozwolonych funkcji

Wyzwania

  • Storage slot collisions
  • Reentrancy w delegacji
  • Koszt gas przy dużej liczbie głosów
  • Brak doświadczenia z kryptografią

Rozwiązania

  • Explicit storage layout
  • Checks-Effects-Interactions
  • Batch reveal z limitem iteracji
  • keccak256 z salt po stronie klienta