5 friends (Alice, Bob, Carol, Dave, and Emma) are participating in an egg-hunt game where they are looking for hidden plastic eggs. Each egg is worth a certain number of points, and the goal of the game is to accumulate one million points (or more).
We would like a commitment scheme where each of the players can proof he/she has 1 million points from the eggs they found, while revealing zero knolwedge about anything else (how many points exactly or which eggs were found).
Each egg has an amount of points written on one side of the egg, and a serial number of the egg on the other side. It is possible for 2 or more eggs to have the same amount of points, but the serial numbers are all unique.
The process will be as follows:
a. Each player makes a commitment to their serial numbers and point amounts.
b. The judges reveal a public list of all eggs with their serial numbers and amounts.
c. The players produce a ZKPOK that their eggs are in the list produced in step b...AND that the points exceed 1,000,0000 in total, making sure to also prove that the points match the serial numbers.
d. Based on the ZKPOK on step c, the players produce an additional ZKPOK that none of their eggs are in common with the other players.
I don't know that much about cryptography but was thinking maybe pedersen commitments could be
used since they are homomorphic and thus could be used in a range proof for point 1. Pedersen is also very common, but i'm open to any solutions.
I don't know how the inclusion/exclusion would be done. It's also ok if there is interaction in terms of the first proofs are provided and then the exclusion proof last because you need to see the other proofs to do this.
The deliverable will be a working implementation of the scheme in any major programming language.
1 freelancer is bidding on average $90 for this job
My preferred method of freelancing is an interactive approach to project solving. I have an MSEE specializing in Digital Signal/Image/RF Processing. I do my work in MATLAB (expert). I also do Python programming.