НовостиКриптовалютыЯ просканировал весь блокчейн Bitcoin на изображения. Вот что я нашел

Я просканировал весь блокчейн Bitcoin на изображения. Вот что я нашел

Автор: Bitcoin Magazine·

Ключевые выводы

  • Автор синхронизировал полный узел Bitcoin Core на жестком диске объемом 4 терабайта; процесс занял около 72 часов.
  • PhotoRec сканировал более 1 терабайта данных блокчейна более 11 часов и не восстановил ни одного значимого изображения.
  • Сканирование дало небольшое число ложных срабатываний, включая 8 ICO-файлов и 4 одинаковых PNG-файла, которые не показывали реальные изображения.
  • В статье говорится, что Bitcoin Core использует XOR для перемешивания данных блокчейна и набора UTXO при хранении на диске.
  • По мнению материала, обычные операторы Bitcoin-узлов, как правило, не найдут в хранимых данных блокчейна идентифицируемые произвольные данные или изображения.
Я просканировал весь блокчейн Bitcoin на изображения. Вот что я нашел

Bitcoin Magazine Я просканировал весь блокчейн Bitcoin на изображения. Вот что я нашел

Я просканировал блокчейн Bitcoin на изображения, и результат оказался неожиданным. В интернете много говорилось о произвольных данных и контенте, которые можно найти в блокчейне Bitcoin. Эта возможность не только породила нишевую арт-сцену, но и вызвала движение против «немонетарных транзакций» в сети Bitcoin. Если судить по тому, как об этом говорят сторонники и критики, можно представить блокчейн как стену, покрытую граффити.

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

Я выбрал PhotoRec — программу с открытым исходным кодом для восстановления изображений, которая существует уже более 20 лет. Программа предназначена для поиска файлов изображений в необработанных данных. С ее помощью можно восстанавливать изображения и другие форматы файлов с вышедших из строя или поврежденных жестких дисков. Ее также часто используют для восстановления утерянных файлов wallet.dat со времен ранних Bitcoin-кошельков, до широкого распространения seed words.

Синхронизация полного узла Bitcoin

Для хранения всего блокчейна Bitcoin я решил купить 4-терабайтный диск за несколько сотен долларов. Затем я установил на него последнюю версию Bitcoin Core и начал синхронизацию цепочки. Процесс, который включает загрузку и проверку учетной целостности всех транзакций в истории Bitcoin, занял около 72 часов, или три дня, при этом Bitcoin Core автоматически выполнял его в фоновом режиме. Я делал это на мощном игровом компьютере; основным узким местом был диск, который медленно считывает и записывает данные при синхронизации блокчейна Bitcoin.

Самая медленная часть процесса связана с набором непотраченных выходов транзакций, или UTXO. Когда кто-то синхронизирует блокчейн, каждое непотраченное значение транзакции, то есть положительный баланс, организуется в набор UTXO. По мере расходования этих значений они удаляются из набора, а новый адрес, на который были отправлены satoshi, добавляется.

По некоторым оценкам, на жестком диске процесс индексации UTXO мог занять три недели, поэтому для ускорения мой clanker, AI-агент, предложил сначала индексировать данные в RAM, а затем переносить их обратно на 4-терабайтный диск. Хотя весь процесс занял три дня и выполнялся в фоновом режиме, SSD мог бы завершить работу примерно за день. SSD-диски значительно быстрее жестких дисков, но они также дороже — как минимум в четыре раза, а иногда и больше.

После того как блокчейн был полностью загружен и проверен, я перенес индекс UTXO из RAM обратно на диск и запустил программное обеспечение Bitcoin; цепочка была полностью синхронизирована, а кошелек готов к работе. Теперь пришло время следующего шага: восстановления изображений, хранящихся в блокчейне.

Восстановление изображений в блокчейне с помощью PhotoRec

