インターネット以来の大発明その2 ~ビットコインの技術、マイニングとプルーフオブワーク~
インターネット以来の大発明その1はこちら
インターネット以来の大発明その1で、ビットコインの成り立ちについて書きました。ビットコインは政府の規制に縛られない自由な電子マネーという思想から生まれました。
このビットコインが用いたブロックチェーン技術は、インターネット以来の大発明と言われています。
これはどのような技術なのか?
暗号化技術という難しい話を、できる限りわかりやすく書いてみました。
ビットコインの技術とは?
決済システム
我々が個人間で送金する場合、金融機関は決済システムの一つです。例えば、図のようにAさんがBさんに10,000円送金する場合、実際に移動するのは金額の情報です。
AさんがC銀行に「D銀行のBさんの口座に10,000円送金する」ように依頼します。するとC銀行はAさんの口座の10,000円をD銀行のBさんの口座に移動するように依頼します。そしてBさんの口座の残高が10,000円増加します。
C銀行とD銀行の間では1日の間に多くのお金が送金されています。一日の終わりに最終的な金額の差をそれぞれの銀行間で移動して決済が完了します。
ビットコインを使えば、ブロックチェーン技術を用いて、世界中どこでも「インターネットがつながっていれば」、短時間に極めて低い手数料で送金ができます。その意味ではビットコインは、決済システムの1種です。日本の仮想通貨法では支払い手段と定義しました。
図1 従来の銀行間の送金
公開鍵と暗号鍵
ビットコインの口座は誰でも開設できます。ビットコインの秘密鍵は乱数発生器から生成した英数字で、これをビットコインプログラムに通すと公開鍵がつくられ、これがビットコインアドレスになります。
このように秘密鍵から公開鍵を作りますが、公開鍵からは秘密鍵が何かは分かりません。もし秘密鍵が他人に知られてしまうと、ビットコインアドレスが乗っ取られるので、絶対に他人に知られないように管理します。
AさんがBさんにビットコインを0.01BTC(約1万円)送金する場合、まずAさんのアドレスと0.01BTC送金するという情報を自分の秘密鍵で暗号化し、Bさんに送信します。この暗号化を電子署名すると言います。
受け取ったBさんは、この情報をAさんの公開鍵を使って復号します。Aさんの公開鍵で開くことができれば、確かにAさんからのものだということが分かります。ここまでの操作で、BさんはAさんの秘密鍵を知らなくてもできるという点が重要です。
図2 秘密鍵と公開鍵の仕組み
ハッシュ関数
ビットコインで使われるハッシュ関数とは、次のような特徴を持った関数です。
- 入力の文字列に対して、決まった固定長の文字列を出力
- 入力の文字列が一文字でも違えば、出力の文字列は全く違ったものになる
- 出力の文字列から入力の文字列を逆算することはできない
- 入力の文字列の長さが変わっても、出力の文字列の長さは変わらない
図3 ハッシュ関数の特徴
P2Pネットワーク
ビットコインは、全体を管理するサーバーのないP2Pネットワーク(Peer to Peer)です。これはネットワークにつながっているコンピューター同士が個々に情報を交換する方式です。
図4 ピアトウピア・ネットワーク値は…
先の例でAさんからBさんに0.01BTC送金したという情報は、ネットワークにつながっているすべてのコンピューター(ノードと呼ばれる)に送られます。すべての取引は、すべてのコンピューターにも送られ、取引は誰でも見ることができますが、それぞれのビットコインアドレスが誰であるかは分かりません。
今、ビットコインのプログラムをインストールすると、2009年から続いたすべての取引データ(元帳 何十ギガバイト)が送られてきます。
プルーフオブワークとマイニング
10分間ごとに取引記録をまとめたものをブロックと呼びます。ビットコインでは、この新しいブロックを承認するためには、誰よりも早く問題を解かなければなりません。これがプルーフオブワーク(Proof of Work)です。これはハッシュ関数と呼ばれる関数を用います。この関数は、入力した文字列に対して、異なる文字列を返す関数です。しかし答えの文字列からは入力した文字列が絶対にわからないようになっています。また入力した文字列が異なれば必ず異なる文字列を返すような関数です。
ビットコインは、取引記録を承認するために、取引履歴にある値を加えたものをハッシュ関数にかけて、得られたハッシュ値の先頭に0が一定数並ぶことを求めています。
ここで正解(0が一定数並ぶ)になるようなある値をナンス値と呼びます。
実際は、前ブロックのハッシュ値と前ブロックのナンス値、任意のナンス値、この3つを加えてハッシュ関数にかけます。そして出てきた結果、最初の〇桁が0となれば、そのナンス値が正解です。
これを誰よりも早く見つけた人が勝者です。
敗者は勝者のナンス値が正しいかを検証します。そのため、不正ができない仕組みになっています。このナンス値を探すには、総当たり戦でしらみつぶしに行うしか方法がありません。これはマイニングと呼ばれています。
図5 Proof of Workの仕組み
マイニングは一定時間で完了するように難易度が調整されています。現在は競争が非常に激しくなってきて、工場のような場所で多数のコンピューターを稼働させており(発掘プール)、電気代の安い中国などが中心となっています。そして複数の発掘プールが共同でマイニングを行っています。
このようにマイニングは大量の計算を高速で行わなければならないので、大量のコンピュータと電力を消費します。ただし、マイニングの計算自体は、まったく意味がありません。
図6 実際のブロックのデータ構造
図7 マイニングツールの変化
図8 マイニング・プールの仕組み
このマイニングの勝者は、12.5BTC(2019年6月のレートで、1570万円)のビットコインの獲得と送金手数料を得ることができます。そして得られたナンス値を加えた新しいブロックがすべての元帳に追加されます。
ビットコインの送金は、マイニングの勝者が送金手数料の高いものを選ぶことができます。一方、送金手数料が低い取引は、いつまでたっても承認されないため、ビットコインのルールでは、新規ページには一定量の特別なスペースを用意して置き、一定時間が経過しても承認されずに陳腐化しそうな取引を必ず埋めるように定めてあります。
つまり手数料を少なくすれば、時間はかかりますが必ず送金される仕組みになっています。
ビットコインの総発行量は2,100万BTCと予め決まっています。そしてマイニングのインセンティブは4年ごとに半減するように設計されています。2017年には25BTCから12.5BTCに半減しました。一方ビットコインが増えるに従い送金も増えるため、今後マイニングのインセンティブは、新規に獲得するコインより送金手数料に移行すると考えられています。
51%攻撃
ビットコインでは、マイニングで51%の投票権を獲得すればブロックを承認できます。つまり不正を働いてビットコインを獲得したければ、現在採掘している全プレイヤーの51%以上の計算能力を獲得すれば可能になります。2013年3月の時点で1秒間に3,500億回以上のハッシュ関数の総当たり戦が行われており、その51%以上1785億回以上の計算能力が必要です。これは1組織で実現できる規模ではなくなっています。
図9 マイナーの比率(2019年3月)
ハードフォーク
このマイナーの競争は、時として二人の勝者が生まれ、それぞれ異なったブロックを承認してしまうことが起きます。そうすると同じブロックで内容の異なるものが発生してしまいます。この場合はブロックの数が多い方を正しいとするというルールが決められています。
過去には偶発するトラブルにより2つのブロックが承認され、そこから新しいブロックチェーンが生まれました。これがハードフォークです。
あるいは、それまでの仕様では制約があるため、ハードフォークを行い新しい仕様のブロックチェーンを生成することがあります。
ビットコインは1ブロックのサイズが1MBのため、記録できる取引内容に制限がありました。これを解決するため、1ブロックのサイズを8MBにしたビットコインキャッシュが、2017年8月にビットコインからハードフォークしました。
図10 ハードフォークの原理
図11 ビットコインキャッシュ
ブロックチェーンとは?
ブロックチェーンとは、それぞれの取引を記録した元帳を連結して運用することです。この場合、今まで述べた暗号化やハッシュ関数を用いたマイニングの仕組み、P2Pネットワークも含めて呼ばれることが多いようです。
ビットコインはブロックチェーンを用いた暗号通貨のひとつです。
ビットコインの特徴は、完全にオープンなシステムでありながら、改ざんできない仕組みであることです。Mt.Goxの破綻などビットコインをめぐる問題は度々起きています。しかしビットコインの仕組みがハッキングされたことは今まで一度もなく、改ざんも起きていません。
ほとんどの問題は、ビットコイン取引所がハッキングされてビットコインが盗まれたものです。
銀行に何度か泥棒が入ってお金を盗まれましたが、偽札は一度も作られていない、ということです。問題は銀行であり、お金に問題はありません。つまりビットコイン自体のセキュリティに問題は起きていません。
ビットコインのブロックチェーン技術の特徴は、
【長所】
- 完全にオープンでありながら改ざん不可能なセキュリティの高さ
- すべての取引が記録され、それを誰でも見ることができる
- P2P方式で、管理主体が不要なため、事故やトラブルに強い
- 供給量が制限され、価値が低下しないため、通貨としての機能を持つ
【短所】
- システムを維持しセキュリティを確保するためのマイニングが非常な努力を必要とする。マイナーへのインセンティブとマイナーの協力がなくなるとシステムを維持できない
- 承認作業に時間がかかるため、即時処理には向かない
- すべての取引を毎回記録するため、データのチェックと転送の頻度が高く、そのためシステムの維持コストが高い
- ユーザー主体のシステムの為、全ユーザーにアップデートを強制できない。そのためアップデートは下位互換を強制される
- 最初に設計したデータベースからシステムを拡大するのが困難
このようにビットコインは、サーバーのような管理主体がない分散型のシステムで、完全にオープンでありながら改ざんできない点で極めて優れたブロックチェーン技術です。
しかし、ビットコインの仕組みを維持するため、発行量の制限や、全く意味のない計算に大量のコンピュータと電力を使用するなど課題もあります。
ただし、ビットコインは「政府に管理されない電子マネーを自由に発行する」というパンドラの箱を開けました。これにより金融の世界は大きく変わる可能性があります。
前の記事はこちらをご参照ください。
インターネット以来の大発明その1~ビットコインの成り立ちと特徴~
本コラムは2019年3月19日「未来戦略ワークショップ」のテキストから作成しました。
経営コラム ものづくりの未来と経営
人工知能、フィンテック、5G、技術の進歩は加速しています。また先進国の少子高齢化、格差の拡大と資源争奪など、私たちを取り巻く社会も変化しています。そのような中
ものづくりはどのように変わっていくのでしょうか?
未来の組織や経営は何が求められるのでしょうか?
経営コラム「ものづくりの未来と経営」は、こういった課題に対するヒントになるコラムです。
こちらにご登録いただきますと、更新情報のメルマガをお送りします。
(登録いただいたメールアドレスは、メルマガ以外には使用しませんので、ご安心ください。)
経営コラムのバックナンバーはこちらをご参照ください。
中小企業でもできる簡単な原価計算のやり方
製造原価、アワーレートを決算書から計算する独自の手法です。中小企業も簡単に個々の製品の原価が計算できます。以下の書籍、セミナーで紹介しています。
書籍「中小企業・小規模企業のための個別製造原価の手引書」
中小企業の現場の実務に沿ったわかりやすい個別製品の原価の手引書です。
基本的な計算方法を解説した【基礎編】と、自動化、外段取化の原価や見えない損失の計算など現場の課題を原価で解説した【実践編】があります。
中小企業・小規模企業のための
個別製造原価の手引書 【基礎編】
価格 ¥2,000 + 消費税(¥200)+送料
中小企業・小規模企業のための
個別製造原価の手引書 【実践編】
価格 ¥3,000 + 消費税(¥300)+送料
ご購入及び詳細はこちらをご参照願います。
書籍「中小製造業の『製造原価と見積価格への疑問』にすべて答えます!」日刊工業新聞社
普段疑問に思っている間接費・販管費やアワーレートなど原価と見積について、分かりやすく書きました。会計の知識がなくてもすらすら読める本です。原価管理や経理の方にもお勧めします。
こちら(アマゾン)から購入できます。
簡単、低価格の原価計算システム
数人の会社から使える個別原価計算システム「利益まっくす」
「この製品は、本当はいくらでできているだろうか?」
多くの経営者の疑問です。「利益まっくす」は中小企業が簡単に個別原価を計算できるて価格のシステムです。
設備・現場のアワーレートの違いが容易に計算できます。
間接部門や工場の間接費用も適切に分配されます。
クラウド型でインストール不要、1ライセンスで複数のPCで使えます。
利益まっくすは長年製造業をコンサルティングしてきた当社が製造業の収益改善のために開発したシステムです。
ご関心のある方はこちらからお願いします。詳しい資料を無料でお送りします。