top | item 26960729

Amulet – a short poem with a lucky SHA-256 hash

149 points| simonpure | 4 years ago |text.bargains | reply

115 comments

order
[+] Closi|4 years ago|reply
My attempt at one: https://pastebin.com/SEEpx3C4

> Hello Hackernews, This is one. Whats so tough?

47d751f8964d717320b888888b81db0a8a35e79f528549f0e9dba13e0e4d6c4c

(In short, allowing all unicode characters makes this trivially easy... HN gets rid of some of the unicode weirdness though so I had to put it on Pastebin. I assume this matches the 'load bearing' criteria as I only use variable width spaces rather than additional characters.)

Not putting it on the blockchain though because I don't hate the planet.

[+] TheDong|4 years ago|reply
> I assume this matches the 'load bearing' criteria as I only use variable width spaces

I think you might be stretching the rules slightly with that stuff.

Using "medium mathematical space" (U205F) instead of an ascii space seems pretty clearly to be using a special character for the purpose of manipulating the hash.

I'd much rather amulets be created not by messing with invisible codepoint differences, but rather by making more typographically distinct entries and picking out ones that are correct.

When I saw "generated", I thought "have a thesaurus suggest word swaps", not "manipulate invisible unicode characters"

[+] jamesrom|4 years ago|reply
Adding data to a blockchain doesn't use extra energy... As in, probably in the order of posting it to HN. The next block will be mined whether or not your amulet is in it.

More likely however is that the code you used to generate this amulet was worse for the environment.

[+] SquibblesRedux|4 years ago|reply
One more amulet generator, for the road...

  #!/bin/bash
  COUNT=1
  while true ; do
    COUNT=$((COUNT+1))
    SHA=`echo "I adopted $COUNT puppies." | sha256sum | egrep 8888`
    if [ "$SHA" != "" ] ; then
      echo "$SHA I adopted $COUNT puppies."
    fi
  done
Sample output:

  4f3e14ded07eda16a7fb57c42aebf1f97ef67acba4980bf472a8e188887c7726  - I adopted 6484 puppies.
  57c3e9fd05f06a705206d38888b317b5eb596d35c6f308b909a440e2c8e391c8  - I adopted 6627 puppies.
  4624f6bb4c7d3d8328888495c1422a1891b609b81abda3ff4d70bedd1c4f6cdd  - I adopted 12631 puppies.
  9c0be05548139888804d3799ad5729ea424b0487487a6b18803f1aa5746c1904  - I adopted 15663 puppies.
  c60fc3f97f62ee07665325e235faa05fefc445aee7d356a9d81f58888c475147  - I adopted 15861 puppies.
Bonus points if the number of puppies adopted is a palindromic prime. [1]

[1] https://en.wikipedia.org/wiki/Palindromic_prime

[+] PaulDavisThe1st|4 years ago|reply
Now 6:

7c31d274888888f28e37743d4c554e5fffdb7df35a1291bc83119e31743a233b - I adopted 43653 puppies. 5888888c44ce19109d9021679ca8023314cb06a0b48fe9f57f34d2f83ee5a971 - I adopted 321255 puppies. b4b4f1bdf07da6049c7aa172504e8f7464d13333508888889743ebd9136f0345 - I adopted 521564 puppies.

It's hard to buy the classification of rarity outlined in TFA.

[+] PaulDavisThe1st|4 years ago|reply
Tweaked to find 5 8's:

88888eb74ed90df21487f33795e8af9f578b6b5e359db71e4ac0b2bd8b1115c8 - I adopted 34534 puppies. 7c31d274888888f28e37743d4c554e5fffdb7df35a1291bc83119e31743a233b - I adopted 43653 puppies. e88888508aeaea73f45925e9af3e95890ec15362ce0b0244f56d271f0ba8ce8e - I adopted 53527 puppies.

probably more coming soon ...

[+] jffry|4 years ago|reply

     7, b2a3a24530d0e7c15e821d944e34a28178888888458c7d660573ad6e11707df1 - I adopted 2222020 puppies.
     8, 8888888808a07e25f69a55118d348c25774e94d21800c6015341d0ff42664e62 - I adopted 6443609616 puppies.
     9, 7f0183bc4b5eae3888888888cd55e9b158b6e6f258c7c82f4005cc2ea5ae5a5a - I adopted 4135438531 puppies.
    10, 20d394319b224629b96f8888888888b800e2c53b04f3ed6d0dea7e8f96e41c41 - I adopted 1356889176260281396 puppies.