Когда полный блокчейн Bitcoin находился на моем диске, я выключил Bitcoin Core и попросил своего clanker, агента Cursor AI, запустить PhotoRec 7.2 на диске. По умолчанию PhotoRec ищет форматы jpg, png, gif, tif, bmp, ico, psd и raw. Процесс работал более 11 часов по данным блокчейна и в итоге нашел … (барабанная дробь) … ничего.

После сканирования более терабайта данных блокчейна в течение половины дня не было найдено ни одного изображения. На странице wiki PhotoRec приводится простой пример того, как работает программа: «PhotoRec identifies a JPEG file when a block begins with: 0xff, 0xd8, 0xff, 0xe0, 0xff, 0xd8, 0xff, 0xe1, or 0xff, 0xd8, 0xff, 0xfe.» Иными словами, программа ищет в данных на диске байты, которые указывают на файл изображения.

Программа может давать ложные срабатывания; она сохранила 8 ICO и 4 одинаковых PNG-файла, которые при открытии не показывают никаких изображений, как видно на картинке ниже. По сути, не было найдено ни одного значимого изображения какого-либо рода.

Куда делись Jpegs? Фокусы XOR

Как это возможно? На протяжении многих лет в криптосообществе обсуждали NFT и возможность записывать данные изображений в блокчейн Bitcoin. Через эту нишу прошли миллионы долларов, и вокруг этой темы до сих пор продолжается культурная война. Неужели на цепочке действительно нет изображений?

Оказалось, что риски, связанные с произвольными данными, давно обсуждались и учитывались в кругах разработки Bitcoin Core, еще с 2011 года. XOR — это простая техника обфускации данных, которая используется для перемешивания всех данных блокчейна, пока они хранятся на жестком диске.

Проще говоря, компьютеры работают с 0 и 1, а XOR сравнивает два бита и возвращает 1, если они различаются, или 0, если они одинаковы. В случае Bitcoin XOR сравнивает каждый бит данных блокчейна со случайным ключом, созданным во время первоначальной установки, в результате чего данные в состоянии хранения становятся непонятными для других программ. Однако, когда программное обеспечение Bitcoin запускается, у него есть ключ, чтобы расшифровать эти данные и использовать их. Кроме того, XOR очень быстр, поэтому он не оказывает заметного влияния на производительность. Вот пример блока genesis Bitcoin до и после XOR.

В настоящее время XOR применяется как к данным блокчейна, так и к набору UTXO. Сначала XOR обсуждался в 2014 году, когда антивирусное ПО начало ошибочно распознавать данные блокчейна как код вируса. Антивирусное ПО помещало блок в карантин, повреждая данные блокчейна и вызывая сбой Bitcoin, что делало синхронизацию невозможной. К концу 2015 года XOR был внедрен для данных набора UTXO в состоянии хранения, а в 2024 году — для всех данных блокчейна в состоянии хранения.

Кстати, процесс XOR означает, что никакие произвольные данные не могут быть идентифицированы или извлечены из блокчейна без намеренного обхода XOR, а это не требуется для денежного использования Bitcoin. Поскольку программное обеспечение Bitcoin Core хранит простую базу данных о расположении каждого перемешанного блока, оно может легко получать данные, расшифровывать их и использовать точечно. Синхронизация Bitcoin в нерасшифрованном виде — это специальный процесс, который может занять столько же времени, сколько и синхронизация с нуля, поскольку по сути требуется заново записать весь терабайт данных в новом порядке, и в этом нет особого смысла для того, кто просто хочет обычные преимущества конфиденциальности и безопасности от работы Bitcoin-ноды. Поэтому для подавляющего большинства копий данных блокчейна Bitcoin, находящихся на компьютерах обычных биткоинеров по всему миру, фактически невозможно выявить какие-либо произвольные данные или изображения. Шокирует, я знаю. Можете сами запустить тест PhotoRec на своей собственной ноде!

Этот материал I Scanned the Entire Bitcoin Blockchain for Images. What I Found Will Shock You впервые появился на Bitcoin Magazine, автор — Juan Galt.