合法であれば正当か——AI再実装とコピーレフトの侵食

先週、Pythonのテキストエンコーディング検出ライブラリchardetのメンテナーであるDan Blanchardが、 新しいバージョンをリリースした。 chardet 7.0は従来比48倍の速度を誇り、マルチコアに対応し、 設計から作り直されている。 AnthropicのClaudeが貢献者として登録されている。 そしてライセンスがLGPLからMITに変更された。

Blanchardの説明によれば、彼は既存のコードを一切参照せず、 APIとテストスイートだけを手がかりにClaudeに一から再実装させた。 JPlagによる検証の結果、新しい実装と旧バージョンのコード類似度は1.3%未満だという。 したがってこれは独立した新しい著作物であり、LGPLを継承する義務はない、 というのが彼の主張だ。 原作者のMark PilgrimはGitHubのイシューを立てて異議を申し立てた。 LGPLは修正版の配布に際して同一ライセンスの維持を要求するが、 既存のコードに十分触れた状態での再実装はクリーンルームとは言えない、 というのが彼の立場だ。

この一件は、Flaskの作者Armin RonacherとRedisの作者Salvatore Sanfilippo︵以下antirez︶の文章を通じて、より広い論争へと発展した。 二人は異なる経路から——Ronacherはライセンス哲学の観点からantirezは著作権法の法理から——この再実装は正当だという結論に至る。 私は両者の文章を尊重するが、どちらも間違っていると思う。 いや、より正確に言えば、どちらも肝心な問いを回避している。

その問いとはこれだ。合法であれば正当か。 両者の文章は、この問いに答えないまま、 法理的に可能だという事実から社会的に正当だという結論を引き出す。 法的な許容と倫理的な正当性は同じではない。 法は最低限の基準を定めるだけであり、ある行為がその基準を通過するからといって、 その行為が正しいということにはならない。この区別が本稿の出発点だ。

類比の方向が逆だ

antirezの論拠は歴史から始まる。 GNUプロジェクトがUNIXのユーザースペースを再実装したとき、それは合法だった。 Linuxカーネルも同様だ。著作権法は「保護される表現」︵protected expressions︶の複製を禁じるが、アイデアや動作の仕方は保護しない。 AIを使った再実装も同じ法的地形の上に立つ。ゆえに合法だ、というわけだ。

この法理の説明それ自体はおおむね正しい。 再実装が合法だという主張を私は否定しない。 問題はその次の段階にある。 antirezは合法性を示したところで議論を終える。 しかし法理が正しいということと、行為が社会的に正当だということは別の主張だ。 この二つを同一視するとき、論証に間隙が生まれる。

その間隙が最も鮮明に現れるのが、antirezが引いてきた歴史的な類比だ。

GNUがUNIXを再実装したとき、そのベクトルは独占から自由へと向かっていた。 StallmanはUNIXという独占ソフトウェアを自由ソフトウェアとして再実装するために、 著作権法の限界を巧みに活用した。 その再実装の倫理的な正当性は法的合法性から来るのではなく、 コモンズを拡張する方向性から来ていた。 それがGNUプロジェクトが歓迎された理由だ。

chardetの一件では、再実装のベクトルは反対を向いている。 コピーレフト・ライセンスであるLGPLによって保護されていたソフトウェアが、 パーミッシブ・ライセンスであるMITで再実装された。 これはコモンズを広げる再実装ではなく、コモンズの囲い込みを解除する再実装だ。 chardet 7.0をベースにした派生物は、ソースコードを公開する義務を負わない。 月間一億三千万ダウンロードというスケールのライブラリから、その義務が消えた。

antirezはこの方向の違いを論じない。 GNUの歴史を引いてきながら、その歴史が実は自身の結論に対する反証例になっていることを、 見えていないのか見ようとしないのか。

GPLは共有に反するのか

一方、Ronacherの論拠は異なる。 彼は自分が以前からchardetが非GPLライセンスになることを望んでいたと明かし、 「GPLは共有の精神に反する」と書く。 自分はできる限りライセンスの強制が少ない形で公開することを支持しており、 社会は共有するほど良くなるという信念を持っているからだという。

この主張はGPLに対する根本的な誤解を含んでいる。

GPLが何を禁止するかから見てみよう。 GPLはソースコードを非公開にしておくことを禁じない。 GPLソフトウェアを個人的に改変して使用することに制約は一切ない。 GPLが条件を発動させるのは配布するときだけだ。 改変したコードを配布したり、サービスとして提供するなら、 そのコードも同じ条件で共有しなければならない。 これは共有を制限することではなく、共有を条件として課すことだ。

