Художник зашифровал ключи от криптокошельков в Lego-инсталляциях, а мы попробуем их оттуда достать +19




Привет, Хабр! Предлагаю всем желающим немного размять мозги небольшим крипто-ребусом.

Оговорюсь сразу, сам я загадку до конца не решил, однако ход решения вроде бы ясен поэтому мне хотелось бы посмотреть, как будет решать сообщество.

Заранее извиняюсь за стиль изложения, но в четыре утра всё же буду предельно краток рассказывая коротоко и по сути. Кому интересны подробности — все ссылки приведены в конце заметки.

Итак, началось всё с того, что некий художник Энди Баух в 2016-м году прикупил некоторое количество криптовалюты на несколько кошельков. А потом он взял приватные ключи от этих кошельков и каким-то, одному ему известным образом, зашифровал эти ключи в красивых картинках. Таких как под заголовком, например.

Затем Энди сложил эти картинки из блоков Lego и буквально в прошлую пятницу (23.03.2018) выставил всё это дело в арт-галерее la’s Castelli Art Space (ссылки в конце).

Во всё это, как обычно принято у художников, вложен некий глубокий смысл, касательно стоимости искусства и т.д. и т.п. Но мы тут не философствовать собрались, а загадки решать, поэтому перейду сразу к сути.

Я рандомно выбрал для ковыряния картинку от кошелька «INITIALLY VALUED AT $80». Положенные в 2016 году на кошелёк 0.1875 BTC сегодня чудесным образом превратились в 1600$, что, очевидно, должно несколько ускорить расшифровку. Картинка вот:



Итак. Поехали.

Я постеризовал изображение, чтоб было меньше шума и чуть подкрутил контраст с яркостью. Поковырявшись в фотошопе я понял, что картинка эта состоит из простейших блоков 15*6. Вот таких:



Однако, есть ещё три блока, каждый из которых отличается от основного всего на один квадрат. Вот все четыре блока:



Тут используются блоки восьми цветов, что позволяет предположить, что каждый цвет кодирует три бита.

Приватный ключ Bitcoin-кошелька представляет собой строку, насколько я понял, в формате Base58. Что-то в духе такого:

L4QhpdfFzv1DHfoRcbG2T76Z4QN9zmhWhBNEsH22PbKHA4ZNkS

Длина ключа может быть различной, поэтому тут нам, увы, дополнительной информации получить не удастся.

На этом этапе я додумался посмотреть на этот кошелёк в блокчейн и выяснил, что вчера какой-то умник, вероятно, код уже взломал и денег там больше нет =(

Предлагаю вам завершить разгадку, либо поправить меня, если я ошибся в первых шагах. Осталось подобрать цветовое кодирование и это, собственно, самое интересное во всём этом ребусе. Полагаю, что после получения числа, нужно выполнить преобразование Число -> Base58.

Возможно три отличающихся блока дают какую-то подсказку, но может быть и так, что автор просто ошибся при сборке.

В любом случае, подозреваю, что денег на всех кошельках уже нет, так что все дальнейшие манипуляции just for fun.

Upd от SopaXT:

Те, что за $20 и $30 решил я. В первой используют двоичные цифры, а во второй — троичные, и т.д.

Там был т.н. «mini private key», строка из 30 ASCII-символов, где сам ключ — это ее SHA256. Кстати, если добавить в конец "?", то хеш будет начинаться с нулевого байта (такая хитрая проверка на ошибки).

Там можно было заметить повторяющуюся последовательность (длиной в 210 ячеек в двоичной и 150 в троичной и четверичной системе).

Каждые 7/5 (соотв.) ячеек — один байт, а таких байт там 30. В двоичной использовалась семибитная ASCII, как предположил кто-то в IRC, я с ним за это поделился :).

В четверичной первая цифра в группе нулевая (эту решил не я, а _jstanley).

P.S. Цифры с цветами пришлось сопоставлять перебором.

Ссылка на комментарий.

Дополнительная информация:

Пресс-релиз выставки
Ссылки на кошельки




К сожалению, не доступен сервер mySQL