Monotone — распределённая система контроля версий с открытым исходным кодом, разработанная для обеспечения целостности данных и аутентичности изменений с помощью криптографических средств. В её архитектуре используются криптографические хэши для идентификации содержимого и метаданных, а также цифровые подписи для аутентификации коммитов и действий пользователей. Monotone проектировалась как альтернатива централизованным VCS и ранним распределённым системам, делая упор на безопасность хранения истории разработки и на возможность независимого обмена изменениями между репозиториями.
Исторически Monotone появилась в начале 2000-х годов и использовала концепцию версионного графа, где каждый снимок и изменение представляются объектами, адресуемыми по их криптографическому хэшу. Система поддерживает экономию места за счёт идентификации дублирующихся объектов и обеспечивает согласованность реплик без необходимости центрального сервера. Интерфейс включает команды для фиксации изменений, объединения веток и синхронизации репозиториев; взаимодействие между репозиториями обычно происходит поверх сетевых протоколов, при этом данные остаются подписанными и проверяемыми на стороне приёма.
- Криптографические хэши: объекты репозитория (файлы, снимки, изменения) адресуются по криптографическим хэш-идентификаторам для обеспечения целостности и обнаружения изменений.
 - Цифровые подписи: каждый коммит может быть подписан ключом автора, что позволяет аутентифицировать происхождение изменений и предотвращать подделку истории.
 - Распределённая репликация: репозитории могут синхронизироваться друг с другом напрямую, поддерживая децентрализованный обмен изменениями без обязательного центрального хранилища.
 - Версионный граф: история представляется в виде ориентированного ациклического графа версий, что упрощает отслеживание ветвлений и слияний.
 - Управление ветвями и слияниями: инструменты для создания веток, объединения изменений и разрешения конфликтов с сохранением криптографической проверки целостности.
 - Дедупликация данных: хранение идентичных объектов путём обращения к одному хэш-адресу, что уменьшает объём хранилища при повторном содержимом.
 - Независимость от центрального сервера: архитектура допускает полные автономные репозитории, каждый из которых содержит всю историю и может выступать источником правды.
 - Аудит и проверяемость: возможность верификации полной истории проекта независимо на любом узле с помощью проверки хэшей и подписей.