「これを受け取って使い改善したなら、その改善も共有せよ」という要求は、 共有を抑制するメカニズムではなく、共有を連鎖的に強制するメカニズムだ。 コモンズの利用者にコモンズへの貢献義務を課すことが共有の文化を損なうという主張は、 筋が通らない。

MITライセンスと比較すると差異は明確だ。 MITのもとでは、誰でもコードを持ち出して改善し、 独占ソフトウェアとして閉じてしまうことができる。 受け取ることは共有だが、貢献は任意だ。 Ronacherがこの構造を「より共有に親和的」と呼ぶなら、 彼の言う「共有」は流れる方向が決まった共有だ。 より多くの資本と人材を持つ側が持っていく方向に。

この非対称が現実でどう作動するかは歴史が示している。 一九九〇年代、多くの企業がGPLコードを吸収して独占ソフトウェアを作った。 それが可能だったのは彼らがパーミッシブ・ライセンスを選んだからではなく、 当時コピーレフト・ライセンスの執行が緩かったからだ。 GPLの強化によってこの穴は塞がれた。 貢献を通じた互恵性に頼るほかない個人開発者や小規模プロジェクトにとって、 コピーレフトはかろうじて対等な交換を可能にする装置だった。

Flaskを作った人物がこの区別を知らないはずはない。 にもかかわらずこの論拠を展開するなら、それはナイーブなのではなく、便宜的なのだ。

自己論駁する事例

Ronacherの文章で最も興味深い部分は論拠ではなく、ふと触れられる一文だ。 VercelがGNU BashをAIで再実装して公開したところ、 Cloudflareが同じ方法でNext.jsを再実装すると「あからさまに怒った」という話だ。

Ronacherはこれを皮肉として触れ、先へ進む。 しかしこの逸話は彼の立場全体を崩す。それも思ったより徹底的に。 Next.jsはMITライセンスだ。 CloudflareのVinextはライセンスに違反したのではなく、 Ronacherが共有文化の前進と呼ぶ行為をそのままNext.jsに適用しただけだ。 Vercelの怒りはライセンス侵害に対するものではなく、純粋に競争的・領土的な反応だった。 暗黙の立場はこうだ——GPLソフトウェアをMITに再実装することは共有文化の進展であり、 自分たちのMITソフトウェアを同じ方法で再実装されることは許しがたい。 これがパーミッシブ・ライセンス陣営のほうがコピーレフト陣営より「共有に親和的」だという主張の実態だ。 「共有の精神」とは結局、自分が共有する方向にしか流れない。

Ronacherはこの矛盾を認識しながら立ち止まらない。 自分の世界観に合致する事例だからだと書く。 自身の立場を否定する証拠を自ら提示しておきながら結論を変えないとき、 それは論拠が結論に先行しているのではなく、結論が論拠に先行しているというサインだ。

合法性と社会的正当性は異なる次元にある

冒頭の問いに戻ろう。合法であれば正当か。

antirezは法理を丁寧に説明した後、それで十分とばかりに筆を置く。 Ronacherは法的グレーゾーンを認めながら、 道徳的な問題は「自分が関心を持つ部分ではない」と一文で片付ける。 両者とも、法的な許容を社会的正当性の代理として扱う。 だが法は、ある行為を妨げないと言うだけであり、その行為が正しいと保証しない。 節税の限界ぎりぎりまで税を回避することが合法であっても、 それが正しいかどうかは別の問いだ。 特許を合法的に取得した企業が、 数十年にわたって低廉に供給されてきた必須医薬品の価格を数十倍に引き上げることが合法であっても、 それが社会的に正当だという意味にはならない。 合法性は必要条件たりえても、十分条件ではない。

chardetの一件では、この区別はさらに鮮明だ。

LGPLが保護していたのはBlanchard一人の労働ではない。 十二年間このライブラリに貢献してきたすべての人々が同意した社会的契約だ。 その契約の内容は、「これを受け取って使うなら、あなたが作るものも同じ条件で共有せよ」というものだった。 この契約は法廷が強制する種類の契約でもあるが、 それ以前に、オープンソースのコミュニティが数十年かけて築いてきた信頼の基盤だった。 再実装が法的に新しい著作物として認められうるということと、 その再実装が既存の貢献者たちと結んだ社会的契約を破棄したということは、別々の問題だ。 仮に法廷がBlanchardの主張を認めたとしても、 それは彼の行為がコミュニティ的に正当であることを意味しない。 合法性は社会的正当性を連れてこない。