[+] davidcollantes|4 years ago|reply
How about modifying this one, to use hexadecimal numbers instead?
[+] wgetch|4 years ago|reply
You begin to contemplate neutral yet fascinating sensations.

8c29152333c388888888961e813457759ca87a8b54078779f8cbdefedf6401d2

You picture an infinite and essentially captivated dimension.

a8888ff4ddb3e7c0c38d30a8b4184f78d85888806f67ab73ca64c5ad51cae6b8

[+] SquibblesRedux|4 years ago|reply
Optimization (for any attribute) is left as an exercise for the reader.

  #!/bin/bash
  while true ; do
    W1=`shuf -n 1 /usr/share/dict/words`
    W2=`shuf -n 1 /usr/share/dict/words`
    W3=`shuf -n 1 /usr/share/dict/words`
    W4=`shuf -n 1 /usr/share/dict/words`
    W5=`shuf -n 1 /usr/share/dict/words`
    SHA=`echo "$W1 $W2 $W3 $W4 $W5" | sha256sum | egrep 8888`
    if [ "$SHA" != "" ] ; then
      echo "$SHA $W1 $W2 $W3 $W4 $W5"
    fi
  done
Sample output:

  00b6b668465deadabf11d7296e7de33780643e23c967e255888884f34ecc41de  - frigorifical psittaceous goodeniaceous oostegite handsomeish
  b3096654fa38ca318888b2c4eea4a9d93b9e49b02c54f390d2f06ca74d9e8edb  - refuser skepful assumptive hypostatic toothleted
  ef3a7d3b25a8cffe730b888800884ddde96ea7e58608c8bd714b5db7a5caf3fb  - coenobioid graticulation astrognosy remica swarthily
  c8888957c0105b6ea64b24853ec6c1a34828c0552c2776b6a4bd35d6129c3b87  - barbarously withinside underwing autocratic punkah
  5ca89be465ab472eea785ab950ea28ce03457a09d1fecd2bc75b88888c269e5d  - Malay persuade truantlike binodose suppose
  20bdbfcdb6345888814555c2d0abeaa2f2b7c81506a661c99f7c2675688d4917  - dorsimedian seasonably cuckoo eyewinker hyperthyroidization
  337675d56afb73835c58888f509de783a9385e3f249784d50b9a3e50c6a68a77  - squamous calp choosingly velum forborne
  e08888a15d449e8c2dab2283d53adfa5b1bfc7fe99ccd0fd7bbe45a4ce9b0bdb  - equipartition creatininemia treaclewort Menobranchus undisturbedness
[+] puzzlingcaptcha|4 years ago|reply
>left as an exercise for the reader

so do we start with markov chain generators or jump straight to gpt-3?

[+] LeoPanthera|4 years ago|reply
You only have to run shuf once:

shuf -rn 5 /usr/share/dict/words | tr '\n' ' '

[+] 0xbadcafebee|4 years ago|reply
I found it hilarious that none of the dicts packaged by Debian/Ubuntu include the word "cafe", but they do have "subprehensile".
[+] p1mrx|4 years ago|reply
This concept is philosophically interesting, because an infinitely-powerful deity could compose text with a hash value of all 8's, and anyone could verify that it was authored by someone with more computing power than the universe.

The fact that this is possible, but hasn't happened, may imply that we have never received a message from such an entity.

[+] schoen|4 years ago|reply
There was a religious apologetics claim, widely presented and debated in the 1990s, that there were statistical anomalies in the Torah to show that it was really written by God: https://en.wikipedia.org/wiki/Bible_code

However, the measurement technique was somewhat underdetermined, which is a problem akin to p-hacking (as you could look for many possible anomalies and only publish the ones that you successfully find).

> anyone could verify that it was authored by someone with more computing power than the universe

I never thought of this that way, but that's an excellent way to put it! (Although you also need to assume that the hash is extremely strongly preimage-resistant, which we don't have good mathematical techniques to prove today.)

One challenge for this: what is the canonical text encoding and canonicalization, and what is the canonical hash function?

[+] Closi|4 years ago|reply
I doubt that is possible with the 64 byte limit (at least making something that makes sense to read as a poem, as per the challenge).
[+] fwip|4 years ago|reply
The more likely explanation would be that a human has broken SHA-256.
[+] blopker|4 years ago|reply
This script [0] takes any amulet and adds various combinations of unicode white space to the end to create a rarer version without visually changing the original. It definitely goes against the spirit of white space being "load bearing", but was fun to make anyway.

[0] https://github.com/blopker/amulet_finder

[+] banana_giraffe|4 years ago|reply
After feeding it different fortune databases:

    Conscience is what hurts when everything else feels so good.
