Will any of the traders predict their roll on a 2000000000-sided Fairly Random die by EOY? (with hax)
7
15
แน€250
resolved Jan 2
Resolved
NO

Same rules as the linked market, but with a few tweaks/clarifications. To summarize:

  • If a trader correctly predicts their roll on a 2-billion sided FairlyRandom die (or a fork of it ostensibly using the same randomness protocol), they "win".

  • If at least one trader wins, the market resolves yes.

  • Cheating is allowed, but if somebody can prove that you cheated then your win doesn't count.

Differences compared to the linked market:

  • Die is 2 billion sided instead of 2000 sided so that the chance of winning without cheating is negligible even with a large number of traders participating.

  • Instead of a fixed target roll of 1337, you just need to unambiguously declare in advance what number you're going for (if unspecified, we'll assume 1337). This allows exploits that predict the result in advance even if they can't manipulate it.

  • Even though winning is effectively statistical proof that you cheated, that still isn't sufficient evidence on its own to disqualify you -- there needs to be some independent proof of cheating.

  • Updated commit hash for the randomness protocol: https://github.com/u0s41v/FairlyRandom/tree/9117363e82d589e3e13fd19254e264b028b2e95a. The only change from before is that the default offset between the declaration round and the result round is 2 instead of 1. You may not decrease the offset lower than 2 (but you can increase it if you want to).

  • You can try a few times if you want, as long as you're not just trying to brute force it. As a rule of thumb: Max of 10 tries total per trader, and I reserve the right to disregard attempts after the first one if it doesn't seem like they're made in a good faith effort to cheat.

Non-exhaustive list of things that DO count as sufficient evidence of cheating:

  • Overtly deviating from the prescribed randomness protocol. As long as it is proven that you deviated from the protocol, it's not needed to prove exactly how that deviation allowed you to cheat.

  • Posting your declaration comment with a Manifold timestamp more than 45 seconds later than the timestamp_available_estimate value that a protocol-compliant FairlyRandom would produce.

  • If the final randomness output posted by your bot doesn't match the expected output produced by an independent run of the fairly_random_verify.py script with the parameters specified in your declaration comment.

Unless disabling verbose is critical to making your exploit work, please use verbose=true in your FairlyRandom command for convenience of verification. Sample command:

@FairlyRandom 2000000000 verbose=true

I'll be betting NO here as a bounty for anyone who manages to find a flaw in the protocol. (And therefore you probably shouldn't use the price of this market as proof of how secure the protocol is, unless it attracts significant interest from other traders.)

Original market:

Get แน€1,000 play money

๐Ÿ… Top traders

#NameTotal profit
1แน€46
2แน€19
3แน€1
4แน€0
5แน€0
Sort by:
predicted NO

Looks like we had no serious attempts, so this will resolve NO unless there are any objections.

However if anybody does believe they've found a flaw in future, the offer still stands -- let me know (or a trusted neutral party if you prefer) to set up a new market with similar criteria and I'll happily subsidize a thousand M$ or so onto NO as a bounty.

predicted NO

@NeonNuke your random number is: 1774341561

Technical details

Round: 2544298, salt: XC1sIVNG2qGF3Dn249N1, retries: 0. To validate, run the following Linux command: echo -n 0a968d3f60670fa45db94880031e9b3d934c381dc707c9844ca0aff52ed6eff4-XC1sIVNG2qGF3Dn249N1 | sha256sum. Take the first sixteen hex digits of the output (0x8b5396ac74a2e5b8 = 10039533661774341560) modulo 2000000000 and add 1. Randomness details:

{"round": 2544298, "randomness": "0a968d3f60670fa45db94880031e9b3d934c381dc707c9844ca0aff52ed6eff4", "signature": "83395f5f72b313c18bb2e10061f785d3fad2ac74f2a81820084255b507ba811479dfee45b3a89da5c20fd5911869c5f2099d1799b442006033d482067dab28e4bf5aa39484cfad0044765c5bd82c9d96706e2fa01955b3515ce58d713bac7ce9", "previous_signature": "aa96d9d703fd3da9018581e775e854c4866dea033aa540d009264689e60aca3357ff8f681d5126966dad8c922f29cceb176d36f86debc19a4ce236489b46c96e1fa26346395a15a716c898086dab54b515b0bcb59ac0e7ef52cc72344d015bc8", "timestamp_retrieved": 1671759963, "timestamp_available_estimate": 1671759960}
predicted NO

@NeonNuke you asked for a random integer between 1 and 2000000000, inclusive. Coming up shortly!

You can view the open-source implementation and usage instructions for this bot on GitHub.

