Referral Program Giveaway Concerns
For a cryptocurrency to have real purchasing power, people need to believe in its financial value now and in the future. The first step towards belief is knowing about it which is why airdrops as marketing are popular. Without the network effect, there is no value. This raises the question, how do you give away something for free, far and wide, while also maintaining a proper understanding of its value proposition? Even bitcoin had faucets early on. Sybil attacks (one person pretending to be many) further complicate the giveaway approach.
We recently tried an experiment with a referral campaign to create incentives for FIO users to sign up their friends with free FIO addresses. As we suspected, in spite of our efforts to restrict by FIO public key, IP address, API key, data analysis patterns, and more, it appears addresses are being generated and submitted to the referral campaign that are not genuine FIO users. We thought the reward would be low enough and the random nature of the contest giveaway approach would prevent this, but it does not appear to be the case.
FIO intends to give away many millions of free FIO Addresses (12.5% of the tokens are locked on chain for this purpose). We need a reliable way to do so. In my 7.5 years in the space, I have yet to see a reliable approach, though I have heard captchas can help, and we have one implemented for free address registrations, but the direct API registration within the wallet bypasses this entirely.
We’re looking for your input for solutions to this challenge. How can we confidently do FIO Address giveaways and referral programs with small rewards without Sybil attacks?
It’s possible verified account identities of some kind (could even be pseudo anonymous, as long as connected to a single human being in a non-duplicatable way) may be part of the key for cryptocurrency mass adoption. Governments and financial institutions have a monopoly (of sorts) on “trusted” and reliable identity and reputation services for individuals.
Will blockchain disrupt this? Can we build this without centralized control and without it being used against us? Can we do this within FIO?
It sounds like what is in place is pretty robust and probably much more advanced than what we've done. But I'll share some of the core of our logic we have used for wallet free account creation before. It’s goes a little something like this:
calculate seconds since last request
record ip, mac address(es) in attempt log
search success log for ip. if found, fail
search success log for macaddress(es), if found, fail
validate mac address pattern or fail
validate required parameters or fail
check if seconds since last request is within configurable threshold (default 30 seconds) or fail
check if creation attempts within last 60 seconds exceed configurable threshold (default 15 attempts) or fail
check account name blacklist, ip address blacklist or mac address(es) blacklist. fail if found
if referred by present, verify referred by exists. issue referral tokens
record ip, mac address(es) in success log
record last creation and creation counter
return response