Zespół Kopalnie Krypto - poniedziałek 13 lutego 2023
Filozofia bezpieczeństwa Chia w praktyce
Chia Network bardzo poważnie podchodzi do jakości i bezpieczeństwa swoich produktów, dlatego nieustannie pracuje nad tymi dwoma zagadnieniami. W związku z tym w niedalekiej przyszłości światło dzienne ujrzy seria nowych wpisów na blogu Chia. Będą one dotyczyć wyzwań związanych z bezpieczeństwem, z którymi niegdyś zmagało się przedsiębiorstwo. Zabezpieczenia stanowią trudny temat do omówienia. Mimo to przejrzystość jest nieodzowną częścią nieustannego opracowywania wspaniałych produktów. Co ważniejsze, ma ona także pozytywny wpływ na zaskarbienie sobie i podtrzymanie zaufania użytkowników.
Chia Network zagłębi się dokładnie w każdy poszczególny temat, motyw lub wyzwanie. Przedyskutowane zostanie podejście firmy do problemów bezpieczeństwa. Przedstawiona zostanie także wizja przyszłości, którą przedsiębiorstwo formułuje na podstawie swojej dotychczasowej pracy. Takie spojrzenie w przeszłość umacnia przejrzystość firmy, a także pozwala jej na dalszy rozwój. Jest to także świetna okazja dla autorów wpisów na blogu Chia Network – będą w stanie dodatkowo zgłębić swoją wiedzę i lepiej zrozumieć pewne zagadnienia. W ten sposób przyszłe publikacje będą jeszcze bardziej przystępne dla czytelników.
Na ten moment nie jest planowany żaden harmonogram wydawniczy. Wpisy będą publikowane nieregularnie, zaraz po ich opracowaniu. Chia Network zamierza stać się liderem bezpieczeństwa w świecie technologii blockchain. Zachęca do lektury weteranów farmingu, deweloperów ekosystemu, a także nowoprzybyłych użytkowników.
Coś na początek
Chia Network dąży do pełnej przejrzystości w odniesieniu do naruszeń bezpieczeństwa swojego blockchainu. W związku z tym firma chce wspólnie ze swoimi użytkownikami prześledzić przyczyny, wpływ oraz wnioski płynące z luk w zabezpieczeniach. W ramach pierwszego wpisu opublikowane zostały opisy niedawnych incydentów. Nie ma powodów do zmartwień – niedociągnięcia zostały usunięte i nie ma dowodów na to, że zostały one wykorzystane do złych celów.
Bezpieczeństwo jest krytycznym aspektem działania wszystkich organizacji. Chia Network pomaga tworzyć bezpieczne środowisko, a także chronić użytkowników i ich zasoby, upubliczniając wyżej wspomniane informacje. Konkretne naruszenia bezpieczeństwa opisane poniżej zostały wyselekcjonowane tak, aby jak najlepiej zademonstrować obecny stan zabezpieczeń ekosystemu Chia oraz filozofię firmy w tym zakresie.
Nieskończona rekurencja CLVM
Chia wykorzystuje model coina. Oznacza to, że wszystko na blockchainie Chia jest coinem. Do każdego z nich przyporządkowany jest program (łamigłówka), który uruchamia się w momencie wydania coina. Program ten składa się z kodu CLVM (Wirtualna Maszyna Chialisp).
Z uwagi na lukę w zabezpieczeniach istniała możliwość stworzenia programu CLVM w taki sposób, aby wykorzystał on nadmierną ilość pamięci, zanim skończą mu się „środki”. Chia Network pobiera opłatę za każdą operację i próbę alokacji pamięci w programie CLVM. W ten sposób możliwe było ograniczenie zasobów, które program ten pobiera z komputera walidującego blok lub transakcję. Wyżej wspomniany problem wynikał z przeoczenia kwestii kosztów alokacji przestrzeni w stosie maszyny wirtualnej.
Niedozwolone wartości ujemne w kodzie Ofert Chia
Oferty umożliwiają bezpieczną wymianę zasobów na blockchainie Chia. Podstawą ich funkcjonalności jest tzw. „łamigłówka płatności rozliczeniowych (ang. settlement payments puzzle)”. Odpowiada ona za pobranie środków ustalonych przez jedną stronę transakcji i odtworzenie ich po drugiej stronie. Operacja ta odbywa się obustronnie w sposób jednoczesny.
Dane wejściowe są chronione przez tzw. „ogłoszenia łamigłówki (ang. puzzle announcements)”. Jeżeli środki określone przez jedną stronę transakcji zostaną wydane przy jednoczesnym zapewnieniu ogłoszeń łamigłówki, wówczas wydane zostaną zasoby strony drugiej i odwrotnie. Ogłoszenia łamigłówki dbają o to, aby odpowiednie coiny oraz wartości były częścią danych wejściowych obu stron transakcji.
Luka w zabezpieczeniach znajdowała się w części kodu odpowiadającego za generowanie danych wyjściowych. Przeoczone zostało zaimplementowanie mechanizmu filtrującego wartości ujemne. W przypadku tworzenia tokenów CAT funkcjonalność TAIL jest uruchamiana w przypadku otrzymania wartości -113. Gdy program TAIL wygeneruje ogłoszenia łamigłówki chroniące dane wejściowe jednej ze stron, spełnione zostaną wymagania, a jej środki wydane bez względu na to, czy dane wejściowe strony drugiej pokrywają się z wymogami oferty. W ten sposób użytkownik tracił gwarancję, że w zamian za swoje zasoby otrzyma żądaną zapłatę.
Nieskończone pętle w mechanizmie obsługi błędów portfela
Portfel referencyjny Chia śledzi stan coinów, z którymi może wejść w interakcję. W tym celu łączy się z pełnym węzłem, który zgłasza wszystkie zmiany w stanie coinów. Odbywa się to w momencie przetwarzania bloków transakcji. Portfel przechowuje dane dotyczące wyżej wspomnianych coinów w swojej bazie danych. Jest ona synchronizowana z bazą danych blockchainu.
Portfel w momencie wydawania coina uruchamia kod adekwatny do jego typu. W przeszłości obsługa wyjątków w kodzie portfela mogła powodować odchylenia w stanie coinów. W przypadku wystąpienia błędu portfel cofał swoją bazę o kilka bloków i ponawiał próbę synchronizacji. Natrafiał wówczas na identyczny problem i podejmował próbę jego ponownej eliminacji. Generowało to nieskończoną pętlę, przez którą portfel nie był w stanie pominąć bloku zawierającego niepoprawny stan coinów.
Podsumowanie
Chia Network przyznaje się otwarcie do błędów popełnionych w kontekście zabezpieczeń swojego ekosystemu. Każda zidentyfikowana luka jest eliminowana jak najszybciej, a następnie dokumentowana. Blockchain poddawany jest walidacji w celu upewnienia się, że uchybienia nie zostały wykorzystane. Poziom oferowanej przez Chia Network przejrzystości daje użytkownikom ekosystemu poczucie zaufania i bezpieczeństwa. Otrzymują również możliwość samodzielnej analizy zabezpieczeń blockchainu od strony technicznej.