【図解】ビットコイン取引を支えるプルーフオブワークを丸裸にする!

calculating

また「PoW」かよ…。

ビットコイン取引の記事や解説を読んでいると必ず遭遇する用語“PoW”または“プルーフオブワーク”。なんとなく分かるようで暫くするとやっぱり忘れてしまう言葉ですね。

元々の英語Proof of Workのほうが実際のイメージを含んだ表現になっているので、せっかくですから用語と実際のイメージが結びつくように覚られるといいと思います。

このプルーフオブワークは、ビットコイン取引が正常に行われるためのとても大切な仕組みです。ビットコインの取引履歴はオンライン上で分散管理されているために、一見いつでもデータを書き換えられそうですが、このプルーフオブワークのおかげで書き換えがとても難しいのです。例えば、世の中を賑わせている官庁の「改ざん」問題のように一部を書き換えようと思っても容易にできない仕組みになっているのです。

ただし、このプルーフオブワークを理解するにはビットコインの仕組みが少し分かっている必要があります。例えば、P2Pとかマイニングとかいう用語に拒否反応がなければOK!今日は、そのようなレベルの方を対象にこのプルーフオブワークを徹底的に解説していきたいと思います。

1.ビットコインはプルーフオブワークで取引承認(合意形成)している

1-1.プルーフオブワークとブロックチェーンの仕組み

 プルーフオブワークはビットコイン取引の根幹であると言っても過言ではありません。プルーフオブワークなくしてビットコイン取引は成り立たないのです。

そこで、プルーフオブワークを理解するために、まずはビットコイン、つまりはブロックチェーンの仕組みを簡単におさらいしておきましょう。

bitcoin_imageビットコインはコインの送金、受取の取引データが入ったブロックをチェーンとしてつなぎながら取引を承認し、記録していく仕組み(ブロックチェーン)の上で動いています。その際に、不正な取引データが承認・記録されないようにするために次のような枠組みで運用されています。

  • 特定の中央サーバーはなく、世界中のコンピュータによるP2Pネットワークによって運用される。全てのブロックはP2Pネットワーク上で公開されていて、誰でも閲覧できる
  • 新しいブロックをつなぐには、直前のブロックにつなげるハッシュを見つける必要がある。ハッシュを見つけるためには、任意のナンスという数値を次々と入れて計算をして、ハッシュを探り当てる競争(マイニング競争)に勝たないといけない。計算する高性能コンピュータの費用、電気代などがかかる
  • ハッシュを最初に見つけたマイナー(採掘者)が新しいブロックをつなげ、取引の手数料と新規発行されるビットコインという二つの報酬を得る

上の図で、ビットコインネットワークにいる各コンピューターがマイナーたちです。マイナーは報酬を得るために多額の投資をしていて、速く大量の計算をすることで、正確なブロックをつないでいるのです。この速く大量の計算をすることによってハッシュを見つけ取引承認がされていることを、「プルーフオブワーク」と呼んでいます。

1-2.マイナーがプルーフオブワークすることでビットコインは運営されている

先ほども書きましたが、プルーフオブワークは、英語で書くと Proof of Workになります。「仕事で証明する」という意味ですが、計算量という仕事を一番速く大量にこなしたマイナーが、報酬を得て正確なブロックをつなぐ、ということになります。

ビットコインはP2Pネットワークですから、このネットワークを維持するマイナーがいないことには成り立ちません。プルーフオブワークは、それらマイナーに報酬を与えることで参加を促し、競争させることで取引承認の正確性を保持しています。

ここで報酬がビットコインであることが重要です。もし報酬がビットコインでなければ、ビットコインの価値が暴落しても構いませんので、いいかげんなブロックをつなぐこともあるでしょう。しかし、報酬がビットコインであれば、ビットコインが信頼できるコインであり続けることが、巨額の投資をするマイナーにとっては最も重要な参加要件です。ですからマイナー自ら不正を犯して、投資を無駄にすることはありえない、という訳です。

ところで投資ってどれくらいの金額なんでしょうか?マイニングにはASICという機材が使われていますが、ASICで最低限の実力を持つものを買うのに1500ドルします。100台買うと日本円で大体1500万円。これにラックとか電源とか、部屋の家賃やエアコン、電気代などがかかってきますので簡単には手を出せない金額なのです。それを大手マイナーは何千台もまとめた工場をいくつも作ってマイニングしている訳です。

