Это немного странный вопрос, и я не видел ничего подобного в интернете.
Что я хочу сделать
Я хочу опубликовать исходный код моего сайта. Кроме того, характер веб-сайта (описанный ниже) таков, что я не только хочу выпустить исходный код, но я хочу, чтобы пользователи моего веб-сайта могли однозначно убедиться, что они используют точный версия сайта, как в дампе исходного кода.
Сложность в том, что моей доброй воле нельзя доверять . (Очевидно, что может, так как я иду на эту длину, но с точки зрения пользователя это не может).
Мои (умственные упражнения), чтобы попытаться исправить это
Попытка 1
Итак, первое, о чем я подумал, - это хэширование исходного кода или даже хэширование всего контейнера-докера, в котором он выполняется, и предоставление конечной точки, которая передает этот хэш, чтобы его можно было сопоставить с открытым исходным кодом.
Попытка 2
Второе, о чем я подумал, - это предоставить пользователям доступ к оболочке только для чтения, чтобы они могли хэшировать образ докера, который запускается. Проблема здесь в том, что нет способа проверить, что образ докера - это то, что работает (насколько мне известно). Я мог бы просто создать образ общедоступного исходного кода и поместить его там для хэширования пользователями
Кроме того, из-за проблем с безопасностью я действительно ненавижу идею ставить пользователей ближе к работе.
Попытка 3
Наконец, мне стало интересно, решит ли это проблему, если я воспользуюсь какой-нибудь технологией блокчейна, например, распределенным приложением. Но это так сложно, и я не думаю, что это дает дополнительное доверие.
Почему я хочу это сделать
Я создаю веб-сайт, который будет обрабатывать невероятно личные данные. Это может разрушить жизни людей, если произойдет утечка (нет, TLD не .xxx
или что-то в этом роде. На самом деле с этими данными не происходит ничего противозаконного). Тем не менее, существует тип социальной стигмы, связанной с типом данных, и это на самом деле является достаточным доказательством (в некоторых странах), чтобы просмотреть смертную казнь в отношении пользователя, если какие-либо данные просочились.
Итак, помимо очень четкой (и безопасной) Политики конфиденциальности, я хочу дать обещание своим пользователям с открытым исходным кодом, чтобы добровольцы могли быстро находить и устранять проблемы. Кроме того, чтобы они могли убедиться, что я не добавляю код в работающую рабочую версию, чтобы обеспечить возможность дополнительного шпионажа за ними.
Теоретически это возможно?