I found an "uncommon" one.
[+] banana_giraffe|4 years ago|reply
If you accept the questionable premise that the people that write short summaries used in IMDB are writing poetry, then the summary of "Road Trip" (tt7328966):

Two friends set out on a road trip but one of them has a few questions he needs answered.

Is an "epic" Amulet (7 8s in a row)

I think I need to stop now.

[+] airstrike|4 years ago|reply
`All Play And No Work Makes Jack A Rich Boy` is a common amulet

    d978352a5d57437fa1c8388f428888a5d3c6bd1d0a4c1726e21113414805694a
                              ¯¯¯¯
[+] snypher|4 years ago|reply
'I wonder if there's any chance of finding one just by typi' is my uncommon ('...dc28888858...')
[+] fxtentacle|4 years ago|reply
Hello HackerNews from fxtentacle !!1!!!!1!111!!11!!!11!!1

2c27e38aaba003380ea55c4c674aa2f3f17743481c107dc388888884a689353b

This is an epic amulet!

[+] metalelf0|4 years ago|reply
Oh, Dante, only common ones in the Divina Commedia.

de la quartana, c’ha già l’unghie smorte, 07103f886e0b6cd70c39da95aa9048888232bd40cab66554775314ba54be086e

Maggiore aperta molte volte impruna 48888078da7fcab4688ed1cdb6672b9ad95a9c477a7863458837f376fd7b3797

‘Per che non reggi tu, o sacra fame 58b2731a241fa27f1e64c88887c44e3698185a427d7cf533cea6771122262745

la fede, sanza qual ben far non basta. 2ed62851d5e0f10d452c9830100872f9b0298888a63d5732bb95dd3f92fd6fd2

Tu dunque, che levato hai il coperchio 6389e4ba0c7c4b9fbb0087d9cc26ce8e35ba695e0dda56daa4b42d76838888ef

e per magrezza e per voler leggera. 99dccbc91227e117588884213598c4ae4c761537ad22285cc7b21ffa6b3a7bee

tosto che ’l vostro viso si nascose». 6d4924f638b4daf8888bb1bae05ecf0a5db66fc9d10ebaf9f93dbb809f19e52e

disfrenata saetta, quanto eramo bc4bf75c28572855818888a4d11c05c3aab85b4121b73f19599521705d5d3b6e

La pena dunque che la croce porse ffdf0fc7d4f37198888924624c85095676a0132398c8131322e8bd4b9414b3e6

ciascun di quei candori in sù si stese 4dd8888bfa1ea4ddea85e87565e77c3965334bfd86eaf704f84fd42c847aa9da

La forma general di paradiso bac7ba4fc96a04ba8409ba288889741a4463d14f45c9d288d95e380f8fad5ada

[+] redcodenl|4 years ago|reply
Some LEGENDARY eight-amulets:

  eiGHt EIgHT eIght eighT eight EIgHT EIgHT eIGHt eiGhT eIgHT - 8 :888888881a7402c0c8ba04e6fa2cbbd4aa5111af3fb2dce8c9d90b06ab13ed38
  EigHT EIGHT EIGhT EiGhT EighT EIGhT eIGhT eIGhT EIGHT eight - 8 :0888888885a04f80a17a45468c761c0e6a80b9b1309a408003b024a1b7ddfc3d
  EighT EigHt EighT eiGht EIGHt eiGHt EIGhT eIght eight Eight - 8 :985a2888888889d774f2c083b44bd5a87f86974295f6178bf40da5ac2bcd9d6e
  EigHt eigHt eighT eight EigHt eigHT eIgHT eight eiGHT eIgHT - 8 :06da1388888888b0fe865087da99839debe557e4a7d762d740d93d5eea6a683b
  EIgHt eIght EigHT eigHt EiGhT EigHt Eight eight eIGht eiGHT - 8 :fe9143429488888888c375251de2493913a07ffccd0e104810153085d27dfb04
  eiGHT eiGhT eIGHT eIGHt eigHT EiGht EIGht eiGhT EIGht eIGhT - 8 :91e10b15288c9888888884ca0082ce0ccfe4bfafcb13444bc36fcf30b19ca363
  eiGHT eIGht eIgHt EIGht EIGHt EIgHT eiGht EiGHT eIGHT eiGHt - 8 :fff5d81258a222b88888888b258ce415a1ae1b12b14535c09b9dcb19d70d4328
  EIghT EiGHT EIght EIGhT EigHt EIGHT eIghT eIGhT EighT EIGht - 8 :2b7de871ee1694892ddbf2937b688888888e99d37e5c920804424670a178a133
  EIGHt EIght eigHT eiGHt eiGHT eIGHT EigHT EIGht eigHT eiGHt - 8 :51670c25d4dab2d891cd18beed868888888870850a92e42887c62bd750a16c5f
  EIghT EIgHT eIgHT EIGHt eiGHT eight EigHt EIGHT eIght eIGHt - 8 :80b5c98d08eacad221f25bde009488888888b58dbb3aafaf617b0b364133e87b
  EIgHT EIGhT EIGHt EigHT eIGhT EIght EIgHT EIGhT eIgHT EIGHt - 8 :cd0b0fd7ef75fc8a37001bc87183d326aeba888888885cc2c48dbf48d38a7bfb
  eigHt eIGhT EighT eIgHT eigHT eIGHT EigHT EighT EIGht eigHt - 8 :8ecfe9ad597bad2e537beacce70464cb57c18f88888888fd105c8c31de75345e
  eiGHT eIGHt EIGhT EIghT EIghT EiGHT eiGHT eIghT eIGht EIgHT - 8 :e88f20df9f85114be9e95f88daeb57c94be3564e4c8688888888c0fbbc7e4e8c
  eigHT eIgHt EigHt EigHt EigHT EIGHt EiGht EigHT eIGHT EiGhT - 8 :bcab4227100078135599839a3d3b35c38b75e94e753e95a88888888a29616478