ここまでくるとビットコインはプルーフオブワークがなければ成り立たないことがお分かり頂けたかと思います。そこで、プルーフオブワークでは実際にどのような作業をしているのか、具体的に検証していきましょう。

2.この単純作業がプルーフオブワークの正体!

2-1.ナンスをハッシュ関数に代入して計算結果を調べつくす

先ほど、プルーフオブワークではハッシュを探り当てる競争が行われていると書きました。実際にどのような作業が行われているか見てみましょう。そのためには、まずハッシュとナンスという用語を理解する必要があります。

ビットコインのブロックはハッシュと呼ばれる値でつながっています。ハッシュとは、元のデータをハッシュ関数というものを通すとできるもので、一定の長さのデータにできます。そして以下の特徴があります。

  1. 計算結果から元のデータには戻せない
  2. 元のデータは文字列でも画像でも何でも良い
  3. 元のデータが少しでも違えば、計算結果が変わる

ビットコインではこのハッシュを使ってブロックをつなぐことで改ざんを難しくしています。まずビットコインのハッシュは、一定数の0(ゼロ)から始まる値と決められています。もしブロックを改ざんするとハッシュの先頭が一定数の0で無くなり、すぐに改ざんがばれます。

また新しいブロックをつなぐ際にも、一定の0を並べたハッシュを探さないといけないのですが、そのためにはナンス(nonce)と呼ばれる文字列を、ハッシュ関数に総当り的に、適当に、ランダムに代入して、計算結果に0が並ぶかどうかを確認する必要があるのです。

ナンス(nonce)の由来…ナンスとは、number used onceのこと。直訳すれば、「一度しか使われない数字」、つまり使い捨ての数字という意味です。使い捨ての数字を次々にハッシュ関数に代入して計算結果を確認するプルーフオブワークの作業に使われます。

2-2.プルーフオブワークに最初に成功すると報酬が得られる

さて、ここから報酬を目指すマイナーたちの競争、つまりプルーフオブワークが始まります。ハッシュを見つけるために、以下のデータが集められます。

bitcoin_block
ビットコインのブロック

①直前ブロックのハッシュ

②今回の取引データ

③ナンス

①のデータは、最新のブロックを見ることで分かります。そして②のデータはP2Pネットワーク上に送信された世界中のユーザーによる取引データです。この②のデータはマイナーによって集める対象に差がありますから、マイナー毎に異なるデータとなります。③のビットコインでのナンスというのは、32ビットの数字のことで、0からおおよそ43億まであります。

①と②が準備できたら先頭に一定数の0が並ぶハッシュを見つけるために、ハッシュ関数にナンスを0から43億まで代入して計算する作業を行います。これがプルーフオブワークで行われている作業です。何と単純な作業でしょうか。この作業を他のマイナーに先駆けて成功させるためにマイナーは巨額の投資をするのです。

seek_hash2
ハッシュを探す

ハッシュに並ぶ0の桁数は、この計算が約10分で終わるように都度調整されています。その10分の間にマイナーのマシンはひたすらナンスを代入して計算する作業を繰り返している訳です。

そして世界で一番最初にハッシュを見つけたマイナーが晴れて新しいブロックをつなぎ、そのブロックに含まれる取引データが承認され、取引手数料と新たに発行されたビットコインを得ることができるのです。

2-3.プルーフオブワークの仕組みがビットコイン分裂の原因にもなる

2017年8月にビットコインが分裂し、ビットコインキャッシュ(BCH)が誕生しましたが、その大きな理由がプルーフオブワークにありました。当時、ビットコインの開発者たちは増加する一方のビットコイン取引をさばくために、Segwitという技術を導入することを提案していました。

しかし、Segwitが導入されるとこれまでマイナーが使ってきたASICという機材が使えなくなるという事情からこの提案は開発陣営とマイナー陣営で合意することができず、最後には開発陣営がビットコインを分岐させて、ビットコインキャッシュという新たなコインとする結末を迎えたのです。この事例からもマイナーがどれだけの投資をしてきているか伝わってくると思います。

2-4.プルーフオブワークのデメリット

前項でも触れたように、ビットコイン取引量は増加の一方で、旧来のプルーフオブワークの仕組みで処理し続けることで、取引承認の遅延が度々発生するようになりました。そしてその中で早く承認されるためには高い手数料を提示しなければなりません。このように、増加した取引量を以下に迅速に処理できるかという点が今のプルーフオブワークの一つの課題であり、デメリットです。

またナンスを総当り的にハッシュ関数に代入して計算する手法も、機材のコスト、機材や冷却にかかる電気代などの無駄があり、これも大きなデメリットと考えられています。

