Linux E X P R E S

Facebook

Šachové enginy a vykrádání open-source softwaru

kralovna.png

Článek se věnuje problému vykrádání open-source kódu autory nesvobodného softwaru. Soustředí se především na loňskou kauzu Rybka, kdy jedny noviny mluvily dokonce o největším sportovním skandálu od doby Bena Johnsona.


Historie

První šachové programy se objevily již v počítačovém pravěku. Například v roce 1968 byl vytvořen program Cray Blitz. Jeho dnešní potomek pojmenovaný Crafty tak patří mezi nejstarší dosud aktivně vyvíjené open-source projekty. Roku 1974 byly ustanoveny „olympijské hry počítačového šachu“ World Computer Chess Championship (WCCC). V prvním ročníku triumfovali sovětští inženýři s programem Caissa a superpočítačem M-2.

Přečtěte si článek Šachy v Linuxu.

Scénu ovládalo několik hegemonů (převážně z řad proprietárního softwaru), kteří se postupně zlepšovali. V roce 2004 byl publikován pod licencí GNU GPL kód programu Fruit, čímž bylo veřejně předvedeno několik pokročilých technik počítačového šachu. Přibližně od této chvíle se začali jako houby po dešti objevovat neznámí „skokani“ s překotným růstem výkonnosti. Prvním z nich byla proprietární Rybka od Čechoameričana V. Rajlicha, jež vyhrála čtyři po sobě jdoucí šampionáty WCCC a následně byla diskvalifikována pro plagiátorství open-source softwaru. Ještě v lednu 2005 na klání 6th Programmers Computer Chess Tournament skončila Rybka bez žádné výhry, se třemi remízami a pěti prohrami celkově na předposledním 53. místě. Z tuctové Rybky se již za necelý rok vyklubal vůbec nejsilnější program na světě.

Logo Rybky Logo Rybky

Strelka

V květnu 2007 představil Jurij Alexandrovič Osipov program Strelka 2.0 a přiložil i jeho zdrojové kódy. Podle Rajlicha je prý Strelka upravená Rybka ve verzi 1.0 beta. Podle Fabiena Letouzeya (otec Fruitu) a různých analytiků zdrojových kódů je Strelka jednoznačně odvozena z Fruitu. Změn prý doznaly jen některé algoritmy a reprezentace šachovnice. Závěr potvrdil i Jurij Osipov. Podle Rajlicha je přitom prý Rybka originální dílo, nikoli předělaný Fruit.

Tato stěží slučitelná tvrzení by znamenala, že Jurij Osipov by musel:

  • Pouze ze zdrojového kódu detailně pochopit fungování Rybky a překódovat příslušné algoritmy ve vyšším programovacím jazyce.

  • Napsat zdrojový kód tak, aby vypadl jako odvozenina zcela jiného programu.

  • Vzhledem k časové souslednosti výše uvedené stihnout ve lhůtě několika měsíců.

  • Své mimořádné nadání však neinvestovat do vývoje vlastního enginu, nýbrž se uchylovat k podvodům.

Dále Rajlich tvrdí, že Jurij Osipov není skutečná postava. Pochyby nebyly rozptýleny, a tak skutečně může být jméno Jurij Osipov pseudonym. (Jurij Osipov může být, podobně jako francouzský matematik Nicolas Bourbaki, pochopitelně i kolektivní pseudonym.) Nicméně otázka ztotožnění Jurije Osipova zůstává z hlediska původu Strelky irelevantní.

Pořadatelé soutěží v počítačovém šachu reagovali promptně a v cuku letu Strelku diskvalifikovali pro podezření z plagiátorství.

IPPOLIT

V říjnu 2009 uvolnila skupina ruských anonymů open-source engine IPPOLIT. Zajímavostí je, že vlastní logika IPPOLITu se deklaruje speciálním jazykem Měkký znak (ь).

Ukázka jazyka Měkký znak z oficiálních stránek Ukázka jazyka Měkký znak z oficiálních stránek

Historie se opakovala a Rajlich zaútočil na IPPOLIT. IPPOLIT je prý mírně upravená disassemblerovaná Rybka 3.0. I IPPOLIT byl diskvalifikován a diskvalifikovány byly později i z něj odvozené RobboLito, Igorrit, IvanHoe, FireBird a Fire.

Houdiny

V květnu 2010 uveřejnil Belgičan Robert Houdart zbrusu nový proprietární engine Houdiny, který se v soutěžích okamžitě vyšvihl na první místa. Brzy byl ale nařčen, že je lhář a vydává mírně pozměněný RobboLito (fork IPPOLITu) za vlastní dílo.

Stockfish

