I have a few suggestions for handling wiki spam:
First, each page edit should send an email or other notification to the owner of that page. This assumes that each page is “owned” or managed by a page editor. The wiki owner is the default editor for each page.
Second, the ability to have content on a page that is “private” or marked in some way that allows it to be removed from page before it is shown to anyone other than the author. If the author is not registered, the source IP address is used.
Any content posted by an unregistered user is forced to be private to that user, and a notification is sent to the page owner. In the notification is a single, simple link that allows them to publish (remove the private mark) or delete (revert) that edit.
Combined with VERY relaxed spam blocking rules which exist only to automatically block the very worst spam and reduce the page editors work load, this allows users to always post and instantly see the result without the stifling need for every user to register, and still prevents spam from reaching the general public with minimal effort on the part of the host/page editors.
I’ve been using this system for years and it works VERY well for me. Real users are more likely to contribute, false positives are almost eliminated, and no spam gets through. I’ve found that ANY extra effort required by real users to prove they are not spamming reduces participation unacceptably.
I also like having a little form at the bottom of each page for users to quickly append a comment without editing the entire page, as it also seems to increase participation.