カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

仮想通貨から Proof of Work を無くすためにはファイル共有 P2P を模せば良い

僕はしばらく前からか、もしくは前々からか、

仮想通貨 (Bitcoin 等) の Proof of Work を用いた Mining って、ただの電気の無駄遣いなんでは……

と思っていて、この、 電気の無駄遣いの根本の原因 である Proof of Work を、 なんとかして無くせないか、と、思考を巡らせていた時に

あ、これって、今はもう下火になっている、ファイル共有 P2P を模せば良いんでは?

と思い至ったので、その辺りを今日はサラっと書きます。

何故 Proof of Work は電気の無駄遣いなのか

基本的に、 Proof of Work が本質的に行っている作業、と言うのは、

コンピューティングパワーを用いて特定の条件を満たすハッシュ値を求める

と言う類いの行為で、まぁ 特定の条件を満たすハッシュ値 を求める為に、 片っ端から力ずくで問題を解く、総当たりでしかありません。

で、この 総当たりで求めたハッシュ値 を利用し、鎖状に数珠繋ぎにしてデータの改竄を防ぐ 、 と言う仕組みが Blockchain なワケなんですが、こう言う仕組みを実現する以上、そのハッシュ値は、

ハッシュ値を求める作業量 > 越えられない壁 > そのハッシュ値を検証する作業量

である必要があり、そのため 上記条件を満たさない数珠繋ぎした Blockchain が第三者によって覆せてしまいます

そして、上記条件を満たすハッシュ値を求めるのが、Bitcoin 等の Mining であり、 そのハッシュ値のハードウェアの向き不向きを決めるのが、 各CryptoCurrency のアルゴリズムで、 その性質……と言うか、そのハッシュ値の算出するのに、CPU とか GPU とか、 あるいは ASIC が、計算を行うために、こう、モリモリと電気を食う ワケです。 そりゃハッシュ値求める為にフル稼動している訳ですからね。

そのため、それ故に、

Mining ハードウェアを動かす電気代 < Mining で稼げるマネー

という所に目を付けたビジネス (なのか?) が、電気代の安い国での Mining Farm なんですが、 これ、よーく考えてみると、

電気でカネを生み出して、そこからの利益でまた電気を買って…… (以下ループ)

という、無限に電気を食い続ける仕組み なワケで、

それって、資源が付きたら電気生み出せない し…… あと、 そもそも電気食い過ぎじゃね?

と言うのが、 僕の問題意識 ですね。はい。

Proof of Work が無駄に電気を食う問題を克服するためにはどうしたら良いのか

それで、 Proof of Work が電気を無限に食う理由は以上なんですが、 この Proof of Work 、取り止めるとなると、色々と面倒なコトになって来ます。

と言うのも、問題になるのが、

ハッシュ値を求める作業量 > 越えられない壁 > そのハッシュ値を検証する作業量

の条件を満たさないと、

数珠繋ぎした Blockchain が第三者によって覆せてしまう

って言うヤツ。

そもそも Bitcoin 等が Blockchainで Proof of Work を採用した理由としては、そもそもこの辺りに理由が有るので、 まーそんなに簡単に取り外せないワケなんですよね。

ただし、この辺りにいついては、 外部からの参加者が出来無い 、若しくは、 信頼されたノードしか参加できない 、 と言った様な性質を持つ Blockchain ネットワークであれば、特に問題にならないんですが、 まーそれだと、CryptoCurrency として名乗る必要が無いので、まぁ微妙なトコロでは有ります。 そしてこっちの閉じた Blockchain の方が、ミッションクリティカルな環境では利用し易いとは個人的には思いますけども。

それで、じゃあ 公開された Blockchain ネットワーク で、 Proof of Work に頼らない Blockchain っぽいの を、って言うと、 僕は、 三つ必要になる要素が有る 、と思っていて、それが、

  1. ネットワークへの参加時間
  2. ネットワーク帯域
  3. ストレージ等の非計算リソース

の辺り。