V současnosti se mezi špičkové enginy řadí i GNU GPL program Stockfish. Překvapivě ho zatím nikdo neosočil ze softwarového pirátství.

Statistické zjišťování příbuznosti programů

Jeden žák se v písemce dopustí velmi nečekané chyby a druhý žák posléze zopakuje tutéž chybu. Práce obou žáků téměř jistě nejsou nezávislé – žáci mohli například studovat stejnou učebnici, do které se vloudila dotyčná tisková chyba. Analogicky: pokud dva programy nabízí stejné chybné tahy, zřejmě nepůjde o původní díla. Příbuznost šachových enginů se dá takto exaktně stanovit.

Dendogram příbuznosti enginů Dendogram příbuznosti enginů

Dendogram klasifikující shody ve hře enginů byl převzat z článku Sørena Riise, který je znám jako zavilý popírač důkazů proti Rybce. Dendogram ukazuje, že:

  • Různě odladěná provedení Fruitu (Fruit, Toga, Loop, Onno) se liší minimálně.

  • Podobně málo se liší i Strelka 2.0 a Rybka 1.0b.

  • Jednotlivé major verze téhož programu se liší mnohem více (např. u Rybky, Shredderu, Stockfishe, Strelky).

  • Prokazatelně nezávislé programy (open-source StockF, IvanHoe, Fruit) se výrazně liší.

  • Programy z éry před Fruitem (Shredder, HIARCS) se výrazně liší.

Dendogram poskytuje velmi silné indicie nasvědčující plagiátorství. Rozhodně však nedává nezpochybnitelný důkaz.

Diskvalifikace Rybky

International Computer Games Association (ICGA), pořadatel zmíněné „olympiády počítačového šachu“ WCCC, bral obvinění z nesportovního chování vážně. Po několika letech zkoumání strojového kódu Rybky 1.0 a dalších šetřeních dospěl panel 32 nezávislých expertů k jednoznačnému konstatování. Závěrečná zpráva dokazuje, že Rybka vykrádá open-source programy Fruit a Crafty. Rybka tedy opisuje (přinejmenším) od dvou cizích projektů. Rybka byla v souladu s pravidly zpětně diskvalifikována, Rajlich musel vrátit výhry a byl doživotně vyloučen z WCCC. Toto rozhodnutí bylo učiněno 28. 6. 2011.

Příznivci Rybky do této doby byť jen při stínu podezření požadovali diskvalifikaci. Najednou otočili a důkazy proti Rybce zpochybňovali. I pořadatelé méně významných turnajů se zdráhali akceptovat závěry ICGA a většinou do dalších soutěží Rybku připouštěli. Na podporu Rybky byly uveřejněny různé obhajoby. Velmi aktivní obhájce Rybky je například výše zmíněný Søren Riis. V únoru 2012 publikoval prezident ICGA dvoudílný rozhovor, kde vysvětlil nutnost uvalení sankcí vůči Rybce.

Ve výsledku ve většině žebříčků ELO (jednotka šachové výkonnosti) nefigurují mnohé z nejsilnějších programů (např. deriváty IPPOLITu), poněvadž prý mají právně pochybný status. Přitom žebříčky akceptují programy jako Rybka, které samy mají máslo na hlavě. Stejné stanovisko většinou přijali i distributoři Linuxu a uživatelé budou marně hledat špičkový šachový open-source software v oficiálních repozitářích.

Můžeme předpokládat nárůst vykrádání svobodného softwaru

V nejužší světové špičce se zabydlely enginy z rodiny IPPOLIT (např. Fire) a Stockfish. Svobodné šachové enginy hrají nejvyšší ligu. Při inovování se projevují obrovské přednosti open-source přístupu.

  • V situaci, kdy původní autorský kolektiv již téměř vyčerpal svou invenci, mohou třetí osoby střelhbitě dosáhnout výrazného posunu, neboť věc pozorují jinýma očima.

  • Tvůrce může přejímat to nejlepší z jiných produktů.

Open-source programy výrazně přispívají k pokroku na poli počítačového šachu. Open-source obsahu pravděpodobně připadá klíčová role i při zlepšování proprietárních programů.

Myšlenku sportovního klání šachového software ohrožuje vzmáhající se plagiátorství. Většinou se neměří všem stejným metrem, diskriminuje se svobodný software (např. Fire) a k nesvobodnému softwaru (např. Rybka) se přistupuje velmi shovívavě. V současnosti neexistuje průkazná metodika odhalování plagiátorství.

Vzhledem k mimořádným kvalitám (nejen šachového) open-source softwaru lze očekávat prudký nárůst softwarového pirátství spočívajícího ve vykrádání kódu chráněného copyleftovými licencemi.

Diskuze (1) Nahoru