May 10th Charlie Lee posted on Twitter new crypto puzzle challenge. It celebrated SegWit activation in Litecoin. Together with Zd3n they published an JPG picture with hidden 230 LTC in it to grab. The goal was simple: find the private key and be free to take all Litecoins :)
The whole idea of this puzzle belong to Zden Hlinka. He is a digital artist involved in computer graphics and video scenes. Grew up actively on underground demo scene in Europe and still does it for today. He did some of similar puzzles related to other cryptocurrencies also.
Just after announcement of crypto challenge, the official Telegram channel crowded full of people. For whole 2 weeks there were close to 400 members. I was amazed how these people cooperated together 24h/day to find the solution. People threw plenty of ideas trying their best to find the key. In the end we did it :) Just look how these ideas evolved to final path.
Morse code
Someone said this can be Morse code. Grey are 1 values and Black are 0’s in the rings. Concatenated together they should give full 256 bit private key. People tried to reproduce the key going through rings clockwise, counter-clockwise, rotated etc. It all led to dead end. But what about the Ł thing in the centre?
28 Shades of Grey
The connections between rings and Ł graph thing popped like a mushrooms. There are 28 nodes in the graph - each of them in individual shade of gray. The circles on the rings have 28 shades too, same colors as nodes. There are 2 rings and 2 Ł border drawings also. Additionally every node and some of circles has I / O symbols drawn on itself. There are so many possible configurations it could work. At this step we didn’t even look at the strange arrows…
Clock
Promising idea came from Twitter user. The arrows if dragged from center of image are directing to circles on the rings! Researchers fastly count that there are 84 arrows which is divisible by 28. If we are in numbers, the I’s and O’s number is equal (14) too. That hint looked good at first sight, but nobody could draw any conclusions from this point of view.
Steganography
If this is image-based puzzle, maybe there is something hidden in its data? Maybe we should take the problem as a computer forensic case. People agreed that Steghide tool found SVG file in it. Hidden structure was vector drawing of exactly same picture we got from author. Confusing part was why the embedded filename is “steganopayload2641.txt” and what that means. However there was small hint for us in the source code. SHA256 of correct answer! Good enough.
Open the gates
What if the 1/0 symbols at the nodes are in fact I - Input and O - output logic gates? Looking at the graph the “On” and “Off” states can determine how we move from one node to another. Someone said Litecoin in lazy thinking is de facto “Light coin”. Light? Bulbs? Yes, this can work, but what to do with these switches?
Another point of view
Some of people were looking at the graph in 3-dimension way. They argued the data of first layer can be related to first ring and so on for second. The arrows are defining paths between level-1 circle and level-2. Just another miss viewpoint..
Malbolge program
Malbolge code?! What is this? If we extract hex values inside the Ł we achieve string ending with mysterious “unhaZTMF@”. There is only one Google search result with this string and it leads to document written in weird programming language. The chat instantly took a note that could be a Malbolge code. I don’t know if this is true or just a myth but from Wikipedia the Malbolge code is language which is known to be extremely difficult to use. No man could ever in history write a single code in this language. People use special algorithms to write programs eg. genetic algorithms, Brainfuck etc.
The Malbolge code idea suits very well in this kind of puzzle. Sadly noone could ever translate it back to private key.
Binary in the wallet
Taking a look at litecoin wallet itself we can see suspicious transactions. Wallet was charged by 100 LTC, 10, LTC, 100, LTC and 1 LTC in this order. Can we treat them as binary code? 100 10 100 1 would be a nice hint for us. Still it is only a part of whole riddle. However Zden said the puzzle itself is standalone and “everything is in svg”.
Lightning network graph
Do You see the 5 dots under the graph? They exactly same as the dots in YouTube exaplaining Lightning Network video. People start to study the technical documents about LN technology. This document https://lightning.network/lightning-network-paper.pdf often appeared in the chat. I believe somebody learned something interesting from it. Considering whether it was the way to solve the puzzle or not.
On the other side, maybe it is just 5-dotted progressbar like we see at Linux Ubuntu startu-up..
CoreTeam
After first week small group of people decided to create private Telegram chat. We agreed that every new idea should be posted there first, so we can keep ahead of original channel. The group members are Jrhedman, Gerschel, Ben, Tako, @Anagamidev and @mys (me). We approach the puzzle in mathematically and programmatically way. Every single concept was tested through our algorithms. The source codes were written in Javascript, Python or Java which evolved to C++ for performance reasons. Finally after few hints from Zden we managed to simulate encryption algorithm. In the end Ben was able to retrieve private key and take all litecoins as first! The prize was split between participants in fair way. I am so proud of our CoreTeam :)
The solution
Before hint #3 came from Zden we were brute forcing every possible way through found algorithm. Hint 3 made it a lot easier, because it gave us about 60% of solution. From now Ben ported his scripts to C++ and found few thousand possible private keys. Fortunately one of them opened the wallet and we got there.
So the steps of encryption algorithm we were brute forcing:
- For every bit of private key (circle on the rings):
- Get random node from graph with correct 1/0 symbol as out bit
- Rotate padding clockwise and follow the path (do this 4 times!)
- After 4 follows get color of landing node and paint with it our starting circle
- Repeat above 256 times
Ben posted his scripts with instructions here https://github.com/Cybourgeoisie/LTCStegCode
Fun facts
- Author invented this puzzle while bathing and abandon first idea of much harder puzzle than this, however based on same algorithm
- The private key holds 16x16 bitmap Litecoin logo
- We weren’t be able to calculate sha256 hash of answer. The hash gave as hint by Zden is e5dc56d2d30a8f7a0f135e0d2588d24b5ff960f964939375434611b26be24c5d. We still don’t know if this is hash of original bits, in which form - string, hexadecimal, decimal? Maybe it is hash of private key WIF format? Nothing of that matches. Still a puzzle for me :)
- Encryption process video by Zden:
Bravo!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Good work! :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
You too! Nice teamwork @anagamidev :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Well done and excellent explanation!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks for sharing this with us @mys - congratulations to you and your team on solving the puzzle and for providing us with a very detailed writeup explanation how you came to the solution.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Good job!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @mys!
Your post was mentioned in my hit parade in the following categories:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
It is so awesome to have such talented people in our community! :)
Congratulations! :)
Upvoted, Resteemed, Followed, added to Litecoin subreddit! :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Holy!
Gotta give it to Charlie!
Never thought anyone would solve it.
So glad...
So glad we have the solution!
Quite a detailed post there. Upvoted. Congrats to the group! :)
Congrats Jrhedman, Gerschel, Ben, Tako, @Anagamidev and @mys
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Just...
wow.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations on the good work! Now following you!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
great am the first one to comment :)
i love this post in programming terms it's very nice the way you present this information
as a programmer i understand partially although
i follow you and voted you my friend , i wanna check all your future blogs and if you like my blogs will be great to have some comments :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
i suppose to be the first to comment but the website has some problem lol
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
resteem and upvote for your post....
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
test
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dobra robota @mys - rzucam follow :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
that's pretty amazing work. great job, upvoted, resteemed, followed!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations on the hack! That's some awesome work :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
It sounded fun at first until I realized that amount of untangling you had to go through. Very good work.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I am speechless. This is so impressive I don't know what to say.
Congratulations!! Very well done!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Genious work!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
uh wut? I'm still confused! LOL!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Great job. I'll have to watch for these puzzles or make some.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
nice work! very interesting.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @mys! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
You made your First Comment
Award for the number of upvotes received
Click on any badge to view your own Board of Honnor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
If you want to support the SteemitBoard project, your upvote for this notification is welcome!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
very good :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
wow!!! this is detailed.... thanks for sharing
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
great work!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Great work guys
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Open source everything and nothing will stop progress......
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I was among those who came up with the first binary code answer
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Wow insanely well done! Enjoy the litecoin!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This is awesome. My brother and I are starting up some crypto treasure hunts in Portland Oregon this summer. They'll be done in person though, and hopefully won't be this difficult.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations, very good work!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
you need a medal too, well done sir.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Very beautiful =) follow me to help us
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Very beautiful =) follow me to help us
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
There are plenty of people in the world.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congrats on solving the puzzle and kudos to the creator of the puzzle. Most of the steps required to solve it is way out of my league.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
i have a bad luck with LTC lol
in the start i bought and got x3 the money BUT after that whenever i bought it went down... sold it went up :D
really bad luck :/
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
The puzzle got me puzzled when i saw it.you guys did a great job.thumbs up to ur team. #feeling amazed
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
God, the internet is a dedicated group of people. Some genius just got a lot of money.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
well done! amazing job guys.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @mys! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
You got a First Reply
Click on any badge to view your own Board of Honnor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
If you want to support the SteemitBoard project, your upvote for this notification is welcome!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
hello
New follower
Found some good stuff on your blog thanks .....
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
You're amazing! Thanks for sharing!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @mys! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes
Click on any badge to view your own Board of Honnor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
If you want to support the SteemitBoard project, your upvote for this notification is welcome!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
mind blowing bro......i just upvored you for your amazing post. i am totally impressed for your beautiful hard work.......i think one day you will be the top of the steemit blogger......go ahead bro.....
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Incredible
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Amazing..!!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Ah that old Malbolge code, I should have known it was my old friend again ;)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit