SUMMARY:
I am seeking to find out the viability of following idea that creates new incentives for average humans to use P2P Cash, I require input, comments and criticism from other ecosystem participants, especially Node developers.
This is a PRE-CHIP, an idea that might become viable. Hopefully your input will help me to determine whether it is viable or not and whether it can be made into a real CHIP.
MOTIVATION:
During my observation of human society, I noticed that the desire for freedom from interference and other people is not the dominant driving force of everyday life for an average human. Instead; taking risks, belief in random chance of success and similar greed-fueled activities are the norm.
So, this is where, after 2 years of thinking, the idea came from; to create a “greed engine” to power brick&mortar adoption, donations, flipstarter pledges and other things that Bitcoin Cash community considers important for the success of P2P Cash around the world.
TL;DR:
The idea that came to me [working name: OP_LOTTERY]:
- What if there was a way to create a Bitcoin Cash public key (address) that automatically sends some percentage of all received funds back to sending address at random after some expiration time or at a pre-defined date?
- This would probably work using some clever kind of smart contract
- Every lottery is provably fair because it is all done by the blockchain.
- After the lottery expiration date triggers, all funds from the address are multiplied times “payback percentage” (I propose 10% as default) and sent to one winner, selected at random
USAGE IN REAL LIFE:
- Incentivizing donations/flipstarters: Every donation round or flipstarter becomes also a lottery where a human can “win big”.
- Incentivizing retail adoption and payback schemes in shops. Customers have increased motivation to shop, because there is a chance they “win” every time they spend.
- Creating casinos on blockchain with almost no extra software needed, as the winning percentage can be freely adjusted.
IMPORTANT DETAILS:
More technical:
- After the coins are sent to address, they sit on it for a predefined amount of time (or until a specific date)
- The owner of the receiving address is the “lottery owner”
- After the predefined time or at a predefined date, a “winner” is selected at random
- A percentage value from all funds sitting on the address is calculated and then sent to the winner.
- Since the Bitcoin Cash blockchain is a very good source of random numbers, we can use it in the calculation that determines the winner.
- The mining/node software uses the random data available in block, for example:
- Get SHA256 (PREV_BLOCK_HEADER + ALL INCOMING TRANSACTIONS PUBKEYs + NONCE)
- Create a random seed from this hash
- Using the random seed, select the winner that is the “closest” the the seed value using some clever fully deterministic algorithm
PROBLEMS TO SOLVE:
-
Is this even doable? Can it be coded at all?
-
The miners would have a great incentive to steal the lottery funds by sending their own transaction to the lottery address and adding it at the end of each block. Is this a viable attack scenario for a miner? (Also see votes scheme ideas below)
-
How many “votes” does a lottery participant get? My ideas:
A) One sent transaction = One vote. The problem with this approach is people will spam as many low-value transactions as possible. Probably not viable.
B) One sent satoshi = One vote. The problem with this approach is that the biggest fish gets the biggest chance of winning. This is why I suggest that the default percentage of the lottery is 10%. In this idea, how to disincentivize the lottery owner (owner of the receiving address) from adding a lot of his funds in order to win the lottery? (I logically assume there is no way to stop this completely from happening).
C) Other? -
If this works, who will be coding it? Well, the answer is easy: most probably me, when I get the time hopefully.