Против виртуалов я вижу только один (организационный, не технический) метод борьбы: ввести ценз положительной активности.
То есть, позволять воздействовать на карму только тем, кто сам набрал не менее N кармы за не менее, чем сотню постов. (Кстати, целесообразно ввести понятие удельной кармы = карма/пост).
Если один человек умудрился прокачать нескольких заслуженных виртуалов, то есть создать несколько сотен хороших (как минимум, не плохих) постов - будем считать, он заслужил право на некоторое читерство. Другое дело, что индивид, способный на положительную активность в особо крупных размерах, едва ли будет маяться мелкой дурью. Кроме прочего, ему проще вложить усилия в одного аватара, прокачав его "естественным путём", чем делить свою карму на X клонов, трятя в X раз больше времени, да ещё и с риском пропалиться на заключительном этапе.
Алгоритмов по отслеживанию "взаимной прокачки" я не знаю. Догадываюсь, что они весьма нетривиальны. Хотя, за неимением искусственного интелекта, можно попробовать воспользоваться своим, только для начала привести задачу к виду, пригодному для экспертной оценки ситуации.
Типовое решение - визуализация активности. Например, можно изобразить граф, вершинами которого являются наиболее активные источники кармообмена (я думаю, таковых будет не больше сотни). Взаимные воздействия отображаются, соответственно, разноцветными стрелками. Чем больше стрелок связывает участников, тем ближе сдвигаются их узлы.
Если процесс идёт "естественным путём", то картина будет псевдослучайная (?). А если несколько вершин вдруг начнут "кучковаться" или обособляться, значит у броуновского движения появились "лидеры" и ситуация требует подробного анализа.