Проверка согласованности моржа: Пересчет ID блоба для выявления недобросовестных авторов

Тонкая атака угрожает децентрализованному хранению: недобросовестный автор утверждает, что хранит блоб A, но предоставляет другой контент для фрагментов блоба A. Читатели ожидают блоб A, получают что-то другое и обнаруживают мошенничество только постфактум — если вообще.

@Walrus 🦭/acc обнаруживает эту атаку через криптографическую согласованность. ID блоба сам по себе кодирует обязательство. Он выводится из хеша контента плюс метаданные. Если автор утверждает, что хранит "блоб с ID X", но предоставляет фрагменты, которые хешируются в обязательство Y ≠ X, несоответствие можно математически обнаружить.

Механизм элегантен. Когда валидатор получает фрагмент, он проверяет, что хеш фрагмента согласуется с предоставленным ID блоба. Валидатор вычисляет: hash(содержимое фрагмента) и проверяет, совпадает ли оно с ожидаемым хешем из ID блоба. Если есть несоответствие, фрагмент отклоняется.

Читатели выполняют ту же проверку в обратном порядке. При восстановлении блоба они пересчитывают ID блоба из восстановленного контента и проверяют, совпадает ли он с заявленным ID блоба. Если есть несоответствие, чтение не удается, и мошенничество доказано.

Этот подход пересчета мощен, потому что не требует доверия к кому-либо. ID блоба — это источник правды. Содержимое должно соответствовать ему. Автор не может утверждать, что это блоб X, и предоставлять блоб Y, потому что структура ID делает это обнаружимым. Валидатор не может тихо изменять фрагменты, потому что читатели обнаружат несоответствие.

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

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

#Walrus $WAL