I found this proof on a blog I read. Can you find what (if anything) is wrong with it?
Here's a link to the whole post: http://www.analphilosopher.com/posts/1068508260.shtml" [Broken]

I didn't read past this statement; anything that follows it is probably flawed. It is a contradiction in most cases - whenever "Keith is God" is false.

(Z is false) implies "If Z is true, then Keith is god"=Z is true

So the definition of Z is contradictory. As you know, a contradiction implies anything and everything. So that's your problem. (it's just like the definition "X = not X")

bit of a tangent:
It would also be flawed to presume that the previous conclusion implied "Keith is God" is true. Z is a contradiction whenever "Keith is God" is false - yet it would be self-consistent if "Keith is God" were true. So to require Z be self-consistent, we would have to require "Keith is God" to be true. But unless we know that beforehand, we cannot require or expect Z to be self-consistent.

You haven't shown Z to be contradictory. Let G be the statement "Keith is God":

~Z <-> ~(Z -> G) <-> Z & ~G

therefore:

~Z -> Z

therefore Z is true. If Z is true, then since Z is Z->G, Z->G is true. But so is Z, therefore G is true.

The real issue is whether Z can be properly be defined as Z->G. It appears that G and Z are both atomic sentences, but somehow Z also refers to the compound sentence. If we can think, for a minute, of Z and G as atomic, then we can give them truth-values to calculate the truth-value of Z->G. Of course, pick Z=T, G=F and the conditional is false, but the whole conditional is apparently Z, so both Z=T and Z=F, and that's a problem. So if treating Z and G as atomic leads to problems here, then what should we make of them? It seems there's just a huge problem in defining Z like this, and this much is obvious, but it's hard to put in formal terms what the problem here is.

The rules give you only atomic sentences and connectives with which to build sentences, i.e., when you first start building sentences, you only have atomic sentences and connectives to work with. So every sentence must, at some level, contain only atomic sentences and connectives. (More precisely, every sentence must be of finite length and, at some level, contain one or more atomic sentences, 0 or more connectives, and nothing else.) Z, however, always contains itself, which is a compound sentence, i.e., at no level does Z contain only atomic sentences and connectives. Perhaps there's a better way of explaining that; the idea is just that you eventually must reach rock bottom -- a finite sequence of atomic sentences and connectives. Z is a bottomless pit.

Oh, right. Every sentence must have a finite length, as in exactly one length. Let n and m be the lengths of Z and G, respectively. The length of (Z -> G) is (n + 1 + m). If Z = (Z -> G), n = (n + 1 + m).

10. If Z is false, then "Z is true" is true (from 9, Impl, Dist, Simp, Impl).
Therefore,
11. If Z is false, then Z is true (from 10).

That looks like one hell of a flaw to me. As stated before, this is basically X= not X, which is basically the simplest paradox ever ("This is a lie").

That's not a flaw, it's nothing close to x = not x, and it is nothing close to a paradox. In fact, you deduce a line like 11 everytime you do a proof by contradiction, and it allows you to infer that (in this case) Z is true.