3 タイムスタンプサーバ
提案する解決法は、タイムスタンプサーバを必要とする。タイムスタンプサーバとは、ブロックを受け取ってハッシュ値を計算し、一般的には新聞やネットニュースのような仕組みで配信するサーバである[2-5]。データをハッシュ化しタイムスタンプに組み込むことにより、そのデータがその時点で存在したことを、明確に証明する。また、タイムスタンプは、一つ前の段階のタイムスタンプをハッシュ化したものを組み込み、チェーンを作る。そのため、タイムスタンプが後方に連なるに従って、信頼性が増して行くことになる。
タイムスタンプサーバの目的は、ある時間に、あるデータが存在したことを証明することです。これは、信頼できる中央機関があれば容易に実装できます。「○時○分に○○というデータ(のハッシュ値)が存在したことを証明する」という文書を、電子的に署名して配布すれば良いだけのことです。twitterに「こんなことを思いついた!」とツイートしてアイデアの証拠を残すのも、その一種でしょう。問題はビットコインのように、中央機関が無い場合です。どうやれば、ある取引がある時刻に行われたことを、P2Pシステムで証明できるでしょうか。
もっとも、ビットコインでは取引時刻をそれほど厳密には扱いません。「ビットコインでは取引に10分程度の時間がかかる」という話を聞いたことが無いでしょうか。これは、およそ10分以内に為された2つの取引は順序が入れ替わる可能性があるため、多重取引ではないと下した判定がその間に覆るかもしれないからです。実際には数10分待った方が良いのですが、いずれにせよ、取引時刻の曖昧さを許した代わりに、即時性が多少犠牲になっています。
分単位での時刻証明は得られなくとも、24時間前に確認したはずの取引が突然無効になるという事態は避けたいので、そういった大まかなレベルの時刻証明は必要です。ビットコインは、これを次のようにして解決します。すなわち「全世界のコンピュータを集めても、24時間かけて計算しなくては作れないようなデータ」を作ります。それをどう実装するか。次節で語られます。
最近のコメント