Dotychczas opublikowałem już dwa posty związane z matematycznym prawem Benforda, które potrafi wykryć w transakcjach bankowych podejrzane zachowania lub malwersacje w zeznaniach podatkowych.
W jednym z artykułów obiecałem, że sprawdzę transakcje wysyłane na blockchainie Steem pod tym kątem.
Z poprzednimi artykułami zapoznasz się tutaj (dla rozjaśnienia tematu, polecam):
- Przestępcy, którzy nie znają prawa Benforda zawsze wpadną
- Prawo Benforda cz. 2 - uzupełnienie i przykłady
Metodologia eksperymentu
Skrypt napisałem w php.
Użyłem publicznej bazy Sbds mysql udostępnionej przez @privex.
$mysql_host = "sbds.privex.io";
$mysql_database = "steem";
$mysql_user = "steem";
$mysql_password = "steem";
Ten program analizuje wszystkie transfery wykonywane na blockchainie steem przez użytkowników, czy to są wysyłki do botów, giełd czy do nich samych. Dane te są zawarte w tabeli sbds_tx_transfers bazy.
zapytanie mysql:
select amount from sbds_tx_transfers order by timestamp desc limit 100000
Następnie stworzyłem wykres przy pomocy zwróconych danych obrobionych przy użyciu preg_match().
Wyniki i wnioski
Program przeanalizował 100,000
transakcji od daty 2018-02-12 23:57:33
do daty 2018-02-14 11:24:12
.
Ilość przesłanych Steem lub Sbd wyniosła prawie milion: 962129.57100034
.
Prawo Benforda
W skrócie, rozkład ten mówi o tym ile razy powinny pojawiać się cyfry wiodące w kwotach transferów pośród całej próbki.
Prawo to pokazuje teoretyczny rozkład tych wartości, szczególnie dla "dorosłych" (posiadających osobniki wielu rzędów) i naturalnie występujących w przyrodzie systemów:
Cyfra | Prawdopodobieństwo |
---|---|
1 | 30,1% |
2 | 17,6% |
3 | 12,5% |
4 | 9,7% |
5 | 7,9% |
6 | 6,7% |
7 | 5,8% |
8 | 5,1% |
9 | 4,6% |
Biorą to pod uwagę zestawiłem dane eksperymentalne z teoretycznymi co widać poniżej.
Bardzo dobrze widać, że rozkład "pasuje" lecz jest mocniejszy dla cyfr 1 i 5
Dokładne dane:
Cyfra | Teoretyczne prawdopodobieństwo | Eksperymentalna częstość |
---|---|---|
1 | 30.1% | 50.8% |
2 | 17.6% | 13% |
3 | 12.5% | 8% |
4 | 9.7% | 5.6% |
5 | 7.9% | 13% |
6 | 6.7% | 2.7% |
7 | 5.8% | 2.7% |
8 | 5.1% | 2.1% |
9 | 4.6% | 2% |
Widzę dwa główne powody, dla których w systemie steem pojawiły się te dziwne zachowania.
Za dużo cyfr 1?
Doświadczeni użytkownicy wiedzą, że na naszym blockchainie jest bardzo dużo mikrotransakcji o wartości 0.001, które służą przesyłaniu sobie wiadomości w memo lub służą spamerom i scamerom do wyłudzania datków lub delegacji steem power. To może powodować nienaturalne wybrzuszenie dla jedynki.
Za dużo cyfr 5?
To jest bardziej interesujące i będzie wymagało dalszych badań, które będę próbował przeprowadzić. Wydaje się że 5 pojawia się nad wyraz często bez powodu. Ale czy na pewno?
Moją pierwszą myślą były boty głosujące. Wiele z nich ma minimalny bid warty 0.5 lub 0.1 (!). Jeśli mam rację i tak dobrze to widać w analizie rozkładu może boty rzeczywiście są problemem naszej sieci i czas się nimi zająć?!
Tym wpisem chciałem Wam pokazać po raz kolejny siłe matematycznego myślenia. Blockchain jest publiczny i nic się tu nie ukryje.
Dzięki za uwagę, followy i głosy!
Obrazki:
- wykres zrobiony darmową biblioteką amcharts.com
Poprzednio w serii:
- Mam 200 Obserwujących! Zagadka dla wszystkich, warta 1 SBD
- Prawo Benforda cz. 2 - uzupełnienie i przykłady
- Popełnij błąd podczas projektowania gry, a wygram miliony - Edge Sorting
- Przestępcy, którzy nie znają prawa Benforda zawsze wpadną
- 100 Obserwujących! Wasze nicki zamieniam na liczby i gram w Lotto!
- Istnieje biblioteka, w której zapisane jest wszystko!
- Czy polityków lepiej losować niż wybierać?
- Dlaczego nie wiesz, że 0,9(9)=1?
- Jak wygrałem 2 SBD obstawiając ligę mistrzów losowo?!
- Czy z matematycznego punktu widzenia warto wierzyć w Boga?
- Jak poprawnie i dostatecznie losowo tasować karty (i łatwo)?
- Generator liczb lotto - kryptograficzny generator ISAAC wygrywa więcej od człowieka
Co do częstości występowania 5 jako cyfry wiodącej to jako pierwsze przyszły mi do głowy klucze prywatne Steem. Zaczynają się one właśnie od liczby 5. Przy 'memo' to jeszcze może mieć jakiś sens, ale przy kwotach transferów już nie do końca.
Może akurat odkryłeś jakieś ciekawe powiązanie?
Zindeksowałem kwoty z piątką, i to są najczęstsze:
[5.000000] => 1073 [0.500000] => 4697 [0.050000] => 3190 [0.005000] => 681
Zrobie dodatkowe wyliczenia, żeby zobaczyć jakie konkretnie kwoty na to wpływają, ale obstawiam wysyłki do botów
Lubię takie analizy. Post jak najbardziej godny uwagi. Można by też wziąć pod uwagę inne przedziały czasowe, wtedy wiedziałbyś kiedy te anomalia się zaczęły, a może są one od początku istnienia steema.
Pewnie pokusze sie o sprawdzenie tego, a moze zrobie apke zeby chetni sobie sami sprawdzili jakie chca przedzialy
Twój "matematyczny" post wywołał humanistyczny koci uśmiech satysfakcji w mej metafizycznej wewnętrznej fizjonomii :)
Nie wiem czy to dobrze czy źle ;)
Jak uśmiech ... to dobrze. A nawet bardzo dobrze.
Duża ilość tranzycji z 1 może wynikać z tego, że ludzie przywiązują się do ładnych liczb. Często w planach są założenia z nimi związane - "zarobić milion". Z tego wynika, że znacząca część transakcji jest związana z takimi działaniami.
np. jak przekroczę 1SBD (10, 100...) to wypłacę/zamienię na Steeem
Tak, i jest to zupełnie naturalne zachowanie, ale nie tylko dla ludzi a np. mas atomów.
jednak to kwot 0.5 jest pięć razy więcej niż 5 :), szukamy dalej ale boty b. czesto przyjmuja właśnie 0.5