概要
Tursoはデータ破損バグ発見に1,000ドルを支払うプログラムを終了 AI生成の“スロップ”による大量の無意味なPRが原因 本来の高品質なバグ発見者への報奨が機能しなくなった現状 OSSコミュニティの開放性と金銭的インセンティブの両立の難しさ 今後は新しいガバナンス方法の模索を呼びかけ
Tursoバグバウンティ終了のお知らせ
- Turso は、データ破損を引き起こすバグを報告した人に 1,000ドル を支払うプログラムを実施
- 近年、 AIやLLMによる自動生成PR が急増し、質の低い“スロップ”が大量発生
- メンテナは本来の開発作業ができず、 スロップPRの対応 に追われる日々
- 多くのOSSプロジェクトが貢献を閉じる中、Tursoは オープンな貢献文化 を維持したい意向
- しかし、 金銭的報酬 がスロップ生成を過剰に誘発し、プログラム継続は困難と判断
プログラム開始の背景
- Tursoは SQLiteの再実装 を目指すプロジェクトとして高い信頼性が求められる
- ディターミニスティックシミュレータ、ファザー、差分テストエンジン など多様なテスト基盤を整備
- テストだけでは 全てのバグを網羅できない ため、外部からのバグ報告に報奨を設定
- 当初は Turso 1.0リリースまで 1,000ドルのバグバウンティで運用
- 将来的には 報酬額や対象範囲の拡大 も検討していた
成功していた初期の運用
- プログラム開始当初は 5名の受賞者 が現れ、いずれも高い技術力を持つ貢献者
- Alperen:シミュレータ自体のコア貢献者
- Mikael:LLMを創造的に活用し、後にTursoに採用
- Pavan Nambi:形式手法でTursoだけでなくSQLite本体にも多数のバグ発見
- シミュレータの拡張を必須条件 にすることで、低品質なPRの抑制に成功
“シンギュラリティ”後の混乱
- LLMや自動化ツール による大量の無意味なバグ報告が一夜にして発生
- LLMは 指示すれば必ず何かしらの“バグ”を生成 するが、内容は無意味な場合が多い
- 例1:DBヘッダにゴミバイトを手動挿入し「破損した」と主張
- 例2:SQL文を実行できることを「脆弱性」として報告
- 例3:Tursoの特徴である同時書き込み機能を無効化し「SQLiteで開けない」と主張
- 例4:内容不明のPRが大量に提出される
最後の対策と限界
- ボット疑いのPRは自動クローズ するバウチングシステムを導入
- しかし、ボットは クローズ理由に異議を唱えるPR を自動生成し、手動対応を要求
- 同一内容のPRが 異なるユーザーから次々と再提出 される事態も多発
終了に至った理由
- スロップ生成は 数分で可能 だが、レビューや対応には 数時間 かかる
- 金銭的インセンティブがある限り、 AIによる大量の無限PR が止まらない
- OSSコミュニティ の維持と金銭報酬の両立は現状困難
- 今後は 金銭的インセンティブを廃止 し、オープンな貢献文化を維持する方針
今後の展望と提言
- OSS運営 において新たなガバナンス手法の模索が不可欠
- Tursoは本件を 公開・共有 することで、他OSSプロジェクトと共に課題解決を目指す姿勢
- コミュニティの健全な成長 を引き続き重視