Комментарии 32
О, это та редкая задача когда можно применить блокчейн. Достаточно написать последний найденный в одной из сетей блок. Но таким образом нельзя гарантировать что сегодня кто-то не запишет видео с прошлой недели.
Можно не весь блокчейн тащить, достаточно сети вычисляющей VDF (Verifiable Delay Function).
Для защиты от записи сегодня на прошлую неделю - источник может опубликовать зашифрованный архив с видео в день записи видео, а пароль предоставить в день публикации.
Но таким образом нельзя гарантировать что сегодня кто-то не запишет видео с прошлой недели.
Можно записать видео, подсчитать от него хэш и положить этот хэш в блокчейн
Можно просто последний блок биткоина публиковать.
Нужно ещё защиту наоборот, записано сегодня, а утверждается что было записано неделю назад.
Тут нужен отдельный блокчейн в который добавляется уникальный id записываемого видео и подписывается текущим блоком того же биткоина. По окончании записи можно добавлять VideoID ended и брать хэш от оригинального видео (которое тоже куда-то надо выкладывать) для возможности последующей валидации.
Не выйдет — при наличии истории блокчейна всегда можно притвориться, что ты отстаешь по времени, отображая не последний блок, а блок заданной давности. Защититься от подобного можно только публикацией и наличием кросс-ссылок (хотя бы в том же блокчейне), но эта защита нужна тем, кто не может по собственной воле её обеспечить, то есть опять не выйдет.
Итого: Нужна некая структура, генерирующая непредсказуемые секреты, и которой доверяют, что она не может выдать заранее известный секрет. Она должна ещё хранить свою историю с привязкой к глобальному времени, и иметь возможность достать, грубо говоря, код по времени из своей истории. От неё можно уже плясать.
Формально, блокчейн от биткоина подходит под подобную штуку — процессинг в нем вполне себе генерирует новые IV для блока, который создает новые монеты, раз в 10 минут плюс-минус, проблем с вознаграждением не предвидится довольно долго, кроме того, IV блоков имеют после нахождения историческое значение, а до — не предсказуемы. То есть, в качестве заведомого позиционирования можно использовать текущую голову блокчейна как маркер "создано не ранее". А вот "создано не позднее", как я понимаю, программистским способом не задать в принципе, так как всегда есть история, на которой можно создавать впечатление того, что запись сделана раньше, чем на самом деле, а секретов "из будущего" нет по определению. Кроме того, даже если бы они были, нужно как-то обеспечить их отображение в контексте записи для решения задачи отображения точного времени, но опять-таки ничто не мешает взять историю секретов и сэмулировать то, что запись более старая, чем на самом деле.
EDIT: ninja'd :)
Хеш видео в блокчейн записывать
А кто это будет делать? Тот, кто просмотрел, или кто записал? Тому, кто записал, требуется обратное чаще всего, т.е. сдвинуть видео раньше по времени.
Эм... а Time Stamping Authority, которые для ЭЦП используются, чем не угодили? Подписываем хоть документ, хоть видеоролик, - и задача решена. Или нет?
Нет гарантии, что время на TSA перед подписью не "перевели вперед". Ну и существует проблема сохранения подписи при перекодировке. Посему требуется какое-то включение данных в само видео, при этом часам в чистом виде доверия нет.
Ну если это TSA, который ежедневно используется десятками/сотнями тысяч других пользователей для тех же ЭЦП (и который точно не хочет потерять свою репутацию) - то "перевод времени" на нём для отдельной подписи представляется затеей малореальной.
А что касается перекодирования - так оставляем оригинал для тех дотошных, кто захочет проверить, остальные или верят проверившим на слово, или качают оригинал с его подписью сами.
Это решение задачи подтверждения "снято не позднее..." все равно сводится, в общих терминах, к сведению задержки между моментом съемки и моментом публикации к минимуму, просто это чуть более надежный способ засвидетельствовать публикацию (передачу третьему независимому лицу), чем просто публикация для всеобщего доступа, когда полагаться приходится только на множество независимых человеческих личных свидетельств.
А для задачи "снято не ранее" это вообще иррелевантно, потому что там узким местом является отсутствие монтажа (встраивание в ранее записанное видео фрагментов, которые записаны позднее) и через это - доверие к экспертизе отсутствия монтажа.
Строго говоря, поскольку это задача аутентификации времени создания содержимого видео (а не файла видео, например), стоит сначала описать конкретное и практическое применение этой задачи. То есть конечно, академический интерес не отменить, но важнее всего - практическая решаемая проблема.
Потому что очень легко может выясниться, что алгоритмически подтвердить время создания видео - можно. Но оно все еще будет подтверждать факт, который не связан с искомым фактом через импликацию. Проблема иррелевантных доказательств - весьма велика, потому что доказательства вообще очень редко являются прямыми и однозначными. Ровно по этой причине стратегия требования доказательств так распространена в разнообразных дебатах - это отнимает кучу времени у оппонента, который не может сформулировать причину, почему такое требование - бесполезно (например, потому что прямое доказательство невозможно, а косвенное все равно можно оспорить).
Если задача именно доказать, что видео не было снято заранее, то ее далеко не бедные букмекерские компании решают тривиально: в кадре присутствует трансляция некоего стороннего события, идущего в прямом эфире (спорт, например).
Можно и тут предположить, конечно, что правительство условной страны может заранее снять матч условной "Барсы" с условным "Ювентусом", но это уже какой-то запредельный уровень теории заговора.
Во многих случаях, когда требуется подтверждение утверждения "снято не ранее" можно включить в видео демонстрацию трансляции, организованной стороной, которая наименее вероятно может вступить в заговор со стороной, которая пытается подтвердить время съемки. Однако, если речь о стороне, снявшей видео, обладающей большим бюджетом, это все равно будет только косвенным подтверждением, потому что всегда можно заявить, что видео смонтировано. И с этим заявлением все равно ничего не сделать, потому что степень доверия любой экспертизе подлинности - субъективна.
Совершенно другую историю представляет задача подтверждения утверждения "снято не позже", потому что любое дополнительное время между декларируемым моментом съемки и фактическим моментом публикации просто автоматически увеличивает степень возможности того, что видео смонтировано, независимо от доступных стороне-автору видео ресурсов. Только минимальная задержка публикации является действительным "доказательством" этого утверждения.
Согласен. То есть в общем получается смонтировано не ранее/не позднее, а не снято.
Именно, об этом я писал в комментарии выше. Почему-то люди испытывают проблемы с аналитическим моделированием такой ситуации - декомпозиция идет не достаточно далеко.
Я бы пошутил сейчас про плоскоземельщиков... но не буду. Статья слишком приличная, чтобы портить её осточертевшими шуточками.
Блокчейн всё равно недостаточно надёжен, поскольку, как его ни децентрализуй, - "достаточно замотивированный" "большой игрок" всё равно найдёт способ в него вклиниться и подсунуть фальшивку.
Может, мы чистим банан не с того конца?
Если мы не можем однозначно идентифицировать момент времени на видео - то, может быть, мы можем однозначно идентифицировать момент пространства? И этого будет достаточно?
Время - вообще, крайне отвратительная сущность в плане измеримости и измеряемости. А пространство (на наших с вами масштабах и размерностях) - нет, мерять его сравнительно удобно и результат получается довольно точный.
Понимаете, о чём я?
В астрономии подобной проблемы просто не существует.
Взаимное положение Солнца, Земли, других естественных обьектов в космосе постоянно и непрерывно изменяется по определенным и давно известным законам.
Зафиксировав положение небесных тел на момент сьёмки, однозначно получим дату и время события.
Именно по этой причине такой способ установления даты годится только для случая, когда исключена возможность намеренной подделки или заявления, что оно подделано (то есть это не ситуация, где существуют стороны с противоположными интересами, а все заинтересованы в том, чтобы знать правду).
Подобное предложение прекрасно иллюстрирует, почему "популяризация науки" без умения верно интерпретировать факты - как минимум, бесполезна.
Я немного не понимаю, почему Вы так считаете.
Подделать расположение небесных тел - или высчитать координаты И валидность получившейся по этим координатам траектории наперёд с целью подделки - всё-таки, немножко сложно. Мягко говоря.
Вопрос в выборе точек отсчёта (sic!) и в формате записи такого "пространственного времени", в первую очередь.
Впрочем, возможно, я несу полную фигню и сейчас первый же мимопроходящий физик и/или астроном и/или спец по космологии из меня кнедлики сделает.
Вы не поняли проблему, скорее всего. Пост выше гласит: "Если задать положение небесных тел на момент съемки, получим фиксацию даты съемки". Попытка подделать вычисленные положения (при съемке в студии, например, положение небесных тел можно задать, но нельзя непосредственно наблюдать) вполне возможна, так как оно известно на несколько (тысяч) лет вперед. Что мешает тому, кто хочет подделать дату выпуска видео, вставить в него данные о положении небесных тел на желаемую дату, и после неё обнародовать видео?
Я действительно не понимаю, в чём проблема отделить реальные данные, записанные в реальном времени, от посчитанных алгоритмом и внедрённых в запись заблаговременно в этом случае.
Больше ничего не скажу. Копайте к своему многомиллионному патенту дальше сами. Мне один фиг с него перепадёт ровным счётом ничего.
Кстати, пост, на который Вы ссылаетесь, Вы немного некорректно переформулировали.
Вы немного не по адресу — патент не мой :) Да, со ссылкой я обошелся некорректно, надо было сослаться на тред, а не на предыдущий пост, my bad. Однако для меня как раз данные, полученные в реальном времени, от просчитанных наперед, но по известным до 15го знака законам и формулам, для даты в будущем в пределах действия формул, ничем не отличаются.
Пример: Я снимаю фейк о чем-то, желаю по этому методу его датировать 02.04.2022. Сегодня 29.03.2022, съемки ведутся внутри некоего здания, т.о. ни Солнца, ни планет, ни даже погоды за окном не наблюдается. Я вычисляю положение всех требуемых для идентификации небесных тел параллельно со съемкой и вписываю в видео именно посчитанные данные. Далее, 02.04.2022 я вбрасываю подготовленное видео в Интернет. Вот как вы докажете, что оно было снято 29.03? Мои доказательства — вот, прямо в видео, но они некорректные, при этом проходят все проверки. Та же ситуация, если я хочу, чтобы видео числилось снятым парой дней раньше, естественно, что опубликовать его я смогу только сегодня после съемок, но датировка будет стоять от прошлого времени.
При чём тут астрономия, если речь о доверии к датировке видео в ситуации, где автор видео пытается доказать, что видео снято в определенный момент, а его оппонент оспаривает это утверждение, при этом он может делать заявления о том, что видео смонтировано? Это, как я уже писал, не вопрос того, что показать в видео. Это вопрос о том, чтобы можно было каким-то образом продемонстрировать, что видео невозможно было подделать. Рассчитать и симулировать картину неба с позициями небесных тел в любой момент - можно.
По сути эта все та же проблема организации эффективных оракулов для блокчейна, обеспечения связи реального события и его цифрового оттиска. Никаких "чудесных" решений там пока не найдено, увы.
NFT тоже никак проблему подтверждения подлинности цифрового актива не решил.
Можно ещё составить и утвердить, к примеру, стандартные таблицы жестов, для людей с двумя руками, с какой-либо одной, жесты мимикой (подмигиванием, поворотом головы, киванием и т.д).
Затем, реализовать некоторую функцию, которая будет преобразовывать контрольную сумму (например, crc32, или с плавающей размерностью) некоторого адреса блока из блокчейна в эту последовательность жестов. Т.е. перевести контрольную сумму в систему счисления размером с кол-во жестов в стандартизированной таблице, таким образом каждой цифре такого числа будет соответствовать некоторый жест.
Затем, ведущий репортаж в начале объявляет дату, время (если необходимо), тип таблицы жестов и ещё количество жестов или интервал времени, через который будут эти жесты воспроизводиться.
Ведёт репортаж, ему через определённый интервал времени зажигаются красным цветом подсказка какой жест необходимо изобразить, ведущий изображает, камера тут же распознаёт, если жест валиден, то ведущий видит что подсказка стала зелёной и ведёт репортаж дальше.
Для упрощения автоматической валидации видео материала можно метаинформацию о примерной дате (где искать блок по его контрольной сумме), типе таблицы жестов, интервале, количестве жестов и саму контрольную сумму зашить в qr-код и отобразить на листочке, фоне, либо смонтировать в каком-либо углу видео, или показать этот код перед началом видео.
Далее, видеоплееры или сервисы отображающие у себя этот контент могут автоматически валидировать эту информацию своей распознавалкой и выводить шильдик того, что видео прошло проверку и создано не ранее указанной даты.
Зачем так много текста?
Суть проблемы - нужен доверенный удостоверяющий центр. Далее автор предлагает какой-то переусложнённый алгоритм построения доверия к этому центру. И не находит ничего лучшего, кроме удостоверения всех сложных составляющих своего алгоритма при помощи блокчейна.
Что нужно исправить?
Первое - упростить алгоритм. Удостоверяющий центр удостоверяет только время создания хэша от набора байт.
Второе - дать гарантии от подмены хэша или времени.
Из этого следует, что основная проблема состоит в нахождении способа не просто создать кусок кода, подписывающего байты, но создать систему, которая гарантировала бы историю подписаний. А это уже набор аппаратно-программных средств, активно взаимодействующий с социальной системой, которая и является на самом-то деле основным гарантом всего на свете.
Поэтому начинать нужно с социальной системы. Но поскольку автор, очевидно, технарь, социальная система полностью выпала из поля зрения и была заменена техническим решением под названием "блокчейн". Только я здесь вынужден повториться - всё на свете гарантирует только социальная система, а техника всегда была и будет служанкой хозяев социальной системы, что означает гарантированную подмену "доверенной" подписи хозяином системы.
Либо может сработать отсутствие у системы хозяина (что означает хозяина коллективного типа), но тогда нужно дать набор принципов организации такой социальной системы, и принципы должны гарантировать устойчивость системы.
О доверии к программным системам