Technical details

Previous round: 2544296 (latest), offset: 2, selected round: 2544298, salt: XC1sIVNG2qGF3Dn249N1. Algorithm:

m = hashlib.sha256()
m.update(randomness['randomness'].encode('ascii'))
m.update('-XC1sIVNG2qGF3Dn249N1'.encode('ascii'))
while True:
   m_int = int.from_bytes(m.digest()[:8], byteorder='big')
   if m_int < 18446744072000000000:
       return (m_int % 2000000000) + 1
   m.update("-RETRY")

Randomness details:

{"round": 2544296, "randomness": "231335c91858047ffc7b2ad2f76a9e17018c5f953285b09327e262f3ad9ea948", "signature": "b42ded6a27af44d95020a2d9e66ca1833e012c869a437b6e10dabb5a85107d9d5d6fc0e878d9f37d22bee58012efa08f09e6b5e6369c3b9e7ac225c798d01fb43a36f0bae716400fbf69b249273be99780821d64a586c58ee5a90dc332a6e1cb", "previous_signature": "acf764109bcd4b6bb24d5ff259f778f6bc38ff748bf2bf3aaa7c2bcd2b46ce20349c147f650ad36d5c8c65d01b4d9d7c0da273cfdc7ff41b1284869fd761406a940f83c201c879be32be4acc3b1f61e89bbbd8ec0cc370d59c484360c110fa6d", "timestamp_retrieved": 1671759903, "timestamp_available_estimate": 1671759900}
bought แน€1 of NO

@FairlyRandom 2000000000 verbose=true

predicted NO

@howtodowtle your random number is: 971413205

Technical details

Round: 2520105, salt: W4eu2Ri2l4P8vziuJ1ed, retries: 0. To validate, run the following Linux command: echo -n 63dc80957558c9e431addd8ef1b1192315b8b15f1d8c517b48e5a148201b99a8-W4eu2Ri2l4P8vziuJ1ed | sha256sum. Take the first sixteen hex digits of the output (0xc935f877d66c86d4 = 14498767768971413204) modulo 2000000000 and add 1. Randomness details:

{"round": 2520105, "randomness": "63dc80957558c9e431addd8ef1b1192315b8b15f1d8c517b48e5a148201b99a8", "signature": "b31854c8ea7517444c0b6da93fcfd18ae5fb1ccf4e5c4b6e378d6f173e96c81c94a92ff9a6940e64c49c13b28c22986605164c015f16404b20b17dcba25510adb7a789f4fa9205f02c9c88295553b6845c6138598f5d8be4e81b5fb22f8a85b3", "previous_signature": "986bfc05c9e3c041c8a13b089973f9128eee81f3de5931117b1205c6369eb5a4ad98952fb54fe6938d71841498b20da80a70f944c446da057e387484c24f23d050d30cebf63c4532372b1b3303b739f52d7007247047f2159a919a667bac2fa9", "timestamp_retrieved": 1671034172, "timestamp_available_estimate": 1671034170}
predicted NO

@howtodowtle you asked for a random integer between 1 and 2000000000, inclusive. Coming up shortly!

You can view the open-source implementation and usage instructions for this bot on GitHub.

Technical details

Previous round: 2520103 (latest), offset: 2, selected round: 2520105, salt: W4eu2Ri2l4P8vziuJ1ed. Algorithm:

m = hashlib.sha256()
m.update(randomness['randomness'].encode('ascii'))
m.update('-W4eu2Ri2l4P8vziuJ1ed'.encode('ascii'))
while True:
   m_int = int.from_bytes(m.digest()[:8], byteorder='big')
   if m_int < 18446744072000000000:
       return (m_int % 2000000000) + 1
   m.update("-RETRY")

Randomness details:

{"round": 2520103, "randomness": "68c8069c57ef1494d6341a6af90f8cce2ff0fca46a35e3d0333337d9e19a801b", "signature": "886b9443f7f56f4df0b8c951a934316c3f8d5212ffc496986f4853a64cec79d1d8356ae62c3472e1401dc277bc8dd37c01a7b92b0ff09eb0968fb913397d7cf58d75ce0102f1ee07ffeaa1897e386a416fb62160cdec58dcad156a37b2561ee5", "previous_signature": "a367bccfeae4a650fbb05a6a52a4a96a671dc8ff97599e164061445af6903b0932dc29127b1ca0c47bb2cc1a274233a7194035bf62e50df123d92dda196f741c7502b7cf2db18aabe91f408dfb62a313923ca6ac9c5cf160a1a90568a21221c8", "timestamp_retrieved": 1671034127, "timestamp_available_estimate": 1671034110}

