Open letter to chess programmers

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

kinderchocolate
Posts: 454
Joined: Mon Nov 01, 2010 6:55 am
Full name: Ted Wong

Re: Open letter to chess programmers

Post by kinderchocolate »

There is no need to switch algorithm. For one-second fingerprint games, the UCI will probably send you something like

go movetime 1000

but in a proper match, the engine will receive something like

go wtime ???? blacktime ????

We can easily merge two engines into a single executable. If we've given a fixed time to think, like 1000ms, we can use a weaker engine to generate a fake fingerprint. Otherwise, if we receive the other UCI command, we can use just Stockfish.
pijl
Posts: 115
Joined: Mon Sep 17, 2012 8:59 pm

Re: Open letter to chess programmers

Post by pijl »

kinderchocolate wrote:Richard,

1: How do you enforce condition 5 if you don't have the source?
2: How do you prevent someone from creating a new algorithm if the search time is just 1s? I can always redirect the search to MicroMax if the search time is limited to 1s but goes back to Stockfish otherwise. You don't know unless you can see the source code.
3: How do you define a clone using this method??
Hi Ted,

1. Don't know what you mean with condition 5.
2. We cannot prevent intentional cheating. There are many more ways to intentionally break the rules with low risk of getting detected. This is why we still keep the option open to investigate a program based on other reasons. And no, we will not start a witch hunt based on rumours
3. This is not an exact science. Although we tested this method with quite a few programs it is still up to our interpretation whether two programs resemble eachother too much or not. This is also why we wrote that there will be a 'further investigation' in that case, and not an automatic exclusion.
Richard.
tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: Open letter to chess programmers

Post by tpetzke »

But again, how do you explain in a game with

go wtime 100000

that your

info depth 12 seldepth 17 time 437 nodes 266748 pv d2d4

is not the move from the fingerprint if the time until this ply is about 1 sec.

Thomas...
pijl
Posts: 115
Joined: Mon Sep 17, 2012 8:59 pm

Re: Open letter to chess programmers

Post by pijl »

Let's put it this way:

People smart enough to do this are probably also smart enough to not get caught under the old rules.

But when someone gets caught manipulating the fingerprint of his engine like this he is deliberately breaking the rules. There can be no discussion about that. In such a case there is no place for that person in tournaments like this anymore. We don't like cheaters.
Karlo Bala
Posts: 373
Joined: Wed Mar 22, 2006 10:17 am
Location: Novi Sad, Serbia
Full name: Karlo Balla

Re: Open letter to chess programmers

Post by Karlo Bala »

lucasart wrote: That fingerprint thing is a pretty stupid idea. The only way to make sure that only original engines enter your tournament is to accept only open source engines. Open source means that you can check, and if you're not a programmer, you can (supposedly) rely on the community to do it.
And what are you going to do when for example Frans Morsch bring you 30.000 lines of code written in assembly? :)
Best Regards,
Karlo Balla Jr.
Peer Gynt

Re: Open letter to chess programmers

Post by Peer Gynt »

The fingerprint method should be verified by applying it to programs that are KNOWN to be related and on other ones that are KNOWN to be unrelated.

I can already suggest a means of cheating: Clone a program and run the clone on a very fast or very slow computer. That makes the 1 second constraint meaningless.

You can also slow the program down artificially by software means: What arcade game programmer hasn't written delay loops? That can be the default, and only you know how to disable the secret delay loops...
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Open letter to chess programmers

Post by hgm »

A slightly more cheat-proof method would be to require the participants to make the binary available to the organisers before it plays, require them to provide a full log of the engine output from all tourney games, and then after the tourney run the deposited binaries on a test set consiting of all positions from all games from the tourney (of all participants).

This way you can verify if they have been using the same engine during the tourney as during the fingerprinting. The participants won't have to know at what TC the fingerprinting will take place, and they won't know in advance what positions will be used.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Open letter to chess programmers

Post by bob »

Modern Times wrote:
pijl wrote:When the fingerprint of a program is found to be close to the fingerprint of another program or when there is a well-founded other reason to doubt the origin of the program, the tournament organization will start an inquiry where the programmer is obliged to cooperate. Otherwise his entry will not be accepted.

Marcel van Kervinck
Richard Pijl
This is definitely worth a try. My opinion is that you should get rid of the "or when there is a well-founded other reason..." bit. The key to this whole thing working is that it must be totally objective based on the fingerprint analysis. The second part of it introduces opinion, personal opinion and subjectivity, and there is the risk that the whole thing collapses when you introduce those elements. Anyway, good luck !

Edit: Longer term, as engines get stronger and stronger, perhaps they may lose their individuality and the fingerprint analysis may need refinement. But I think we are not too close to that at the moment.
Note that this does not PROVE anything at all. It may suggest originality or non-originality. Looking at source or RE'ing to obtain asm is the only way to prove a program is a derivative. And that is an objective procedure...
Modern Times
Posts: 3546
Joined: Thu Jun 07, 2012 11:02 pm

Re: Open letter to chess programmers

Post by Modern Times »

bob wrote: Note that this does not PROVE anything at all. It may suggest originality or non-originality. Looking at source or RE'ing to obtain asm is the only way to prove a program is a derivative. And that is an objective procedure...
Yes the fingerprint by itself is not conclusive, the source needs to be reviewed. But personal bias can creep into that process.

A tournament organiser needs a quick and easy way to reject non-original entries, and investigating source code is not a quick process is it ?

This is a very difficult problem in so many ways. As I said, I wish them good luck in getting their tournaments started again.
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Open letter to chess programmers

Post by michiguel »

Peer Gynt wrote:The fingerprint method should be verified by applying it to programs that are KNOWN to be related and on other ones that are KNOWN to be unrelated.
This has been done.
I can already suggest a means of cheating: Clone a program and run the clone on a very fast or very slow computer. That makes the 1 second constraint meaningless.
It has been shown that more or less time does not change the stylistic signature of an engine too much.

Miguel
You can also slow the program down artificially by software means: What arcade game programmer hasn't written delay loops? That can be the default, and only you know how to disable the secret delay loops...