Держите сырой концепт, векторов уязвимости пока море (хотя бы флуд говностатьями).
Я джва года хочу штобы зделали вики суть такова: это в сущности своей просто торренто-подобный протокол поверх .onion. Пространство имён статей общее, а каждый узел хранит известную ему историю версий (включая контент) и известные ему прочие узлы. Можно зайти на любой .onion-адрес любого узла, и дальше в пределах связности графа будут видны все версии правок, и возле каждой указано число активных зеркал, имеющих данную версию. При просмотре любой версии она автоматически у тебя сохраняется и зеркалируется (то есть встаёт на раздачу). Если лично ты данную версию считаешь говном, то из своего зеркала можешь её смело убрать. Если хочешь что-то добавить, "правьте смело" и она сохранится у тебя локально. Если ты написал не совсем хуйню, то люди будут зеркалировать и твою версию тоже.
inb4 расколы, одновременное развитие двух и более линеек правок от враждующих лагерей (каждый зеркалирует свою и старательно вычищает чужую), появление "домашних ботов", которые на автомате помогают отправлять просмотренные статьи в "зеркалирую/не зеркалирую", попытки вычистить "вражеские" зеркала из своего списка (бесполезно, всё равно где-то в графе найдутся одна-две забытые перемычки "на ту сторону") и прочий демократичный, уютный плюрализм мнений.
Ключевой момент: по какому критерию выбирать версию статьи при переходе по синей ссылке? Можно переходить на дифф последней правки, но только если зеркалируемость последней правки сильно ниже, чем у предпоследней, а дальше уже руками (какую выбрал, такая и встала на раздачу). Но каждый юзер волен выбирать свою тактику работы, конечно.
Как всё это защитить от ДДоСа бешеными просмотрами всего по пять раз? Решим по месту, "идеальных с самого начала" систем не бывает (те же торренты уже сколько редакций выдержали).