Going to roll a 4:

@FairlyRandom 2000000000 verbose=true

predicted NO

@Yev your random number is: 3

Salt: 1BPuoutr4mwda1NBDFNz, round: 2463420 (signature a71f6849198c7058b55183adc54e9a0736e1022fa609a605ccf4dfa2b354c3363bb1faf8e3d4c0c5e66f49013fb240bf0fbdd73c2a67775c9a5a555f8955b6acc08e883a4dcc825ee9d8bfdb5f11ec2376ecbe10080f7855a2870e01973b27d6)

predicted NO

@Yev you asked for a random integer between 1 and 10, inclusive. Coming up shortly!

Source: GitHub, previous round: 2463418 (latest), offset: 2, selected round: 2463420, salt: 1BPuoutr4mwda1NBDFNz.

@FairlyRandom 10 (this is just a test and not a real attempt)

Can I try as many times as I'd like?

predicted NO

@Yev Sure you can try a few times if you want, as long as you're not just trying to brute force it. Call it max of 10 tries total per trader, and I reserve the right to disregard attempts after the first one if it doesn't seem like they're made in a good faith effort to cheat.

predicted NO

@A your random number is: 538357089

Technical details

Round: 2463178, salt: FxL9S3pJiI6neEldiBGx, retries: 0. To validate, run the following Linux command: echo -n 38afa4f8b45c209723c81bfdd7ed9fdef53fedd914ecf9cdfabb59ee7350845f-FxL9S3pJiI6neEldiBGx | sha256sum. Take the first sixteen hex digits of the output (0x8c5be286be64dd60 = 10113926456538357088) modulo 2000000000 and add 1. Randomness details:

{"round": 2463178, "randomness": "38afa4f8b45c209723c81bfdd7ed9fdef53fedd914ecf9cdfabb59ee7350845f", "signature": "ad77bb91a01d6f6a9890e3613b43488f24407060bc84876719509819049f235a404e84f42a6dd71fe99ccc6b6c5c3aa00663998b26f2e569118553c5790244e723c6ec80375792a157fb7a7f56c34efefbbc1ef9322d5ce59859f382a6621152", "previous_signature": "87aa918591f39e8d9f758980fc7305ca823fbcdb8dad75d76c3c7fc5fbac0701da5bcc76e0a94e880a34d744fd7ac0231457c884eb7285c2c014003528b48519303ce9c657710e73e8d8c46e0b54a94865e66d260151975e853e1017fc429a7d", "timestamp_retrieved": 1669326362, "timestamp_available_estimate": 1669326360}
bought แน€50 of NO

@A you asked for a random integer between 1 and 2000000000, inclusive. Coming up shortly!

You can view the open-source implementation and usage instructions for this bot on GitHub.

Technical details

Previous round: 2463176 (latest), offset: 2, selected round: 2463178, salt: FxL9S3pJiI6neEldiBGx. Algorithm:

m = hashlib.sha256()
m.update(randomness['randomness'].encode('ascii'))
m.update('-FxL9S3pJiI6neEldiBGx'.encode('ascii'))
while True:
   m_int = int.from_bytes(m.digest()[:8], byteorder='big')
   if m_int < 18446744072000000000:
       return (m_int % 2000000000) + 1
   m.update("-RETRY")

Randomness details:

{"round": 2463176, "randomness": "daf00ae4c6e0b0456fc3579f34675b39f6df148d101b337acee2f1d30f54e226", "signature": "b69fd47adc4fff4b04c3fe67b9579c5aa617c4c9add660122be27796718ca341149a59520d9855118bd18a7361c16a0a02e92da8eb5127c0c54737ee0557d916966f6926de56dc13f9cd4ca65aef7cb6636a0f94b6cc56a08442a155b6da43c0", "previous_signature": "b2c5788b1799a5447c54d73aeb2f47d86b752447bd24544d169f44fce097f4fd974b3ad8973c0caa2fdc092aaa2103e915865cfb9f5e653ad861be2706c52db93d21fefc384d90e5df14fb6f93ee08f1b8cc109412e42ce5ef76db1ee2aac876", "timestamp_retrieved": 1669326325, "timestamp_available_estimate": 1669326300}
predicted NO

@FairlyRandom 2000000000 verbose=true

bought แน€50 of NO

Example roll -- trying for a result of "123"

Will any of the traders predict their roll on a 2000000000-sided Fairly Random die by EOY? (with hax), 8k, beautiful, illustration, trending on art station, picture of the day, epic composition