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.
Open letter to chess programmers
Moderators: hgm, Rebel, chrisw
-
- Posts: 454
- Joined: Mon Nov 01, 2010 6:55 am
- Full name: Ted Wong
-
- Posts: 115
- Joined: Mon Sep 17, 2012 8:59 pm
Re: Open letter to chess programmers
Hi Ted,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??
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.
-
- Posts: 686
- Joined: Thu Mar 03, 2011 4:57 pm
- Location: Germany
Re: Open letter to chess programmers
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...
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...
-
- Posts: 115
- Joined: Mon Sep 17, 2012 8:59 pm
Re: Open letter to chess programmers
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.
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.
-
- Posts: 373
- Joined: Wed Mar 22, 2006 10:17 am
- Location: Novi Sad, Serbia
- Full name: Karlo Balla
Re: Open letter to chess programmers
And what are you going to do when for example Frans Morsch bring you 30.000 lines of code written in assembly?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.
Best Regards,
Karlo Balla Jr.
Karlo Balla Jr.
Re: Open letter to chess programmers
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...
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...
-
- Posts: 27808
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Open letter to chess programmers
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.
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.
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: Open letter to chess programmers
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 wrote: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 !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
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.
-
- Posts: 3550
- Joined: Thu Jun 07, 2012 11:02 pm
Re: Open letter to chess programmers
Yes the fingerprint by itself is not conclusive, the source needs to be reviewed. But personal bias can creep into that process.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...
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.
-
- Posts: 6401
- Joined: Thu Mar 09, 2006 8:30 pm
- Location: Chicago, Illinois, USA
Re: Open letter to chess programmers
This has been done.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.
It has been shown that more or less time does not change the stylistic signature of an engine too much.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.
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...