ま、この辺りを絡ませれてコイン発行を行えば、まだ Proof of Work よりは電気を有効利用出来るのではないか、 と僕は考えていたんですが、この三つを同時に満たすソフトウェアで、既存のモノって何か有ったよなぁ、と思って、ふと思い出したのが、

(特に Winny とか Share とか Perfect Dark の辺りの) ファイル共有 P2P

です。

CryptoCurrencyファイル共有 P2P を模す とは?

で、まぁ僕はこれ、上記三つのファイル共有 P2P は知識でしか知ってなくて、正直使ったコトも無いのですが、 (何せ違法にファイルが流通しているからね) Winny とか Share とかは Perfect Dark とかの、 ネットワークとしての性質として は、

  1. ネットワークへの参加時間が長い ほど ファイルを落とし易くなる
  2. ネットワークへの帯域提供が多い ほど ファイルを落し易くなる
  3. ネットワークへの提供ストレージが多い ほど ファイルを落としす易くなる

と言う性質を持っている様に思うのですが、この上記三つを性質の内、

ファイルを落し易くなる

という部分を、

コインを得やすくする

というのに置き換えると、

  1. ネットワークへの参加時間が長い ほど コインを得やすくする
  2. ネットワークへの帯域提供が多い ほど コインを得やすくする
  3. ネットワークへの提供ストレージが多い ほどコインを得やすくする

となり、

オッ、これだと Coin 発行の要素に使えるじゃん!

という感じになります。

が。

しかしながら、コレ、よーく考えてみれば判りますが、この辺りの ファイル共有 P2P を模す と言うのは、

Mining 作業の代わりには成るけれども、Proof of Work の代わりには成らない

というちょっと残念な感じで、 Proof of Work が担っている Blockchain の改竄の防止 、 にはちょっと考えが足りないんですよね。

それで、こういう様な考え方をしても、Proof of Work の代わりには成らない、 というのが分かり、どうしたら良いのかなーと僕も思うのですが、そもそも、 なんで Proof of Work によって Blockchain の改竄防止が必要になっているか、と言うと、これは、

Blockchain ネットワーク参加者の中で、一つの正しいデータストアを維持する ため

であり、つまり、言い換えると、

Blockchainネットワークの中で、強い整合性を持つデータストアを実現する ため

に Proof of Work が有る、と言うワケです。

それで、僕はこの構造を考えていて、ふと思ったんですが、 Blockchain にしろ Proof of Work にしろ、 これらは トランザクションの整合性を維持する ために導入されていて、これらによる Blockchain が、 唯一のトランザクションログの記録にになっている……のであれば、

Blockchain を複数用意 して、それを 相互依存させたらアカンの?

という事に思い至りました。

つまり、Blockchain と Proof of Work が組み合わされる理由としては、

ネットワークとして一つの糸の様に整合性の取れたログを維持する

という目的で導入されているワケなんですが、この 整合性を取る という手段において、

Blockchain を複数の糸 の様に用意し、それらを 相互依存させて 整合性を保つ

と言う手段を取るのも出来るような……? と僕は今現在は考えています。

以上

なんかサラっと書いているつもりが、かなり久しぶりにガッツリ書いてました。って言うか長いね。これ。

ま、この記事の最後の部分については、未だ確証もへったくれも無い、卓上の空論でしか無いんですが、

Blockchain を複数の糸 の様に用意し、それらを 相互依存させて 整合性を保つ

という考え方のミソは、

ログに関わる関係者を無限に増やして、記録の改竄を困難にする

という類いの代物です。

つまり、 皆で一つの改竄困難な記録を維持しよう と言うが、Bitcoin 等を始めとする、 Proof of Work を導入した CryptoCurrency の考え方ならば、 皆で皆の記録を突き合わせられる様にして、記録間の齟齬を起こさせない様にしよう 、というのが、 Proof of Work を利用しない CryptoCurrency の、 基本的な考え方になる んじゃないかなーと、僕個人としては思っています。はい。


と言う事で、サラっと書くつもりでガッツリでしたが、今日の長い話は以上です。