ただし、ビットコインは仮想通貨全体のいわば基軸通貨ともいえる存在となっていますので、仕組みを簡単に変更することはできません。また既存マイナーたちとの意見調整も必要ですから、慎重にそして最も効率の良い方法が日夜研究され続けています。

3.プルーフオブワーク以外の仮想通貨取引承認システム

3-1.プルーフオブステーク(PoS

 プルーフオブステーク(Proof of Stake, PoS)という取引承認システムは、コインの保有量が多く、保有期間が長い人に取引承認をさせる仕組みです。CardanoADA)などで採用されています。

pow_pos
プルーフオブワークとプルーフオブステーク

PoSには大きく分けると二つあって、一つはプルーフオブワークの仕組みを持ちながら、コイン保有量の多いマイナーはナンスをより簡単に見つけられるようになっていて、結果多くの承認権利を獲得できるものです。もう一つは単純にコイン保有量の多い人に、より多くの承認権利が抽選で当たる仕組みです。

このPoSのメリットは、マイナーが無駄な電力を消費しないという点にあります。プルーフオブワークに比べて必要な計算量が減るため、電力の節約につながるというものです。

もう一つのメリットは、プルーフオブワークよりも安全性が高まるというものです。プルーフオブワークには全体の51%の計算力を持つマイナーがいると、不正取引の承認、ブロックの改ざんなどが起きる可能性があると言われている問題です。PoSでは、この攻撃をしようとすると全体の51%を保有しなければなりません。保有するためには莫大な投資が必要ですし、保有したとして、実際に攻撃をすると自分のコインの価値低下を招くため攻撃をするメリットがありません。

現在、有力仮想通貨のイーサリアム(ETH)では、プルーフオブワークの仕組みから段階的にPoSに移行しているところです。まだ完全移行には数年かかるとみられていますが、大きな注目を集めています。

PoSにもデメリットがあると言われています。というのも、コインを多く持っている人に多くコインが与えられますから、ネズミ講的な仕組みであると言われていることです。PoWでもPoSでも多く投資をすると多くのリターンが得られることになっていますから、一概にPoSだけを批判できる内容ではないのかもと思います。

またコインを大量に保有する必要があるため、コインの流動性が下がるという点です。こちらはこのPoSの仕組みでは前提条件として流動性の問題があると考えておいたほうが良いかもしれません。

3-2.プルーフオブインポータンス(PoI

プルーフオブインポータンス(Proof of Importance, PoI)は昨今話題になっていたネム(NEM)で採用されている取引承認システムです。保有量だけではなく、取引回数や取引金額まで含めて貢献度を算定して報酬が払われる仕組みです。

pow_pos_poi
プルーフオブステークとプルーフオブインポータンス

PoSの弱点である流動性を、利用度合いを含めて算定することで回避するシステムになっています。

3-3.主な仮想通貨の取引承認システム一覧

世界には様々な仮想通貨が存在していますが、代表的な仮想通貨の取引承認システムを半ば強引に分類して一覧にまとめてみました。なかなかスッキリと分類はできなかったのですが・・・。この一覧では同じように見えるシステムでも仮想通貨ごとに少しずつ違って運用されていたりしますので、興味のある方は、リンク先のサイトで見識を深めてみてはいかがでしょうか。

仮想通貨

取引承認システム

Bitcoin(BTC)

PoW

Ethereum(ETH)

PoW→PoS

Ripple(XRP)

独自承認システム

Bitcoin Cash(BCH)

PoW

Litecoin(LTC)

PoW

Cardano(ADA)

PoS

EOS(EOS)

DPoS(PoSの一種)

NEO(NEO)

独自承認システム

Stellar(XLM)

独自承認システム

IOTA(MIOTA)

PoW

NEM(XEM)

PoI

4.まとめ

ビットコインのようなプルーフオブワークを使った取引承認システムは、一見とても高度な仕組みで運用されていて一般の人には分からないと思われてしまいがちです。確かに用語は難しいのですが、今見てきたようにプルーフオブワークは実はコンピューターによるガテン系の計算(計算量が多ければ報酬がもらい易い)によって支えられていたのです。

ただし、他にもいろいろな取引承認システムが登場してきていますし、複数の方法を組み合わせて運営しているものもあります。今後、さらに取引が早く、もっと手数料も安いシステムが登場することを期待しましょう。その頃には、仮想通貨が世界中の基軸通貨となっているかもしれませんね!