Hello all crypto puzzles solvers and crypto-currencies fans!
Here is the solution for first Codex Protocol puzzle released on 25th of May and solved after 20 days.
The puzzle was released by this tweet by Jess Houlgrave (@JessyBlock) https://twitter.com/JessyBlock/status/1000014968845152257 and at the same time at my website hosting all my puzzle creations http://crypto.haluska.sk .
The chat group https://t.me/CodexPuzzles was created for solving community where I tried to encourage solving by few cryptic hints and comments.
The puzzle's bounty was 3.1337 ETH at the following public address https://etherscan.io/address/0x6b2560b34c7469c561a8fce581c88bfb8cce73b2 and your task was to find the private key for the bounty.
I really love crypto puzzles because in the first place they give us ability to embed money to artwork (besides it's artistic value) and secondly gives us a great way to monitor time spent on solving the puzzle: we know the exact time of puzzle release and according to blockchain, also the time when the funds been moved to the address of the winner.
Codex Protocol is a decentralized asset registry for the Art & Collectibles asset class which tracks provenance, authenticity and ownership, and so we wanted to produce a puzzle that was a reference to one of the greatest artists of all time, Leonardo Da Vinci. It was really interesting research to his works in field of art and science. Finally I found the best fit of his works for the actual puzzle and it was his drawings of Platonic solids.
The private key was hidden in a geometric object dodecahedron hanging from the ceiling. Leonardo used to draw Platonic solids and other objects for Luca Pacioli’s "De divina proportione" book on mathematics. The golden ratio is an essential constant used in the construction of dodecahedron.
The scene features room outlines from Da Vinci's "Last Supper". In the original, the room's perspective ends in the eye of Jesus. In our case in the center of dodecahedron. Four Latin sentences were placed in the room outlines to provide hints on how to obtain the private key, but the central principle of the puzzle was left to be discovered.
The following sentences where presented:
Divina Proportione - referring to the golden ratio and hinting indirectly Fibonacci sequence (the golden ratio is the result from the division of two consecutive Fibonacci sequence values)
Dextroversum - a hint that a clockwise direction should be used in decryption
A summo incipeere - meaning "start from the top" - hinting that the decryption is starting from the top face (where the ceiling rope segment is attached to)
Sigma modulo quinque - "Sigma modulo 5" - To calculate with remainder upon division by five
The puzzle features versions in mirrored left-hand writing (font is based on Leonardo's actual write-style), and they are in Old Latin where letter 'u' wasn't present in alphabet and letter 'v' was used instead.
After inspection of the dodecahedron object, you can find some special properties:
The edges of each face feature two kinds of thickness. Straight or slightly expanded. Straight edge means bit '0' and expanded bit '1'.
Each face also features one 'I' symbol (in white) on one of it's edges, what is meant as the Roman numeral with "obvious" meaning '1' and it's used to find the correct direction in traversing the faces of the object.
Dodecahedron features follow-up of rope inside the object (in red). This is the correct path between faces to obtain the private key. This path is "multi-pass", it means, this 2D representation can help to validate solver's idea, but won't allow itself to solve the puzzle just from visual inspection.
Other features in the puzzle:
Below the Codex logo there is written encrypted message in Old Latin "ADVSVMPOSTERVM" (ad usum posterum) "for future use" in the zigzag line.
Public address of the bounty is written with "watermark" effect - so it's not so visible at the first glance. The same goes for my signature. :)
And now it's time for the most important part, how the puzzle works!
First, we have to know that an ETH private key is created from 256 bits of secret information. So solver is looking for 256 bits.
The second step is to calculate first 256 values of Fibonacci sequence. Calculation of whole numbers isn't trivial (numbers grow exponentially). But because we have to work with only remainder (Sigma modulo 5), it eases up the calculation a lot.
Fibonacci sequence starts as follow: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
But we work with remainders of the sequence: 0, 1, 1, 2, 3, 0, 3, 3, 1, 4, ...
According to hint, we start decoding from the top face, where the rope is attached from the ceiling.
In a dodecahedron, each face has five edges. So there are five possible directions to move from one face to neighbor faces. Each face has the Roman numeral 'I' which shows, how the edges are numbered in clockwise direction (dextroversum). The edge with Roman numeral 'I' is numbered 1. The solver will derive how all edges of each face are numbered (from 0 to 4) while facing from outside.
Decoding loop (repeat 256 times):
Look for the direction to move from current face to another face:
Remainder value (on the same position of Fibonacci sequence) shows which neighbor face to visit in the next step.
pick one bit on the edge, which leads to neighbor face:
If the face's edge in that position is straight, it's 0. When it's slightly expanded, it's 1.
store picked bit to the corresponding position in the private key:
On step 0, picked bit is stored on zero position in binary format. On step 1, on second binary position etc. - from lowest bit to higher bits.
Move to neighbor face and repeat steps
These four steps are looped for 256 times and this way all 256 bits of the private key are collected (5a9674dbee5a9674dbee5a9674dbee5a9674dbee5a9674dbee5a9674dbfcf3ec).
There been two hints presented, each in consecutive week after puzzle release.
The first hint https://twitter.com/CodexProtocol/status/1003398236957302785 was the same puzzle image, but with filled remaining empty columns. The left empty column featured a list of first few numbers of Fibonacci sequence in Roman numerals - that assured solvers which sequence was used (even they found out from mentioned original writings). The right empty column featured these values upon "Sigma modulo 5" operation. If solvers weren't able to find out for sure what sequence had to be used for decoding and how to mathematically process it, these two pieces information told them directly.
The second hint was helping to realize, the zigzag lines below Codex logo, were encoding a sentence written in Old Latin.
Each unique elevation of line means one letter, sorted as present in Old Latin alphabet (21 letters: A B C D E F G H I K L M N O P Q R S T V X). Three of the letters "AVE" been marked and soon the whole sentence was found out.
Maybe the puzzle holds something for the next one... :-)
Hope you had fun and congrats to the winner https://twitter.com/RRagon2/status/1006938941919039489 !
To find out more about Codex Protocol and get notified of the next puzzle, sign up at https://codexprotocol.com
The first puzzle for The Codex Protocol by Zden Hlinka | March-April 2018 | Satori, s.r.o.