In February I blogged about a faucet game I created called Wisdom Nuggets. You can read more about it here: Wisdom Nuggets: A FIO Token Faucet Game! Over $1,000 in the pot!
You can play the game here: https://wisdomnuggets.lukestokes.info/
After almost 10,000 FIO given away, I'm going to suspend distributions for now. I wrote some code yesterday to analyzing the patterns I was seeing and summarized the output below:
Faucet Action as of 2021-05-04
vuuchahodjvm (faucet@stokes) In: 10,000 Out: -8,651 Balance: 875
Accounts taking from faucet: 128
Average amount taken: 67
Median amount taken: 49
TOP 200 TAKING FROM FAUCET
Account | Net Transfer Amount | |
---|---|---|
1 | erzarlh@edge: | 544 |
transfers to: | ywaltcuzitr3: | 202 |
2 | jupiter@guarda: | 276 |
3 | azaria@edge: | 237 |
4 | jimkeyes@guarda: | 210 |
5 | benson@guarda: | 190 |
6 | givememore@edge: | 186 |
transfers to: | raoiu513akbe: | 183 |
7 | blanch@edge: | 172 |
8 | olympus11@edge: | 166 |
transfers to: | mlbkwjczru43: | 159 |
9 | hodler@infinitowallet: | 152 |
10 | daveonican@edge: | 146 |
transfers to: | v33uay5rv3yt: | 88 |
transfers to: | cryg4fxvo3at: | 50 |
11 | currico@infinitowallet: | 144 |
12 | oremocaa@edge: | 141 |
transfers to: | v33uay5rv3yt: | 183 |
transfers to: | cryg4fxvo3at: | 49 |
13 | mywallet@infinitowallet: | 130 |
14 | jet@infinitowallet: | 126 |
15 | jaylover23@guarda: | 125 |
transfers to: | cryg4fxvo3at: | 119 |
16 | redbit@edge: | 125 |
17 | russel@guarda: | 123 |
18 | miariveer23@edge: | 119 |
transfers to: | cryg4fxvo3at: | 99 |
transfers to: | jbkwvx5pmk4s: | 50 |
transfers to: | v33uay5rv3yt: | 44 |
19 | aybeeq@shapeshift: | 113 |
20 | arm@edge: | 112 |
21 | limitless@infinitowallet: | 111 |
22 | mimo@ecoins: | 111 |
23 | caffeine@edge: | 110 |
24 | jedau@guarda: | 110 |
25 | mine10@coinomi: | 108 |
26 | rafa@shapeshift: | 106 |
27 | jack@coinomi: | 105 |
28 | deziqx@edge: | 104 |
29 | ranbir@tribe: | 104 |
30 | baimian@coinomi: | 103 |
31 | santi@edge: | 95 |
32 | just@once: | 90 |
33 | realstuart@edge: | 89 |
34 | scatter@scatter: | 86 |
35 | delmo22134@guarda: | 85 |
transfers to: | 5caathm5pplu: | 41 |
transfers to: | 5o1bsj1mk32o: | 35 |
36 | veronicaprc@guarda: | 85 |
transfers to: | v33uay5rv3yt: | 52 |
transfers to: | mlbkwjczru43: | 25 |
37 | leader@tribe: | 84 |
38 | jenga@qtum: | 83 |
39 | laroche@mas: | 83 |
40 | null@edge: | 79 |
41 | x@mas: | 77 |
42 | nh@ecoins: | 77 |
43 | mizu@bitkeep: | 76 |
44 | akhibarca@guarda: | 73 |
transfers to: | cryg4fxvo3at: | 66 |
45 | rinuiww23@coinomi: | 73 |
transfers to: | cryg4fxvo3at: | 67 |
46 | sam@mas: | 72 |
47 | matsuyamafutaro@coinomi: | 72 |
transfers to: | 5caathm5pplu: | 40 |
transfers to: | 5o1bsj1mk32o: | 25 |
48 | minmin@guarda: | 69 |
transfers to: | wpqmzwbxqwi1: | 34 |
transfers to: | mifwmbuwtidg: | 33 |
49 | robertadf@guarda: | 66 |
transfers to: | v33uay5rv3yt: | 58 |
transfers to: | 5o1bsj1mk32o: | 23 |
50 | joel@mas: | 65 |
51 | dfauraazz@coinomi: | 64 |
transfers to: | v33uay5rv3yt: | 52 |
transfers to: | 2mbjun54zriz: | 11 |
52 | wisdom@smart: | 61 |
53 | aminroid@edge: | 60 |
transfers to: | mifwmbuwtidg: | 43 |
transfers to: | wpqmzwbxqwi1: | 17 |
54 | omega@edge: | 60 |
transfers to: | tuh4ftqtg2oi: | 11,790 |
transfers to: | 5wpgrurkfa2h: | 100 |
55 | rminc4@guarda: | 60 |
transfers to: | cryg4fxvo3at: | 50 |
56 | finx@edge: | 59 |
transfers to: | wpqmzwbxqwi1: | 52 |
transfers to: | mifwmbuwtidg: | 6 |
57 | work@cm: | 56 |
58 | hanshd@edge: | 55 |
transfers to: | 5o1bsj1mk32o: | 24 |
transfers to: | tdpuiqgfswwr: | 22 |
59 | tessa@atomic: | 54 |
60 | ericgo@shapeshift: | 53 |
61 | jane@scatter: | 52 |
62 | mbarfi@edge: | 51 |
transfers to: | wpqmzwbxqwi1: | 43 |
63 | jonnajin@tribe: | 50 |
64 | rugird@edge: | 49 |
transfers to: | wpqmzwbxqwi1: | 42 |
65 | zupr@trustee: | 49 |
66 | 0x@ecoins: | 49 |
67 | live@edge: | 48 |
68 | songhe@coinsph: | 48 |
69 | laplacee@edge: | 47 |
transfers to: | wpqmzwbxqwi1: | 40 |
transfers to: | mifwmbuwtidg: | 5 |
transfers to: | 5x2c1fixlt3n: | 1 |
70 | wwheatm@edge: | 47 |
71 | pay@infinitowallet: | 46 |
72 | rankoolpatri@tribe: | 46 |
73 | omegbule@edge: | 45 |
transfers to: | uq5fl1e32mia: | 56,885 |
transfers to: | giaavnitruez: | 56,879 |
74 | rachel@guarda: | 44 |
75 | xoid@edge: | 42 |
transfers to: | wpqmzwbxqwi1: | 35 |
transfers to: | mifwmbuwtidg: | 6 |
76 | minzy@smart: | 41 |
77 | galgal@guarda: | 41 |
transfers to: | mlbkwjczru43: | 34 |
78 | kinglee@infinitowallet: | 41 |
79 | latita@guarda: | 40 |
transfers to: | wpqmzwbxqwi1: | 30 |
80 | thales@ecoins: | 39 |
81 | maybelater@edge: | 38 |
transfers to: | wpqmzwbxqwi1: | 37 |
82 | im@guarda: | 37 |
83 | bigtearteo@guarda: | 37 |
transfers to: | 2mbjun54zriz: | 30 |
84 | zoomareflash@edge: | 36 |
transfers to: | wpqmzwbxqwi1: | 29 |
transfers to: | mifwmbuwtidg: | 6 |
85 | gobtil@edge: | 35 |
transfers to: | wpqmzwbxqwi1: | 29 |
transfers to: | mifwmbuwtidg: | 5 |
86 | soccerdancer@edge: | 33 |
87 | tilly@shapeshift: | 32 |
88 | arturia@edge: | 31 |
transfers to: | 2mbjun54zriz: | 23 |
89 | whpsht@edge: | 31 |
transfers to: | wpqmzwbxqwi1: | 30 |
90 | deangabriel@guarda: | 30 |
transfers to: | v33uay5rv3yt: | 29 |
91 | merp@infinitowallet: | 29 |
92 | srhuf@guarda: | 29 |
93 | cstella@guarda: | 29 |
transfers to: | 2mbjun54zriz: | 21 |
94 | grandmarda@guarda: | 27 |
transfers to: | 2mbjun54zriz: | 21 |
95 | basseyed199@shapeshift: | 26 |
96 | xavitar@edge: | 26 |
transfers to: | wpqmzwbxqwi1: | 25 |
97 | vg@edge: | 26 |
98 | firztatue@edge: | 26 |
transfers to: | wpqmzwbxqwi1: | 20 |
transfers to: | mifwmbuwtidg: | 5 |
99 | helloworld@bitcache: | 26 |
transfers to: | xebbsmmwoldj: | 1,600 |
100 | mantra@edge: | 24 |
101 | fernax@mas: | 24 |
102 | ramure@edge: | 23 |
transfers to: | wpqmzwbxqwi1: | 16 |
transfers to: | mifwmbuwtidg: | 7 |
103 | 3000lily@coinomi: | 23 |
104 | andrewk@edge: | 22 |
transfers to: | cdatfpo2i5ck: | 6,394 |
105 | veldoragon@edge: | 19 |
transfers to: | wpqmzwbxqwi1: | 19 |
106 | devon@stokes: | 18 |
107 | adam@edge: | 18 |
transfers to: | pqscd3hctmnm: | 18,700 |
transfers to: | vstu2a1praop: | 1,387 |
transfers to: | a1j3np1g1ta4: | 509 |
transfers to: | yjbjdurw1f3s: | 26 |
transfers to: | qicupgvb233h: | 25 |
transfers to: | qwi4x3zfkuna: | 12 |
transfers to: | fqj3ons4afo3: | 4 |
transfers to: | mretptbvldeu: | 1 |
transfers to: | eovoawesg44c: | 1 |
transfers to: | hta4ofnct2n3: | 1 |
108 | ayeon@sofi: | 18 |
109 | stephen333@edge: | 16 |
110 | aria@stokes: | 12 |
111 | sarah@guarda: | 12 |
112 | anzinlakh@magnum: | 10 |
113 | lynn@currencyhub: | 9 |
114 | jill@qtum: | 9 |
115 | flblockchain@trust: | 9 |
transfers to: | 3buxt2ubv3cm: | 19,737 |
transfers to: | srdgz2wagp3b: | 164 |
transfers to: | akxirg4stmkc: | 116 |
transfers to: | qckjetzyncsx: | 30 |
transfers to: | wr2gdcbdthss: | 30 |
transfers to: | y3v2qcjzkpjo: | 15 |
116 | kipsang@guarda: | 8 |
transfers to: | wpqmzwbxqwi1: | 7 |
117 | sinta@guarda: | 7 |
118 | xz@guarda: | 7 |
119 | freng@guarda: | 7 |
120 | crackal@edge: | 6 |
transfers to: | raoiu513akbe: | 8 |
121 | jlome@bitkeep: | 6 |
122 | awder@edge: | 6 |
123 | karutamo@guarda: | 6 |
124 | wecandoit@guarda: | 6 |
transfers to: | wpqmzwbxqwi1: | 5 |
125 | erehmaybeeren@guarda: | 6 |
transfers to: | wpqmzwbxqwi1: | 5 |
126 | keion@guarda: | 5 |
127 | stopwar@guarda: | 5 |
transfers to: | wpqmzwbxqwi1: | 5 |
128 | bifimonste@guarda: | 2 |
transfers to: | egc33pjq1kkt: | 2 |
From this data, we immediately see that some accounts transfer to other accounts like so:
- raoiu513akbe
- mlbkwjczru43
- v33uay5rv3yt
- cryg4fxvo3at
- 5caathm5pplu
- 5o1bsj1mk32o
- wpqmzwbxqwi1
- mifwmbuwtidg
As with any faucet without some strong KYC mechanism in place to prevent Sybil attacks, this was inevitable.
You can learn more about Sybil attacks in this article (where the above image was borrowed from). It's an important concept to understand blockchain security models and any type of giveaway which intends to reward individuals, not one person pretending to be multiple individuals.
I ran this faucet with my own funds as an experiment because I knew this would happen, and I was curious what shape it would take. They were easily able to get around the Google Captcha I installed and based on the logs I have, they were able to obtain different IP addresses rather easily. I didn't want to put the community treasury at risk for this experiment, so I used my own 10,000 FIO (worth ~$3,400 as of this post).
My initial intentions with the Wisdom Nuggets Faucet game include:
- Create a fun (i.e. dopamine engaged) experience which helps the experiencer memorize content.
- Include content which I believe helps the process of consciousness evolution (being less wrong with less entropy and more awareness of what is).
- Create an excuse for people to get their own FIO Addresses and become familiar with engaging with a site using the Anchor wallet for the login process.
- Distribute FIO tokens to many individual people in a similar way other crypto faucets have historically done, but not just through filling out a captcha, but through some engaging process that might actually result in self-improvement for the experiencer.
- Learn more about the FIO protocol, Anchor Link, and EOSIO core through direct experience and experimentation creating and refining the game.
I think I accomplished all of these, but failed a bit with number 4. As the data shows, those playing don't represent a large number (100+) individuals, but one person pretending to be multiple people. Or, more precisely, one person taking necessary steps to circumvent the limitations I built into the system that restrict the amount an individual account can win per distribution (which I do manually).
So, where do we go from here?
I'm not quite sure. For now, I'm going to suspend distributions.
Some possible future improvements I could make:
- I could create a blacklist of accounts which are not eligible for further rewards as they are clearly Sybil attacking the system. This would only create a cat and mouse game which I would inevitably lose as they just get better at hiding their tracks or avoiding the consolidation of funds which makes this activity so easy to spot.
- I could restrict rewards in the game to paid FIO accounts. Any account which was subsidized by the Foundation (i.e. "free") would not be eligible for rewards.
- I could require a login with Idena validated account which would prevent the Sybil attack completely. The next identity verification ceremony is tomorrow, btw. Check out https://idena.io/ for more information.
I might also explore some other decentralized identity solutions or require a certain level of skin in the game before you can play (have X FIO tokens which haven't moved for a month, for example). For now, I'm going to put things on pause and think about other ways to accomplish my intended goals.
If you want to follow along with the project, follow https://twitter.com/WiseFIOFaucet on Twitter.
Do you have any ideas for me to improve the faucet?
I have a friend I'm working with to clean up the style and design, but I'd like to get this faucet part fixed before I put too many additional resources into the game.