Wei Dai は暗号技術の研究者で、Crypto++ ライブラリの最初の作者です。1998 年の b-money 提案では、デジタルな仮名を使う人々が金銭の帳簿を管理し、契約を結ぶ仕組みを記しました。Bitcoin はこの仕事を引用していますが、ネットワークの構成とルールは独自のものです。
メッセージの暗号化やデジタル署名の検証を行うとき、プログラマーはすべての手順を一から書く必要はありません。保護されたデータを扱う関数をまとめた、暗号ライブラリを利用できます。Wei Dai が最初に C++ で書いた Crypto++ は、そのようなライブラリです。アプリケーションに組み込める実際のソフトウェアです。これに対し b-money は、貨幣システムについて書かれた提案です。動くライブラリが存在しても、提案どおりのネットワークまで稼働した証拠にはなりません。彼の貢献を理解するには、この二つの仕事を分けて見る必要があります。 [3]
1998 年 11 月、Wei Dai はネット通販でもなじみのある問いを立てました。身元を明かさずに、人々はどう協力できるのでしょうか。b-money では共同の帳簿管理と契約のために、二つのプロトコル、つまりルールの組み合わせを提案しました。公開鍵を仮名として使い、メッセージにはデジタル署名を付けます。ただし参加者を追跡できないネットワークは出発点での仮定であり、提案自体が実現するものではありません。最初の案はメッセージの一斉配信への要求が厳しく、作者自身が非実用的と述べています。これは考え抜かれた設計案であって、すでに動く匿名サービスの手引きではありません。 [1]
アンナが b-money を 5 単位持ち、トムに 2 単位送るとします。最初の案では全参加者が口座記録のコピーを持ちます。アンナの署名付きメッセージに従い、皆が彼女の口座から差し引き、トムの口座に加算します。アンナには 3 単位残ります。残高をマイナスにするメッセージは無視されます。署名は指示する権限を確かめるものですが、共同の帳簿にはメッセージを届けるルールも必要です。Bitcoin は後に UTXO モデルを用い、まだ使える個々のトランザクション出力を追跡しました。目的が似ていても、記録の仕方が同じとは限りません。 [1]
二つ目の b-money 案では、サーバーと呼ぶ一部の参加者が帳簿を管理します。他の人の負担は減りますが、管理者をどう監督するかが問題になります。サーバーは制裁に充てられる保証金を預け、データベースを定期的に公開し、その記録内容に対して公に責任を負うことになっています。利用者は自分の残高と、全口座の合計が発行済みのお金を超えていないかを確認します。受取人は無作為に選んだサーバーにも処理を確認します。保証金が信頼を魔法のように不要にするわけではありません。口座を管理する人と機械を監督する仕組みの一部です。 [1]
当初の b-money は計算問題を解くことで単位を生み、その量を計算費用に対応させます。費用は標準的な商品の組み合わせで測ります。これは共通の費用尺度であり、市場で誰かが支払う単価を決めるものではありません。しかしコンピューターは進歩し、実際の費用を全員が知っているわけでもありません。Dai はこの難点を認め、付録で競売方式を提案しました。帳簿管理者が新たな発行量を話し合い、発行を希望する人が計算の入札で競います。これは BTC の発行日程とは異なります。難しい問題を明示し、別の道を探る点にも、この文章の価値があります。 [1]
提案は支払いにとどまりません。翻訳の依頼なら、署名は契約への同意を示せても、納品された文章の質を証明できません。そのため b-money の契約には保証金、違反時の賠償の取り決め、仲裁者の助けが含まれます。それでも合意できなければ各当事者が主張を提出し、帳簿を持つ各参加者が自分で判断します。人間の紛争をデジタルな仕組みに移す難しさが見えてきます。一方、出力を使う条件を記述する Bitcoin Script は、厳密に定められた技術的条件を評価します。それだけで翻訳の出来を判定することはできません。 [1]
Satoshi Nakamoto は、Bitcoin の設計を説明するホワイトペーパーで、1998 年の b-money を参考文献 1 に挙げています。共通の管理者なしで使うデジタルなお金は Bitcoin 以前から研究されていた、と具体的な思想のつながりをたどれます。ただし引用は、すべての仕組みを採用したという意味ではありません。b-money の口座管理、発行、紛争処理は Bitcoin と異なります。また、その引用から Satoshi Nakamoto の正体が分かるわけでもありません。歴史を理解するには、引用から人物を推測するより、確認できる文章を比較する方が役立ちます。 [2]
Crypto++ の歴史は修正、テスト、他の開発者の仕事によって続きます。プロジェクトの記録によれば、Wei Dai は 2015 年 6 月に日々の運営をコミュニティへ引き継ぎました。利用者に重要なのは最初の作者だけでなく、具体的なバージョンと関数の正しい使い方です。ライブラリは署名や暗号化の道具を提供できますが、安全な鍵の保管やウォレット全体の設計まで自動的に解決しません。開発者は文書を読み、修正を追い、自分の使い方を検証する必要があります。作者の貢献を認めることと、現在のソフトウェアを確かめることは両立します。 [3]
理解を深めるには、この項目とあわせて次もお読みください Adam Back, Nick Szabo, b-money, Satoshi Nakamoto. 次の項目からも参照されています b-money, Bit Gold, Adam Back, Nick Szabo.