FSFの代表Zoë Kooymanはこれを簡潔に言い表した。 「自分が受け取った権利を他者に与えることを拒むことは、 どんな方法によるものであれ反社会的な行為だ。」

誰の視点がデフォルトに設定されているか

この論争を読みながら、ずっと頭から離れない問いがある。 二人の著者は、AI再実装のコスト低下をどこから見ているのか。

antirezはRedisを作り、RonacherはFlaskを作った。 どちらもオープンソースのエコシステムの中心にいる人物だ。 彼らの立場から見て、AI再実装のコスト低下とは、自分が仕掛ける側の話だ。 何かをより簡単に再実装できるようになるということ。 RonacherはGNU Readlineをコピーレフトの条項ゆえに再実装しようとしていたと明言している。

一方、何十年もchardetのようなライブラリに貢献してきた人々にとって、 同じ技術的変化は自分がされる側の話だ。 自分の貢献が込められたコピーレフトの保護が剥がされるということ。 二人の著者は前者の位置から後者の位置にいる人々に向けて、 「これは常に合法だったし、歴史的先例もある、技術の変化に適応せよ」と言っている。

この非対称を無視して普遍的な論拠であるかのように書くとき、 文章は分析ではなく利害関係の合理化になる。 両著者がそれぞれ自身の利害関係と正確に一致する結論に達していることを、 読者は念頭に置くべきだ。

この争いが指し示すもの

Bruce Perensは『The Register』とのインタビューで「ソフトウェア開発の経済学全体が死んだ」と警告した。 antirezは似た認識のもとで「適応せよ」と言う。 Ronacherはこの方向が気に入っていると言う。

三者の反応のいずれも、核心的な問いに答えていない。 コピーレフトの執行が技術的に困難になったとき、 それはコピーレフトを不要にするのか、それともより重要にするのか。

私は後者だと思う。 GPLが保護したのはコードの希少性ではなく、ユーザーの自由だった。 コードの生産コストが下がったからといって、 そのコードを通じて自由を侵食することが許容されるわけではない。 むしろ再実装の摩擦が消えるほど、 コピーレフト・ライブラリをMITに衣替えするコストも消える。 GPLが依存していた摩擦が減ったのは法的執行の問題であり、 その根底にある規範的判断には触れない。

その判断とはこれだ。コモンズから取った者はコモンズに返すべきだということ。 その原則は、再実装に五年かかろうと五日でできようと変わらない。 法廷がAI再実装をクリーンルームと認めようと派生著作物と見なそうと、 その判決がこの原則の社会的重みを軽減することはない。

これが法理とコミュニティの規範が分岐する地点だ。 法は事後的に、ゆっくりと、現在の権力関係を反映しながら作られる。 オープンソースのコミュニティが何十年もかけて積み上げてきた規範は、 法廷の判決を待たなかった。 法がそれを保護してくれないときでも人々がGPLを選んだのは、 それが自分の属するコミュニティの価値観と一致していたからだ。 その価値観は法が変わっても消えない。

以前の文章で私はこの争いの次の段階として訓練コピーレフト︵TGPL︶を提案した。 AI再実装の問題はそこからもう一歩進んで、 仕様︵specification︶の層まで保護の範囲を拡張する必要があることを示唆している。 ソースコードが仕様から生成できるのであれば、 その仕様こそがGPLプロジェクトの本質的な知的財産となる。 ソースコードを見ずにテストスイートとAPIだけで再実装したというBlanchardの主張は、 逆説的に、そのテストスイートとAPI仕様がコピーレフトで保護されるべきだという論拠になる。

GPLの歴史は、新たな搾取の形式が現れるたびに法的ツールが進化してきた歴史だ。 GPLv2からGPLv3へ、そしてAGPLへ。だがその進化を先導したのは判決ではなく、 コミュニティの価値判断だった。法はあとからついてきた。今もそれは変わらない。 法廷がAI再実装についてどんな判決を下そうとも、 私たちが先に答えるべき問いは法的なものではなく社会的なものだ。 コモンズの実りを取った者はコモンズに返す義務があるか。私はそうだと思う。 そしてその判断は法廷の判決を待つ必要がない。

antirezとRonacherの文章が興味深いのは、彼らが正しいからではない。 彼らが何を見ようとしないかが、鮮明に浮かび上がるからだ。 合法性によって社会的な価値判断を代替しようとするとき、本当に重要な問いは、 法理の影の中に埋もれていく。