RPOWのよくある質問
質問
- RPOWの仕組みとは?
- RPOWはどう発音する?
- RPOWの仕組みが安全だと、どうして分かる?
- RPOWとHashcashはどう違う?
- RPOWと電子現金はどう違う?
- RPOWの仕組みには、どんな使い道が考えられる?
- サーバーはどれくらい速い?
- RPOWが広まったら、一台のサーバーでどうやってすべての利用者をさばく?
- ムーアの法則のせいで、トークンは時とともに価値を失うのでは?
- 利用者は、なぜサーバーを使わずにRPOWトークンを互いに渡せない?
- これまでに見たすべてのトークンを記録し続けたら、RPOWサーバーのディスクの容量が尽きるのでは?
- RPOWの仕組みに手を加えるつもりは?
- RPOWサーバーの土台に、なぜIBM4758 Secure Cryptographic Coprocessorを選んだ?
- IBM 4758のセキュリティは、何年か前に破られたのでは?
- RPOWで使っているSHA-1のハッシュは、破られたのでは?
答え
-
RPOWの仕組みは、クライアント、ホスト、サーバーの三つの部分からなる。クライアントは、RPOWトークンを生成して交換できるようにするソフトウェアのライブラリー(と、実演のための簡単なコマンドラインの操作プログラム)だ。ホストのソフトウェアは、IBM 4758の暗号コプロセッサーのカードを差したPCの上で動く。これは仲介役で、ネットからの接続を待ち受け、クライアントとサーバーのあいだでデータを受け渡す。サーバーのいくつかの操作も手伝う。サーバーはIBM 4758のカードの上で動き、RPOWの仕組みを実現する安全な暗号の操作を行う。
-
RPOWはアー・パウと発音する。
-
RPOWの仕組みのセキュリティは、結局は、その設計と実装にかかっている。設計については、理論 (
http://rpow.net/theory.html)とセキュリティ (http://rpow.net/security.html)のページを見てほしい。実装については、ダウンロード (http://rpow.net/download.html)のページから手に入るソースコードを見てほしい。RPOWの仕組みの設計ならではの性質によって、ここでダウンロードしたソースコードから作られたプログラムが、実際にRPOWサーバーで動いていることを、遠隔から確かめられる。設計と実装がしっかりしていて、そのプログラムがサーバーで動いているなら、システムのセキュリティを信頼する土台がある。 -
RPOWは、プルーフ・オブ・ワーク(POW)のトークンにhashcashを使う。hashcashのトークンは、それを作るのに、ある程度まとまった量のコンピューターの労力が費やされた証拠だ。RPOWは、hashcashのトークンを同じ価値のRPOWトークンと交換できるようにし、そのRPOWトークンはさらに新しいRPOWトークンと交換できる。その効果は、hashcashのトークンを、価値を保ったまま手から手へ渡せるのに似ている。まるで、もともと希少な、本物の物理的な物であるかのようにだ。
-
電子現金(Ecash)とは、一種のお金になるトークンを作るという提案だ。これまでにいくつもの電子現金の仕組みが世に出たが、いまのところ、商業的に成功したものは一つもない。RPOWは、デジタル署名を使ってトークンを作る中央のサーバーのように、ある種の電子現金の仕組みと同じ技術のいくつかを使っている。だが、RPOWトークンはお金としての価値を持たない。そして、RPOWの仕組みは、利用者のプライバシーを守るのにブラインド化の技術を必要としない。ブラインド化がなければ、従来の電子現金の仕組みは、利用者にほとんどプライバシーを与えない。RPOWならではの透明さの機能によって、利用者は、暗号のブラインド化がなくても、システムが取引の細部を記録せず、プライバシーを守ることを確かめられる。プライバシーについて詳しくは、セキュリティ (
http://rpow.net/security.html)のページを見てほしい。 -
RPOWの考えられる使い道には、スパム対策のトークン、オンラインのゲームや遊びの賭けに使う「おもちゃのお金」、P2Pやファイル交換のシステムでの負荷分散の助け、などがある。利用者から利用者へ安く渡せるが、作るのには費用がかかる、という種類のトークンが役に立つシステムなら、RPOWを検討してみる価値があるかもしれない。
-
RPOWサーバーは、いまのところ1秒に約8回の交換をこなせる。いちばん遅い段階は、届いたメッセージのRSAの復号と、送り出すRPOWトークンへのRSAの署名だ。
-
RPOWはいまのところ、実験的で非商業的な利用のための、概念の実証だ。それでも、人々がこの仕組みで試せるように、そして受け取ったRPOWトークンが価値を保ち続けると、ある程度の確信を持てるように、できれば長く動かし続けるつもりでいる。この考えがうまくいくと分かれば、仕組みを広げて、複数のRPOWサーバーを置き、交換の負荷を分け合うことができる。RPOWを、クラスターの中や世界中の複数のサーバーに広げることについては、RPOWの世界 (
http://rpow.net/world.html)のページを見てほしい。 -
ムーアの法則が成り立ち続ければ、POWのトークンを作る費用は、一定の、指数関数的な割合で下がっていく。つまり、RPOWトークンは実際に価値を失う。Nビットのトークンは、過去より今のほうが速く計算できるからだ。だが、RPOWの仕組みは、幅広い大きさのトークンを扱えるように設計されていて、最も高価なトークン(50ビット)は、最も安いトークン(20ビット)の約10億倍の時間をかけないと作れない。さらに、多くの専門家は、コンピューターの性能の伸びがムーアの法則の曲線から外れ始めると見ている(もう外れたという人もいる)。こうした要因のおかげで、RPOWトークンは、この先何年も役に立ち続けるはずだ。これはお金ではなく、安定した価値の保存の手段を意図したものでもなく、交換しやすい形で表したコンピューターの労力だ、ということを覚えておいてほしい。
-
RPOWサーバーは、設計のボトルネックに見えるかもしれないが、実は欠かせない要素だ。価値を表すデジタルのデータの問題は、何の労力もなく複製できてしまうことだ。利用者がサーバーを通さずにRPOWトークンを渡せたら、誰かが価値の高いトークンを一つ作り、それを好きなだけ何度でも渡して回れてしまう。RPOWサーバーは、これまでに見たすべてのトークンを記録し、それを使って、作られたトークンがどれも一度しか交換されないようにしている。もちろん、交換のあとには、新しいトークンをまた交換でき、それが続いていくが、これは順番の再利用に限られる。その結果は、人から人へ渡される物理的な物に似ている。
-
いま手に入るディスクの大きさなら、見たRPOWのデータベースが数ギガバイトのディスクを埋め始めるまでに、何年もかかる。そのころには、もっと大きなディスクが手に入っている。それでも、必要になった場合に備えて、RPOWの仕組みには切り替えの計画が含まれている。RPOWサーバーに命じて、新しい鍵の組を作らせ、新しいデータベースを始めさせることができる。古いRPOWトークンは引き続き交換できるが、作られるのは新しいトークンだけになる。古いデータベースは、古いトークンのために引き続き使われる。やがて、持ち主が何か月も何年も交換しようとしなかった古いトークンがごくわずかになれば、古いデータベースを消し、古いトークンを受け付けないようにできる。鍵の切り替えの設計について詳しくは、RPOWの世界 (
http://rpow.net/world.html)のページを見てほしい。 -
IBM 4758のボードのセキュリティの性質と、RPOWの仕組みの構造のため、RPOWサーバーのソフトウェアにどんな変更を加えても、ボード上の鍵は消える。そうなれば、出回っているすべてのRPOWトークンが無価値になる。だから、RPOWサーバーのソースコードを変えるつもりは決してない。サーバーを変えずに、期限を決めずに動かし続けるよう努めるつもりだ。唯一の例外は、公開の検討を通じて、誰かがRPOWの実装に、システムのセキュリティの目標を破るような弱点を見つけた場合だ。その場合は、新しいコードでいちから始め直す必要があり、新しいRPOWトークンを作らなければならなくなる。そうならないことを願っている。RPOWサーバーのコードはそれほど複雑ではないので、セキュリティを破るほどの欠陥はないと期待できる理由がある。
-
IBM 4758のコプロセッサーのカードには、RPOWサーバーにとって望ましい特徴がいくつもある。一つには、物理的な攻撃に対してきわめて安全で、RPOWの運営者が自分のサーバーを操作して誤った動きをさせたり、鍵やほかの秘密の情報を盗んだりすることは、まず考えられない。だが、このプロジェクトにとってIBM 4758の最も大事な特徴は、IBMがOutbound Authenticationと呼ぶものに対応していることだ。この機能は遠隔証明(Remote Attestation)とも呼ばれ、ボードの外に決して出ない秘密の暗号鍵を使って、署名した証明書の連鎖をボードに出させる。この連鎖は、ボード上で動いているソフトウェアの暗号のハッシュ、つまり指紋を証明する。この証明書の連鎖は、最終的に、IBMのウェブサーバーと4758の文書で公開されているIBMのルート鍵にさかのぼる。この機能こそが、RPOWのセキュリティの土台、つまり、遠隔の利用者が、公開されたRPOWのソースコードが、自分がやり取りしているRPOWサーバーで実際に動いていると確かめられることの土台だ。IBMのように、公開された鍵に基づく遠隔証明に対応している安全なハードウェアは、私の知る限り、いまのところほかにない。そのため、IBM 4758は、RPOWサーバーの土台としてありうる唯一のものになっている。
-
2005年の初め、中国の研究者のグループが、SHA-1のハッシュへの攻撃を発表した (
http://www.schneier.com/blog/archives/2005/02/sha1_broken.html)。これを使うと、総当たりの探索の約2000倍の速さで衝突を見つけられる。この攻撃は、RPOWに二つの影響を与えうる。一つ目に、RPOWはその価値をhashcashに置いており、hashcashはSHA-1のハッシュを使う。だが、hashcashはハッシュの衝突には頼っていない。技術的には、ゼロの部分的な原像と呼ばれるものを使う。いまのところ、暗号学者たちは、新しい技法が原像の探索を速めるのには役立たないという点で一致している。これは、新しい技法がhashcashの生成には影響しないことを示している。二つ目に、IBM 4758は、証明の証明書の構造の中でSHA-1を使っている。これは、RPOWのサイトで公開しているソースコードが、RPOWサーバーで動いているものと一致すると信頼する土台だ。この文脈では、SHA-1への攻撃はもっと深刻だ。原理的には、同じハッシュを持ちながら違う動きをする、二つの版のソフトウェアを作れてしまう。だが、RPOWの利用者は、二つの点でこの攻撃から守られている。第一に、RPOWサーバーは、SHA-1への攻撃が発表されるずっと前の2004年8月に動き始めた。第二に、この技法を使うには、二つの版で変えられる、でたらめに見える「がらくた」のデータの塊をRPOWのプログラムのイメージに含める必要がある。RPOWはネット上の誰もが作れるように設計しているので、ソースコードを調べて、そうした意味のないでたらめなデータの塊がソースにないことを確かめるのは簡単だ。コードとデータはすべて筋が通っていて、サーバーを動かすのに必要なものだ。これは、新しい攻撃が使われておらず、RPOWサーバーのソースコードが実際に、サーバーで動いているRPOWのメモリーイメージを作ることを示している。
