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.
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.
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.
- 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).
If this works, who will be coding it? Well, the answer is easy: most probably me, when I get the time hopefully.