Weryfikacja

Bezpieczeństwo

Kto i co może zmieniać w projekcie, skąd bierze się losowość i jakie ryzyka pozostają. Górna tabela czyta się prosto z sieci, a nie jest rysowana ręcznie.

Co teraz zapisano w sieci

Wczytujemy dane…

Otwarty kod, anonimowość i prywatność

Otwarty kod

Cały projekt (kontrakt, strona, skrypty startowe, testy) jest otwarty na licencji MIT. Kod można przeczytać. Budowa kontraktu poleceniem anchor build nie była jeszcze sprawdzana (zob. „Status”); po starcie będzie można zbudować program samemu i porównać go z tym działającym w sieci. Jak to sprawdzić

Link do repozytorium pojawi się tutaj i w stopce strony zaraz po publikacji.

Projekt jest anonimowy

Nazwiska i osoba prawna nie są ujawniane, a gracze nie potrzebują imienia, e-maila, telefonu ani paszportu. Wystarczy portfel. Zasady zapisano w kontrakcie, można je przeczytać. Druga strona anonimowości

Wypłata bez dokumentów

Kontrakt sam przelewa tokeny do Twojego portfela po jednym podpisie. W kodzie kontraktu nie ma dokumentów, ankiet, weryfikacji tożsamości (KYC), wniosków ani ręcznego zatwierdzania. To właściwość kontraktu, a nie zgoda na łamanie prawa Twojego kraju: za jego przestrzeganie odpowiadasz Ty (warunki). Jak wypłacić

Oficjalna strona: fairdrum.to

Przejrzysta i anonimowa strona: bez logowania i kont, bez cookie, analityki, liczników i skryptów reklamowych. Czcionki i skrypty serwuje sama strona, ustawienia (motyw, historia zakręceń na tym urządzeniu) są tylko w Twojej przeglądarce, a kod strony jest otwarty, więc wszystko można sprawdzić. Porównuj adres w pasku przeglądarki: jeśli różni się choć literą, to nie jest oficjalna strona.

Co wie strona i kto widzi Twoje działania

CoJak to urządzono
Imię, e-mail, telefon, dokumentyNiewymagane i nigdzie niepobierane: ani przy rejestracji, ani przy wypłacie.
Cookie, analityka, liczniki, reklamaNie ma. W kodzie strony ich nie ma, zewnętrznych skryptów i czcionek też nie dociąga.
Co jest w Twojej przeglądarceMotyw, tryb bębna, dźwięk i efekty (jeśli włączone), historia zakręceń na tym urządzeniu, który portfel łączyłeś, adres konta losowości. Wszystko zostaje na Twoim urządzeniu i nigdzie nie jest wysyłane.
Z kim łączy się stronaZ węzłem sieci Solana (RPC): czyta dane gry i przyjmuje Twoje transakcje. Z wyrocznią strona nie łączy się bezpośrednio. Węzeł widzi Twój adres IP i adres portfela, jak każdy węzeł sieci.
Co jest publiczne w blockchainieTwój adres, numer gracza, saldo, zakręcenia, wygrane i wypłaty: każdy może je zobaczyć. Adres pozostaje pseudonimem, pełnej anonimowości nie ma. Jeśli adres jest powiązany z Twoją tożsamością (np. SOL przyszedł z giełdy z weryfikacją), związek można prześledzić.

Anonimowość projektu i graczy nie jest absolutna i ma drugą stronę: projekt nie ma osoby prawnej, do której można mieć roszczenia. Opisano to w „Ryzykach”.

Klucze i co mogą

KluczCo możeCzego nie może
Prawo do aktualizacji programuWgrać nową wersję kodu kontraktu.Bezpośrednio zabrać tokenów nie można, ale nowa wersja kodu w zasadzie mogłaby to zrobić. Dlatego według planu startu klucz najpierw przekazywany jest multisigowi z opóźnieniem, a potem odwoływany; bieżący stan pokazuje ta tabela.
Emisja tokena (mint)Nic: według planu startu odwoływane zaraz po emisji.Tworzyć nowe tokeny.
Zamrożenie (freeze)Nic: nie wydawano.Zamrozić czyjeś tokeny.
Administrator (dev_authority)Zabierać nazbierane 10% zakręceń (claim_dev).Zmieniać zasady, zabierać salda graczy, nagrody, jackpot, fundusz aktywności.
Promocja (promo_authority)Płacić z funduszu promocji (promo_pay).Wszystko pozostałe.
Porządek przekazania prawa do aktualizacji.

1) na starcie u deployera; 2) przed startem w sieci głównej przekazywane multisigowi (Squads) z opóźnieniem wszelkich aktualizacji, żeby gracze widzieli zmianę z wyprzedzeniem; 3) gdy projekt okrzepnie, prawo jest odwoływane na zawsze, kod zamrożony. Bieżący krok widać w tabeli wyżej.

Skąd losowość

