
2026/08/22 1:09
Decayfmt – 開くたびに少しずつ自己破損するファイル形式
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
decayfmt ファイルシステムは、アクセスされるたびに意図的にその内容を破壊するユニークなデジタル・アティファクトであり、従来のセキュリティや暗号化ではなく、数学を駆動力とする「社会的契約」によって機能します。その核心メカニズムは、ファイル名に埋め込まれた不安定度パラメータに基づく自動的破損です(例:画像用 .idcy<x>、テキスト用 .tdcy<x> で、<x> が破損レベルを決定)。例えば、高いパラメータ x=10 の場合、テキストファイルで最大 63% のデータ損失を引き起こし、一方で x=1 の画像ではノイズが約 9.5% で劣化します。このプロセスはユーザーがコンテンツを見る前にディスク上で沈黙して発生し、クラッシュや中断による被害の元に戻しは行われません。破損の詳細としては、テキストバイトを印刷可能な ASCII 文字で置き換え、デコードされた画像の生 RGBA データ(アルファ untouched)にカラーノイズを追加し、ファイル全体長および構造(スペースとレイアウトがコンテンツとともに侵食される)を保つことが挙げられます。MIT ライセンス下の Rust ツールまたは macOS バイナリとして利用可能で、画像とテキストをサポートしますが、オーディオ/ビデオはサポートしません。ツールは厳密に無効な出力名または読み取り専用入力を拒否し、ファイル内には読み取り回数や開く履歴を保存せず(破損確率は OS のエントロピーから派生)、同時アクセス時に競合状態を引き起こす可能性があり、クラッシュ後に一時ファイルに破損された状態が残る可能性があります。完全な情報損失を防ぐため、ユーザーは堅牢な外部バックアップ戦略や hex エディタを使用する必要があり、システムは基本的にアクセスされた時点で元のデジタル状態が永久に消滅し、外部で保存されなければなくなることを保証するように設計されているためです。Windows PowerShell 上では UTF-8 互換のファイルを decayfmt で作成するには、> リダイレクトではなく Set-Content を使用すべきです。本文
This Week in Rust #660: 自己腐敗型ファイル形式「decayfmt」
Rust の「This Week in Rust」第 660 回に掲載されました。
概念概要
ファイルを開くたびに、自身を永久に損傷(腐敗)させる形式です。
- 復元の不可能性: 読み出しのたびにディスク上のデータが破損するため、ファイル単体からの復元は不可能です。
- 利用可能な形式:
: 画像用(例:.idcy<x>
)photo.idcy3
: テキスト用(例:.tdcy<x>
)note.tdcy7
ファイル名の末尾にある
x は**「不稳定性パラメータ」**です。この値が大きいほど、1 回の開封あたりの腐敗量が増加します。
衰微の観察
グリッド表示
異なる不稳定性パラメータ
x でエンコードされた同一画像の開封履歴(各ケースとも同じ回数開封):
x=1x=3x=8x=15
これにより、4 つの異なる衰微速度が確認できます。
個体の腐敗経過
不稳定性パラメータ
x の値を追跡しながら、開封動作によるファイル損傷を確認します(表示前にディスク上での破損):
- 無傷の原本
- 1 回開封後
- 3 回開封後
パラメータの影響
(緩やかな劣化): 多くの開封を経ても優雅に衰微していきます。x=3
(甚大な劣化): 1 回でほぼ消え去り、3 回目には純粋なノイズに変容します。x=10
は「ゆっくりフェードアウト」と「瞬時破壊」の間のダイヤルとして機能します。x
テキストの腐敗例 (x=1
)
x=1文書が数回の開封後に以下のように変化します:
| 回数 | コンテンツ (一部) |
|---|---|
| 原本 | |
| 開封 1 回目 | |
| 開封 3 回目 | |
| 開封 6 回目 | |
| 開封 9 回目 | `T/Sm sgf}Fk0- ts d |
| 開封 12 回目 | `h/Sm hgf}Nk0-'ts?K |
腐敗プロセスの特徴:
- 文字コードは制御字符ではなく、印刷可能な文字のみに入れ替えられます。
- テキストは二進法ノイズにはならず、「読み取れるような無意味な文章」へと変質します。
メカニズムと性質
decayfmt は数学によって強制される**「社会的契約」**であり、暗号技術ではありません。
- ≠ 暗号化: 復元不可能ですが、バックアップがあれば回避可能。
- ≠ DRM: 制限ではなく自己犠牲の仕組み。
- ≠ 安全な削除ツール: データは完全に消去されるわけではありません。
復元に関する重要事項:
- 原本を取り戻したい場合は必ずバックアップを作成してください。
- 第三者による復元を防ぎたい場合は、バックアップを作成しないでください。
インストール方法
Rust ツールチェーンをお持ちの場合は、公開された crate をダウンロードするのが最も手軽です。
1. リリース版からインストール(推奨)
プラットフォーム向けの実行ファイルをリリースページからダウンロードし、
PATH に配置します。依存関係のインストールは不要です。
注意点 (macOS):
- Gatekeeper により最初の起動がブロックされる可能性があります。
- 隔離フラグをクリアするには以下のコマンドを実行してください:
xattr -d com.apple.quarantine decayfmt
2. ソースコードからビルド
Rust ツールチェーンが必要です。コンパイル後、実行ファイルは
target/release/decayfmt に生成されます。
クイックスタート
ターミナル上で即座に衰微を観察できます。
-
テンプレートファイルの作成(Windows PowerShell 除外):
echo "this sentence is about to start dying" > note.txt(PowerShell の場合は
を使用してください)Set-Content -
エンコード (不稳定性
):x=8decayfmt encode --input note.txt --output note.tdcy8 -
開封して腐敗を観察:
decayfmt open note.tdcy8 # コマンドを数回繰り返し、文章がさらに腐敗していく様子を確認します。
補足:
- ファイル名の
(例:x
) が衰微速度を決定します。note.tdcy8 - 開封はディスク上に書き込まれるため、その過程での復元手段はありません。
はすぐに無意味化しますが、x=8
はゆっくり劣化します。x=1
使用方法
エンコード (encode
)
encode元の画像またはテキストファイルを
decayfmt フォーマットに変換します。このプロセス自体は腐敗を伴わず、生成ファイルは無傷です。
コマンド例:
decayfmt encode --input photo.png --output photo.idcy3 decayfmt encode --input note.txt --output note.tdcy7
仕様:
- 出力名で形式と不稳定性
を決定(画像:x
, テキスト:.idcy
)。.tdcy - エンコード後の画像は解像された生 RGBA データ、テキストは有効な UTF-8 で保存されます。
開封 (open
)
opendecayfmt ファイルを開きます。ディスク上のファイル自体が現地で腐敗し、その後結果が表示されます。
コマンド例:
decayfmt open photo.idcy3 decayfmt open note.tdcy7
挙動:
- 画像: デフォルトの画像ビューアで表示。
- テキスト: ターミナル出力 または デフォルトのテキストエディタで表示。
- 不稳定性の変更: ファイル名のリネームにより、次回の開封時の腐敗速度を変更できます。
腐敗の詳細メカニズム
開封ごとに
x から各バイトに対する腐敗確率が計算されます。
腐敗確率の目安
| 不稳定性 (x) | 腐敗する割合 |
|---|---|
| 1 | 約 9.5% |
| 5 | 約 39% |
| 10 | 約 63% |
技術的特徴
- ランダム性: OS エントロピーでシードされた暗号学的な生成器を使用。固定シードなし(同じ状態からの再現不可能)。
- 画像処理: R, G, B チャンネルが確率
で独立して腐敗。アルファチャネルは変更されず、透明な穴は開きません。p - テキスト処理: バイト単位の置換のため、高い
値で UTF-8 が壊れる可能性があります。読み込めない部分は置換文字に置き換えられます。x - 構造保持: バイトの挿入・削除は行われず、ファイル総長と未変更バイトの位置情報は保持されます。低
値の場合、レイアウトや単語長はほぼ維持されます(空白文字も腐敗対象)。x
契約事項 (The Contract)
- 腐敗のタイミング: 開封時に表示する前にディスクに書き込まれます。その後のクラッシュでも Undo は不可です。
- 読み取り専用ファイルの拒否: 「無償での読み取り」が契約違反となるため、エラーにより表示されません。
- ヘッダーの不変性: ヘッダーは変更されず、腐敗するのはペイロードのみです。
- 状態の記録なし: 読んだ回数、タイムスタンプ、ユーザー情報などは保持しません。
- 復元機能の非実装: ファイルを復元する機構は存在しません。
制限事項と注意点
- バックアップの有効性: バックアップがあればこの仕組みは無効化されます(暗号でもありません)。
- 改ざんの可能性: ヘックスエディタでの書き換えが可能で、安全な削除ツールではありません。
- 一時ファイルの存在: ビューア用に一時ファイルに結果を出力します。次回の開封まで残存するため、「最終的に表示された状態」のスナップショットも復元可能です。
- 並行プロセス: 同時進行による競合が発生し、腐敗コストが減少する可能性があります。
- 対応形式: 画像・テキストのみ。音声、動画、他のバイナリはサポートされていません。
ライセンス
decayfmt は MIT ライセンスの下でリリースされています。詳細は LICENSE ファイルをご参照ください。