This one is even MYTHICAL:

  EIgHt EiGHT eIGhT eIght EIgHT EiGHt EiGHt eIGHT - 9 :6dcfd600d05e1249d6590aaee053793b792c60ff94513456b697888888888f67
Now how can someone (easily) put them on this blockchain?
[+] cjlm|4 years ago|reply
Ha, I like your style – great minds think alike:

8⃣ = = = = = = : 37f52a074751239fd88888116130302ddb5074212bee34ecff0f1db531f43199

edit: welp, the unicode was borked. It's the number 8, scorpion, amulet, eight-ball, octopus, stop sign, spider

[+] xXx_uwu_xXx|4 years ago|reply
> A mullet d023069c25bf838888b73a8f135a8bd125be3f7081edbe8a32466e93a333dd38
[+] berniemadoff69|4 years ago|reply
warning, this site includes an extremely loud mp3 [0] that plays automatically without warning and is very startling

[0] https://text.bargains/media/coin.mp3

[+] echelon|4 years ago|reply
It didn't play for me, but this is fantastic and brings me back to the 90's / early 00's era of web design with midis and sound effects. I miss that web.

Music and sound effects add to the mood and aesthetic of presentation. It's not so strange, either. TikTok leans on it heavily and people are loving it.

I want a return to sound on the web.

[+] dane-pgp|4 years ago|reply
Here is an uncommon one I came up with (not using any clever spacing or Unicode characters):

Never enough time, only enough weighting

[+] wppick|4 years ago|reply
This concept is a good way to prime someone for understanding how crypto mining works. Cool idea!
[+] bawolff|4 years ago|reply
So 10 8's is mythic. That's only 2^40 (probably less since the 8's dont have to be in a specific position in the hash). Based on https://gist.github.com/epixoip/a83d38f412b4737e99bbef804a27... you should be able to bruteforce a mythic amulet in 48 seconds with a high end gpu from 2016.

Doesn't sound that mythic to me.

[+] jffry|4 years ago|reply
I wrote a CUDA kernel to look for some. My 3080 managed 3 billion/second including population counting the 8s. After 48 seconds it had spat out three 10-eights and one 11-eights amulet:

  Here are some excellent hex digits: 251d5b059cefc6f3
which hashes to

  b282a850c34ebfbfe4d41797aebc567988888888888312220e834356a26b65fd
Of course, it gets a lot harder if the goal is poetry, and not just jamming hex chars into a string.
[+] eihli|4 years ago|reply
Can you please share how you got the 2^40 number? I've been trying to think of how to figure out the odds of these.

Odds of 4 hex 8's in a row given a 4 digit string is (1/16)^4.

Odds of 4 hex 8's in a row given a 5 digit string is number of ways to arrange 8s in the first 4 digits (1) times 16 possible 5th digits plus number of ways to arrange 8s in the last 4 digits (1) times 16 possible 1st digits, all divided by the number of possible arrangements (16^5)

So 8888X or X8888 is (2 * 16) / (16^5)?

And then 8888XX or X8888X or XX8888 is...

(16^2 + 16^2 + 16^2) / (16^6) ???

[+] mpalmer|4 years ago|reply
What's poetic about brute forcing it?