[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: Authenticating the identity of a remote go-playing computer program
> Your method would not detect cheating; it would provide a somewhat
> reasonable means to resolve a challenge if cheating were suspected.
> Unfortunately, I can easily meet the challenge while cheating as
> much as I want. I simply remember the moves supplied by my secret
> 7 dan, and always present those moves if I'm ever presented with
> the same position again.
Yes, my method is not designed to detect cheating as it happens, but
could be extended to detect all cheating after the fact (but of course
it would be quite unweildly to do this!)
Here is a typical scenario that I think would be well covered:
Before the tournament begins, you provide the tournament organizers
with a crytographically secure checksum of the program you intend to
run. During the tournament, your program beats my program, I turn out
to be a sore loser and accuse you of really using a 7 dan player to
make your moves. I complain to the arbiters, and now now you are
given an opportunity to clear your good name.
The arbiters don't have a copy of your program, but because of this
dispute you are now required to forward a copy to them.
They recieve your program and run their own checksum against it.
Now, one of two things will happen:
1. You cannot give them an executable with the checksum you
originally provided.
2. You give them an executable that they can verify is the
one you claimed to have run.
In the first case, since you cannot produce a verifiable executable,
you cannot produce evidence that your program actually played the game
and the arbiters rule in my favor.
In case 2, nothing has yet been proved EXCEPT that they have in their
possession, the very same executable that you CLAIMED to have used
during the tournament.
There is only 2 ways for you to "beat this rap." If you were
completely honest about everything, they will do a test and quickly
learn that the program in their possession plays exactly the same way
the program in the tournament played, and I will be chastised for
making false accusations against you.
But if in fact you had been dishonest, your last recourse (assuming
you don't want to admit your dishonesty) is to produce a brand new
executable that remembers all the moves the 7 dan player played and
spits them out faithfully. However, this is probably a more difficult
challenge than actually writing a 7 dan program because your are going
to have a difficult time making the md5 fingerprint (that you provided
before knowing what moves would be played) match up to this new
executable!
In principle, all of this is very difficult to get right, and as was
mentioned before, getting everyone to implement the protocol correctly
would be such a problem I don't think it would fly!
Don