RPOW - Reusable Proofs of Work
--- begin forwarded text
To: cypherpunks at al-qaeda.net
Subject: RPOW - Reusable Proofs of Work
Date: Sun, 15 Aug 2004 10:43:09 -0700 (PDT)
From: hal at finney.org ("Hal Finney")
Sender: owner-cypherpunks at al-qaeda.net
このメーリングリストのみなさんに、私の新しい、hashcashを使ったサーバー、rpow.netを試してもらいたい。
このシステムは、hashcashをプルーフ・オブ・ワーク(POW)のトークンとして受け取り、引き換えに、RSAで署名したトークンを作る。私はこれを、再利用可能なプルーフ・オブ・ワーク(RPOW)のトークンと呼んでいる。RPOWは人から人へ渡すことができ、渡すたびに新しいRPOWと交換される。RPOWやPOWのトークンはそれぞれ一度しか使えないが、使うと新しいトークンが生まれるので、同じトークンを人から人へ手渡していけるかのようになる。
RPOWは、同じ価値のPOWかRPOWからしか作られないので、それを作るのに使われたhashcashと同じくらい希少で「価値がある」。だが、hashcashと違って、再利用できる。
このサーバーの新しい考えは、セキュリティのモデルにある。RPOWサーバーは、高セキュリティのプロセッサーカード、FIPS-140のレベル4の認定を受けたIBM 4758 Secure Cryptographic Coprocessorの上で動いている。このカードは、ボード上のソフトウェアの構成について署名した証明を出せる。(十分にやる気のある)利用者なら誰でも、それをシステムの公開されたソースコードと照らし合わせて確かめられる。これで誰もが、システムに裏口がなく、同じ価値のPOW/RPOWトークンを渡されたときにしかRPOWトークンを作らないことを確かめられる。
これが、RPOWが実際に主張どおりの価値を持つという信頼を生む。つまり、同じ価値のPOW(hashcash)トークンに基づいて実際に作られたと分かることだ。
このシステムについての情報はrpow.netにもっとたくさんあり、ソースコードもダウンロードできる。クライアントをダウンロードしなくても、POWをRPOWと交換できる簡素なウェブの画面もある。
このシステムはいまベータ版の初期段階なので、試してもらえたら、どんな意見でもありがたい。ただ、問題があればサーバーのコードを読み込み直す必要があるかもしれず、そうすると、それまでに作られたRPOWトークンはすべて無効になることを覚えておいてほしい。だから、まだあまりRPOWを溜め込まないでほしい。
どうもありがとう。
ハル・フィニー
--- end forwarded text
--
-----------------
R. A. Hettinga <mailto: rah at ibuc.com>
The Internet Bearer Underwriting Corporation <http://www.ibuc.com/>
44 Farquhar Street, Boston, MA 02131 USA
"... however it may deserve respect for its usefulness and antiquity,
[predicting the end of the world] has not been found agreeable to
experience." -- Edward Gibbon, 'Decline and Fall of the Roman Empire' このサーバーの新しい考えは、セキュリティのモデルにある。RPOWサーバーは、高セキュリティのプロセッサーカード、FIPS-140のレベル4の認定を受けたIBM 4758 Secure Cryptographic Coprocessorの上で動いている。このカードは、ボード上のソフトウェアの構成について署名した証明を出せる。(十分にやる気のある)利用者なら誰でも、それをシステムの公開されたソースコードと照らし合わせて確かめられる。これで誰もが、システムに裏口がなく、同じ価値のPOW/RPOWトークンを渡されたときにしかRPOWトークンを作らないことを確かめられる。
ちょっと確かめたいだけなんだが……あなたがこの「証明」をただ偽造して、改ざんしたシステムを動かすのを、何が止めるのか?
--
Taral <taral at taral.net>
This message is digitally signed. Please PGP encrypt mail to me.
"Some people cause happiness wherever they go; others, whenever they go."
-- Oscar Wilde RPOWについての質問に、手短にいくつか答える。今週はCryptoに来ているので。
Taralは証明について尋ねた。これは、IBMの「IBM 4758 PCI Cryptographic Coprocessor Custom Software Interface Reference」の付録Cに公開されているルート鍵に基づいている。この資料はhttp://www.ibm.com/security/cryptocards/html/library.shtmlから手に入る。IBMのウェブページhttp://www.ibm.com/security/cryptocards/html/faqcopvalidity.shtmlにも公開されている。これで、その証明が本物のIBM 4758を指していることが分かる。
さらに、証明には、RPOWプログラムのハッシュと、そのプログラムが生成した一組の鍵の両方が含まれている。rpow.netのサイトに書いた方法を使えば、RPOWのソースコードから、証明に記されたハッシュと一致するハッシュを作れる。これで、RPOWサーバーで実際に動いているソースコードを手にしていることが分かる。そのソースを調べれば、プログラムが秘密鍵を決して外に出さず、ボードから持ち出させないことを確かめられる。これで、RPOWの通信用の鍵で暗号化したメッセージを送って意味のある応答が返ってくれば(メッセージはHMACで守られている)、証明に記されたプログラムと話していることが分かる。
リン・ウィーラーは、マイク・ボンドとリチャード・クレイトンによるIBM 4758の破り方に触れている。http://www.cl.cam.ac.uk/~rnc1/descrack/ に説明がある。これは実際には4758を破ったのではなく、ボード上で動いていたアプリケーション、つまりIBMのCCAの支援ソフトウェアの暗号の弱点を突いたものだ。RPOWはCCAを使っておらず、その攻撃には弱くない。IBMもその後CCAを直している。
もちろん、RPOWは私自身の仕事で、完璧からはほど遠いので、それ自体の脆弱性や誤りがあるかもしれない。オープンソースで、rpow.netから手に入るRPOWのソースコードへの検討と意見を歓迎する。
ハル・フィニー
RPOWについての質問に、手短にいくつか答える。今週はCryptoに来ているので。
RPOWがどれほど使えるものなのか、疑問に思っている。一般的に言って、私が思いつくプルーフ・オブ・ワークの実用的な使い道はどれも、プルーフ・オブ・ワークが蓄えられたり、移せたり、再利用できたりすれば台無しになる。蓄えられ、移せて、再利用できるようになったら、すでにデジタル現金の仕組みが押さえている使い道に限られてしまうんじゃないか?
だから、たとえ完璧に動いたとしても、これは、元になった基本要素より一般的な使い道が少ない暗号の産物を作る、頭のいい練習に見える。普通のPOWでは役に立たない特殊な使い道も、たぶんいくつかはあるだろう。ただ、私にはそれを、デジタル現金が役立つ使い道と区別できていない。
なぜこの仕組みは、必要になる前にプルーフ・オブ・ワークを作っておき、求めに応じて配るだけの「POWサーバー」を生まないんだろう? あるいは、自分でサーバーを動かすのが面倒な人にPOWを売る会社を生まないんだろう? そして、そういう装置やサービスは、POWを実時間の負荷分散や通信量の制御などに使うことを台無しにしてしまわないだろうか?
Bear
RPOWがどれほど使えるものなのか、疑問に思っている。一般的に言って、私が思いつくプルーフ・オブ・ワークの実用的な使い道はどれも、プルーフ・オブ・ワークが蓄えられたり、移せたり、再利用できたりすれば台無しになる。蓄えられ、移せて、再利用できるようになったら、すでにデジタル現金の仕組みが押さえている使い道に限られてしまうんじゃないか?
そもそも、私の知る限り、デジタル現金の実装は一つもない。私はRPOWを、ほかのやり方ならデジタル現金を使うはずのいくつかの使い道で使えるかもしれない、一種の「おもちゃのお金」だと考えている。暗号で守られたオンラインのゲーム、カードやサイコロで遊ぶためのコードを少し持っていて、それを直して、RPOWを賭けのチップにして賭けられるようにするつもりだ。
RPOWのもう一つの考え方として、ニック・サボの「ビットゴールド」の考えの実装、というものもある。ビットでできているが、金のような商品の希少さと、確かめられる高価さを持つ。もちろん、金の魅力や美しさはない。「ビットの銅」と考えたほうがいいかもしれない。
Bレイ・ディリンジャーなぜこの仕組みは、必要になる前にプルーフ・オブ・ワークを作っておき、求めに応じて配るだけの「POWサーバー」を生まないんだろう? あるいは、自分でサーバーを動かすのが面倒な人にPOWを売る会社を生まないんだろう? そして、そういう装置やサービスは、POWを実時間の負荷分散や通信量の制御などに使うことを台無しにしてしまわないだろうか?
そういうことは起こりうるが、必ずしも悪いことではない。結局のところ、人々がRPOWをお金で売り買いするところまで行けば、RPOWは電子現金の代わりになりうる。一番の問題は、人々が買いたくなるほど説得力のある使い道があるかどうかだ。
ハル・フィニー
At 04:34 PM 8/20/04 -0500, Matt Crawford wrote:
RPOWがどれほど使えるものなのか、疑問に思っている。
POWをスパム対策の候補として考えるなら
スパム対策としてなら、hashcashよりうまく働くかもしれない。現金としては、清算所が一つしかないので、「持参人払いの文書(bearer-documents (tm))」の匿名性がない。これは、おおむね独立した清算所をいくつも置き、それらが交換所で互いにやり取りする仕組みを支えることで改善できるかもしれない。だが、そうした清算所はおそらく当局の規制を受けるので、匿名性についての私の懸念は和らがない。
以上、私の2ディナール分の意見だ。
これはオンラインの電子現金の仕組みのようなものだ。受け取った者はそれぞれ、有効なものとして受け取る前に、RPOWを発行した鋳造所に送り返し、二重に使われていないかを尋ねる。有効なら(二重に使われていなければ)、RPOWサーバーは、受け取った側のサーバーが再利用できる新しいRPOWを送り返す。
チャウムのオンラインの電子現金のプロトコルによく似ているが、ブラインド化がなく(特許のため)、コインを「買う」手段としてhashcashを使う。もう一つのひねりは、鋳造所が、hashcashや以前に発行したコインと交換しなければコインを発行できないことを、彼が証明できる点だ(IBMの耐タンパー性のプロセッサーカードの有効性の範囲内で、そしてもちろん、こうしたカードの上で生成されたのではない「ハードウェアのコード署名の鍵」にIBMが署名しないと信頼できる範囲内で)。これは、「信頼できる(Trustworthy)」コンピューティングで、利用者が自分のコンピューターでできることを制限するという正反対の目的に使われている「遠隔証明」の機能と同じものだ。ハルはこれを逆に使い、利用者がどのコードが動いているかを実質的に監査して確かめられる、検証可能なサーバーを作っている。
アダム
On Fri, Aug 20, 2004 at 04:34:00PM -0500, Matt Crawford wrote:
RPOWがどれほど使えるものなのか、疑問に思っている。一般的に言って、私が思いつくプルーフ・オブ・ワークの実用的な使い道はどれも、プルーフ・オブ・ワークが蓄えられたり、移せたり、再利用できたりすれば台無しになる。
暗号で守られたオンラインのゲーム、カードやサイコロで遊ぶためのコードを少し持っていて、それを直して、RPOWを賭けのチップにして賭けられるようにするつもりだ。
POWをスパム対策の候補として考えるなら、最初に受け取ったMTAは、そのメッセージの「支払いが済んでいる」ことを、次のMTAにどう保証するのか? メールの中継は新しい仕事をしたくないはずだが、2番目のMTAには、最初のMTAがスパムボットでないかどうかが分からない。