A presents a challenge to B. B has to spend CPU time to solve it and present the solution to A. The problems are not trivial and will result in B spending CPU time solving it. These problems could be anything from a simple hash target like Bitcoins, to more exotic work challenges that consider a number of data sets.
Ok, that goes some way toward solving the problem... IMO, the votes themselves should be the work, otherwise the frequency with which the challenges arrive might not be sufficient to prevent the sybil problem.
It doesn't solve it because there are no blocks, thus there are ambiguities same as for Iota. You will never get around this fundamental. Never. Not in a 1000 years. Mark my word.