> you can Download the JSON Proof file, and share that publicly. It does not reveal any information of the coordinates you discovered.
But it is not at all clear that the proof does not reveal any information of the coordinates you discovered.
Similarly, it is also unclear that the JSON actually proves that you found the treasure. For example, there could be a specific string in the JSON that the program is checking
It is a cool example of coding, but not of zero knowledge proof in my opinion
The first doubt could be eliminated by an expert investigating the source code. The second doubt is more interesting to me. I wonder how that one could be dispelled.
In a more ideal scenario the code and prover/verifier would all be running in a decentralized fashion (see zk-evms and StarkNet for example).
You could also remix the demo and choose your own hashes for each emoji (see console when searching for coordinates to get its hash), and I could then be the one guessing your secret coordinates.
The demo runs locally by the way (no server needed).
{"proof":{"A":["528798437822554000995419106371609997575204115155385613032964921571940434242","19392573634889951777626956703843672538432944451899193682888548724342864529439","1"],"B":["9404113332953961826669890892917492905548480923188557301925639484569997434683","9355892340149400743721747317697733520039414623109138623712480516150240861752","1"],"C":["17025592921218423293803353276509975639327431231998740961079522035785553770278","17423498421731198093306578395594227183404340359018343837062584916083018536139","1"],"Z":["4679204973154686221676226117309749274108042290803986293348834038552965610694","18495471997097378260571021759032113343347720768624816790096532135583194497500","1"],"T1":["9867739328482857556240082341319546495849614236722730250625116628272791849277","2868165447457132393649370134790411696593144462382351418948962174508512798119","1"],"T2":["17087199959171424064564733158000941043006524389450810193258931251521734973371","2911105227677439634206272144083822945188790339567179520353606559518569996983","1"],"T3":["7129249599766093445028171268444907082411743186316411948288132376306904700379","2606039354317638260688803298171035577991543816558705808789024740126554704610","1"],"eval_a":"6895260220541269063962193341698926909365015746291078556123010150492168710344","eval_b":"8068725092477246053082827431610612461501706876500056081310697342029389110657","eval_c":"2704512929705984824776357863771653984806802643988862884038528594470902574120","eval_s1":"4794695569847439900751267112418103273161829262476159763959027953943371223323","eval_s2":"2163495885363626668152176373764360379814151330932793558189464412748989368897","eval_zw":"18806651421491306865145175336745334163344143620725244191448339490901611643578","eval_r":"17436641083417465197082211434092476275687970780131379758738973376030688767532","Wxi":["4431163539146773180222688732344240958561729429168725197361826098528123452180","10531431324455376227237108983493044130410098406199107820103575253972171316343","1"],"Wxiw":["5408442091202782791687007786548171585846105046857466808022018453657877169978","3593469123965015521385191034691943033447797110216175041703174577320301325259","1"],"protocol":"plonk","curve":"bn128"},"publicSignals":["14870881943777737729426810002848629979047457360865816386884132744016829330171","5"]}
proof: