> Seems empirically like you are the most knowledgeable on the thread on this topic
A disappointing conclusion. Welcome to HN on a weekend I suppose.
> What is the definition of 'practicality' at this point (i.e. how efficient does this need to be)?
Hard to tell, but probably a good goal for practicality would be looking at the number of computations it takes to do an operation on ciphertext needs to be a reasonably low enough number that it actually makes sense to put it in the cloud. If it takes 10,000 computers to do the work of one, then it doesn't make much sense to use the cloud instead of just buying a machine. The only real answer to your question is to look at the relative costs of buying a machine vs. using the cloud and figure out how big of a factor difference that is, that's going to be slightly different for every org, but not likely to be larger than say... maybe 5-10x?
So if you accept that as being a reasonable benchmark, then you'd want to see a homomorphic scheme that allows 5-10 computers using homomorphic encryption operations to keep up with one doing operations on plaintext.
Maybe there's some absurd circumstances where 100x is still practical, but there's obviously a limit.
> What is the current efficiency (and how is it being measured, big O notation per key length?, something else) ?
Not entirely sure what the current state of the art is. I haven't really checked on this since reading Gentry's thesis. I understand there were some advanced and some simplifications since then, but I believe we started out in the realm of it being about 10^6x times more complex to do homomorphic operations than plaintext operations with Gentry's first scheme that showed it was even possible.
So even if this has gone down quite a bit, we've got a long way to go before we're talking only a 10x - 100x hit.
Here's what I found with a quick Google, but I didn't quite find the numbers I could translate into anything reasonable, so maybe you can make sense of it: http://eurocrypt2010rump.cr.yp.to/9854ad3cab48983f7c2c5a2258...
Edit: Looking through this one now: http://eprint.iacr.org/2010/520.pdf
Editx2: Oh, I suppose the real problem I should have mentioned is the more complex things you want to do, the worse it gets and "complex" here means "how many multiplies" which for a lot of things people want to do is "a lot." So for each scheme, the overhead changes somewhat wildly based on how you encode what you want to do into adds and multiples, or whatever basic blocks it's using.