Kontrakt nie wymyśla losowej liczby sam i nie bierze jej od projektu. Używany jest ORAO VRF: w transakcji zakładu kontrakt sam prosi o losowość, a liczbę później zapisuje kworum niezależnych węzłów ORAO kryptograficznymi podpisami, które sprawdza ich program. Ziarno zapytania jednoznacznie wyprowadza się z klucza gracza i jego licznika, więc powtórzyć starego zapytania ani podmienić konta nie można. Dopóki węzły wyroczni działają uczciwie i niezależnie, dobrać ani przewidzieć wartości z góry nie można. Zaufanie do węzłów ORAO pozostaje: to zależność zewnętrzna.

Z jednej 32-bajtowej wartości kontrakt uzyskuje potrzebną liczbę liczb przez sha256, a gracz nie może na nią wpłynąć. Kontrakt przyjmuje tylko konto losowości należące do programu ORAO, którego adres wyprowadzono z ziarna gracza (bez tych sprawdzeń każdy mógłby podsunąć swoje konto z pożądaną wartością).

Jeśli wyrocznia nie działa, zakręcenia stają, a zakład zakręcenia zamkniętego po 3000 blokach nie wraca.

Czego kontrakt nie umie wcale

Zmieniać szans

Wszystkie liczby to stałe kodu. Nowe liczby możliwe są tylko nową wersją programu, którą widać po transakcji aktualizacji.

Zabrać salda gry

Instrukcji „zabrać graczowi” nie ma. Saldo wychodzi tylko do Ciebie przy wypłacie i w zakłady przy zakręceniach.

Wyemitować tokeny

Według planu startu prawo emisji jest odwoływane. Potem łączna emisja 100 mld może tylko maleć przy spalaniu.

Wypłacić dwa razy

Zakręcenie zamyka się raz. Bezpieczeństwo tokenów (suma pul i sald nie większa, niż leży w skarbcu) sprawdzają automatyczne testy na scenariuszach z wieloma graczami i pakietami po 1000 zakręceń.

Ryzyka, które pozostają

  • Błędy w kodzie. Kontrakt jest pokryty testami, ale niezależnego audytu nie przeprowadzono (zob. „Status projektu”). Niezauważony błąd może prowadzić do utraty środków.
  • Aktualizacja programu. Dopóki prawo do aktualizacji nie zostało odwołane, administrator (lub multisig) teoretycznie może wydać wersję z innymi zasadami. Śledź tabelę wyżej.
  • Wyrocznia i sieć. Awaria węzłów ORAO albo przeciążenie Solany opóźnia zakręcenia; zakład przy długiej awarii (ponad ~20 minut) przepada bez zwrotu. Zwrotu nie ma celowo: inaczej można by zajrzeć w wynik i odmówić przegranej.
  • Tokeny administratora poza kontraktem. Marketing i rezerwa (razem około 30% emisji) nie są zablokowane w kontrakcie, deweloper (10%) w vestingu zewnętrznego serwisu. Vesting: link nie wskazany; blokada płynności: link nie wskazany; multisig administratora: link nie wskazany. Jeśli link nie jest wskazany, uznaj, że sprawdzić tego na razie nie można.
  • Fundusz promocji. Klucz promo_authority może wysłać nazbierane w funduszu na dowolny adres. Każda wypłata jest publiczna (zdarzenie PromoPaid), ale kontrakt nie sprawdza, na co wydano.
  • Darmowe zakręcenia i multikonta. Sprawdzenia „to człowiek” w grze nie ma i być nie może: jedna osoba może zarejestrować wiele portfeli i brać darmowe zakręcenie z każdego. Wydatek ogranicza rozmiar funduszu aktywności, ale da się z niego wyciągnąć zauważalną część.
  • Duże skarbonki. Im większa skarbonka jackpota względem zwykłej, tym wyższy oczekiwany zwrot na zakręcenie; przy bardzo dużej może przekroczyć 100%. Tak działają wszystkie progresywne jackpoty, doświadczeni gracze przychodzą po duże skarbonki.
  • Szybkość sieci. Wszystkie zakręcenia przechodzą przez jedno wspólne konto kontraktu, więc w szczycie kolejka może rosnąć. To spowalnia grę, ale nie zmienia wyników.
  • Strona to nie kontrakt. Adres strony może się zmienić albo zniknąć; kontrakt zostaje wtedy w sieci i można z nim pracować wprost przez dowolnego zgodnego klienta.
  • Anonimowy administrator. Nazwisko i osoba prawna nie są ujawniane: jeśli coś pójdzie nie tak, przedstawić roszczenia i odzyskać pieniędzy przez sąd lub wsparcie nie można. Chroni tylko to, co zapisano w kontrakcie i co sprawdza się samodzielnie.
  • Prawo. Hazard w wielu krajach jest ograniczony albo zakazany. To Twoja odpowiedzialność.
  • To gra na szczęście. Gracz średnio traci część zakładów.

Jak sprawdzić samemu

  1. Otwórz adres programu w eksploratorze (Solscan, Solana Explorer) i znajdź pole Upgrade Authority: jeśli puste, kod zamrożony.
  2. Otwórz token: pola Mint Authority i Freeze Authority muszą być puste.
  3. Otwórz konto config programu i porównaj z „Ekonomią” sumy skarbonek, liczbę zakręceń i spalone.
  4. Zbuduj kontrakt z otwartego kodu (anchor build --verifiable) i porównaj hasz z tym w sieci (solana-verify).