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

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

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

Итак, началось всё с того, что некий художник Энди Баух в 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. Цифры с цветами пришлось сопоставлять перебором.

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

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

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

Комментарии (14)


  1. A-Stahl
    25.03.2018 08:45

    80 баксов за рекламную компанию, которая долетела аж до русскоязычного сегмента интернета?
    Ок, но сама задачка не цепляет. В ней нет целенаправленности — перебор вариантов, пока на выходе не получится что-то вменяемое. Разве что попробовать автоматизировать процесс этого перебора. Вот это могла бы быть уже любопытная задача.


    1. Psychosynthesis Автор
      25.03.2018 09:05

      Ну не знаааю… Мне кажется тут достаточно много совершенно разных вариантов кодирования. Вплоть до того что оно может быть двухступенчатым. Не представляю как процесс подбора такого кода можно автоматизировать. И сомневаюсь что можно вообще.

      Что же до 80 баксов… Там, так-то, много кошельков. Кроме того, даже эти «80 баксов» 16-ого года сейчас стоят 1.6к баксов, что, согласитесь, уже не мало.


  1. tutam
    25.03.2018 09:08

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

    А вам не кажется что вас просто надули на 80 баксов? Кому был известен незашифрованный ключ?


    1. Psychosynthesis Автор
      25.03.2018 09:12

      В смысле надули? Я никому ничего не платил.

      Просто кто-то успел взломать код быстрее, только и всего.


      1. tutam
        25.03.2018 10:11

        Извините, это я немного недопонял.


      1. keydon2
        25.03.2018 13:56

        А есть гарантии, что этот кто-то не художник? И не его подруга, мама, собака?


        1. Psychosynthesis Автор
          25.03.2018 14:27

          Так или иначе, после начала выставки прошло не менее полутора суток до того как их вывели.

          Я считаю, что при достаточном упорстве это было вполне реально успеть сделать.


  1. SopaXT
    25.03.2018 14:54

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

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

    Все уже решили, к сожалению.


    1. Psychosynthesis Автор
      25.03.2018 14:58

      Круто, жму руку! Сколько времени на первый ушло?

      Я в верном направлении думал?


      1. SopaXT
        25.03.2018 15:07
        +1

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

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

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

        PS — цифры с цветами пришлось сопоставлять перебором.


        1. Psychosynthesis Автор
          25.03.2018 15:11

          Спасибо!


        1. SopaXT
          27.03.2018 14:25

          * PPS — Решал пару часов.


  1. Mn0g0kratn0Ub1ennbIyNaGT
    26.03.2018 03:20

    вот если бы это был не «художник» и не лего, а просто опубликовали бы набор символов — кому-то интересно было такой фигнёй заморачиваться?
    «Художники» уж не знают как ещё учудить, чтобы на них хоть кто-нибудь обратил внимание.
    Ненавижу т.н. «современное искусство». Извините, вырвалось.


    1. Psychosynthesis Автор
      26.03.2018 03:22

      Ну, например, если б я узнал о подобном «наборе символов» каким-то образом, и его решение также обещало бы какие-либо выгоды — было бы интересно.

      КМК, любовь к разгадыванию ребусов она либо есть, либо нет и от того, кто этот ребус придумал, это не зависит.