Учёные написали программный код на основе древней системы шнуров и узлов инков
Как узелковое письмо инков (кипу) стало прототипом современных баз данных
600 лет назад инки хранили данные на верёвках. Никаких серверов, SSD или облаков. Просто шнуры с узелками. И вот свежее исследование учёных из Канады показало: эта система — почти идеальная копия файловой системы и хеш-таблиц. Я решил разобраться, что за зверь такой кипу и почему его стоит знать каждому, кто работает с данными.
Что такое кипу и почему это не просто верёвка
Кипу — это древний способ записи с помощью цветных шнуров и узлов. От основного шнура отходят подвески, от тех — вкладыши. Получается иерархия, как вложенные папки на вашем ноутбуке. Только вместо имён файлов — цвет и тип узла. Инки умудрялись записывать переписи населения, запасы зерна, налоги. И всё без единого символа письменности.
Вот как это работает. Шнуры группируются по тематике. Верхние шнуры автоматически суммируют значения нижних — встроенная агрегация. Если нужно шифрование, меняешь порядок узлов на каждом уровне. Гениально и просто.
Кипу — это не примитивная запись, а полноценная система управления данными с иерархией, суммированием и шифрованием. Мы только начинаем это понимать.
Перевели на C++ и Python: родился формат .qpu
Группа Ричарда Доссельманна из Университета коренных народов в Реджайне пошла дальше. Они не просто описали кипу — они перевели его структуру в программный код. Использовали C++ и Python. Создали новый формат файлов с расширением .qpu.
Каждая строка в .qpu разделена символом | — это имитация шнура. Внутри четыре параметра: тип элемента, цвет (RGBA), направление узла и числовые значения. Глубина вложенности обозначается отступами. Всё как в нормальной файловой системе, только на верёвочном движке.
Недавно я заметил, что многие мои коллеги используют древовидные структуры в JSON, даже не подозревая, что инки делали то же самое на верёвках. Разница лишь в материале носителя.
Производительность: сравнение с массивами и деревьями
Исследователи не остановились на теории — они написали три рабочих приложения: электронную таблицу, файловую систему и инструмент обработки изображений. И прогнали тесты. Результаты впечатляют.
| Структура | Скорость вставки данных | Особенности |
|---|---|---|
| Массив | Высокая (O(1) в конец) | Требует непрерывной памяти |
| Связанный список | Средняя (O(1) в начало) | Медленный поиск |
| Сбалансированное дерево | Высокая (O(log n)) | Сложная балансировка |
| Хеш-таблица | Очень высокая (O(1) амортизированно) | Нужна хеш-функция |
| Кипу (.qpu) | Линейное масштабирование | В иерархическом режиме приближается к деревьям и хеш-таблицам |
Вывод: для неупорядоченных данных кипу работает на уровне массивов. Для иерархических — почти как сбалансированные деревья. И всё это без электричества, простите, без сложных алгоритмов.
Шифрование перестановкой: фишка, которую мы проглядели
Дополнительный бонус — встроенное шифрование. В кипу можно переставить шнуры и узлы на любом уровне иерархии. Это меняет всю структуру без внешних ключей. По сути, это шифрование через изменение порядка элементов. Доссельманн утверждает, что такой подход предложен впервые. Спорно, но звучит красиво.
Моё субъективное мнение: слабое место — нет стандартной схемы расшифровки. Но для 15 века это прорыв. Инки не могли позволить себе сторонние алгоритмы — их просто не было.
Коротко от автора
Кипу — не архаизм, а повод задуматься о фундаменте современных структур данных. Инки решили задачи иерархии, агрегации и шифрования без единого бита информации. Возможно, в следующий раз, когда будете проектировать базу данных, стоит вспомнить про верёвки. Они были умнее, чем кажется.












