View Single Post
05-20-21, 03:09 PM   #4
DahkCeles
A Cliff Giant
 
DahkCeles's Avatar
AddOn Author - Click to view addons
Join Date: Jun 2020
Posts: 73
I don't suggest actually doing this... but here is a rudimentary peer-to-peer verification system you could build upon.

----

When Alice sends information to Bob signifying progress toward an achievement, she keeps a record of that info in her own saved variables.

When Bob later wants to tell Charles about his achievement, he hashes Alice's name (to protect Alice's privacy) and gives Charles the hash as a 'proof' of the achievement.

If Charles knows Alice, Charles will realize its her because he already has a hash of her name. He will ask Alice if Bob's claim was true. If Alice says yes, then Charles may carry on believing it. If Alice says no, then Charles will doubt Bob's claim.

This rudimentary system will fail if Alice resets her saved variables. Thus, consider two additional safeguards:
  • Achievements should be "over-earnable" meaning you continue making "progress" even after you earn them; this gives Bob additional opportunities to prove his trustworthiness in future interactions
  • Instead of everyone hashing Alice's name, Alice could hash her own identify including something pseudo-random like GetTime(). This becomes her identify that she gives everyone; if her saved variables ever wipe, she essentially takes on a new identity (think's she's new again) and does another self-hash with a different GetTime()
  Reply With Quote