コピーワンス

かなり前から、コピーワンスが、9回コピー可能にという記事がいろいろなところで出ているけど、ナンセンスだと思う。というのは、メディアの劣化に対するバックアップができないからだ。DVD-Rが仮に2年で劣化して読み込み不可能になるとすれば、HDDからDVD-Rにムーブしてしまえば、それから2年間しかそのコンテンツを楽しむことが出来ない。孫コピーができないことを考えれば、HDD内のコンテンツが後8回分のコピーを許可していたとしても、そっちすらいつ壊れるか分からない。n回コピーのフラグが立っていたところで、HDD毎壊れてしまえば意味がない。

生物の分裂(つまりコピー)には限界があって、その限界はテロメアという組織によって決められているらしい。分裂の度にこのテロメアは短くなっていき、最後には分裂が出来なくなるらしい。おおざっぱな言い方をすれば、残りコピー回数情報なんだろう。どちらかといえば、僕は、DVDとかもこのテロメア方式にして欲しい。そうすれば、メディアの劣化によるコンテンツ喪失という危機が少しでも遠のくのではないかと思うから。仮に、n回コピー可能ならば、コピー毎にこのnをデクリメントして行けばいい。

ただし、

コピーk(残り算数n-k) -> コピーk+1(残り算数n-k-1)

という単純なコピーだと、同じプロセスを何度も繰り返せることになるので、コピー完了後には、コピーkには、コピーしましたよフラグを付与しないといけない。今のメディアにこのフラグを保持する領域があるのだろうか?

いずれにしても、こういう処理をするようにすれば、w年で劣化という前提があったとしても、w*n年は持つことになる。実際には、新しい世代のメディアは品質が進歩していることが期待されるので、世代毎の品質改善率をr(r >= 1.0)とすると、コピー1は、w年、コピー2は、w*r年、コピー3は、w*r^2年、コピーkは、w*r^(k-1)年も持つことになる。

ということは、コンテンツを保持できる年数は、

w + w*r + w*r^2 + w*r^3 + ... + w*r^(n-1) = w * (r^n - 1) / (r - 1)

仮に、w=2(現在のメディアは2年で読めなくなる)、r=1.1(メディアの寿命は世代で1.1倍になる)、n=5(コピーは5世代まで)だとすると、12.1年も持つ!・・・って以外と短いな。あぁ、世代で寿命が延びるという仮定が誤っているな。前の世代の年数が影響するとすれば、第1世代は、w年使えるから、第2世代は、w*r^w年は使えるわけで、そうすると。。。計算できません!まぁ、12年よりは圧倒的に長そうだ!なにしろ、乗数の乗数の乗数みたいな感じが効いていくからなぁ。

ということで、プログラマらしく、Cでプログラムを書いてみましょう。

#include <stdio.h>
#include <math.h>

int main()
{
  double w = 2.0; // 第1世代のメディア寿命
  double r = 1.1; // 1年でのメディア寿命の改善率(r >= 1.0)
  
  double dur = w; // 第1世代のメディア寿命
  double total = 0;
  for(size_t i = 1; i <= 10; i++)
  {
    total += dur; // 第i+1世代のメディアの寿命
    printf("第%u世代 コンテンツ保存寿命: %.1lf\n", i, total);

    dur *= pow(r, dur); // メディア寿命はdur年の間にr^dur倍になる
  }
  return 0;
}

結果:

第1世代 コンテンツ保存寿命: 2.0年
第2世代 コンテンツ保存寿命: 4.4年
第3世代 コンテンツ保存寿命: 7.5年
第4世代 コンテンツ保存寿命: 11.5年
第5世代 コンテンツ保存寿命: 17.6年
第6世代 コンテンツ保存寿命: 28.2年
第7世代 コンテンツ保存寿命: 57.6年
第8世代 コンテンツ保存寿命: 543.2年
第9世代 コンテンツ保存寿命: 61319052666062303000000.0年
第10世代 コンテンツ保存寿命: 1.$年

きゃー!9世代目で、既に人類が滅んでいるであろうという結果。10世代目なんて、精度が足らない始末。きっと、ムーアの法則みたいな寿命の成長を仮定したことが間違いなんでしょうが、こういう流れなら、著作権の期間などを考えても、8世代コピーまでで十分だという話になる。

まぁ、タダの思考実験に過ぎないのですけど。