ビットコインってなんですか?
ビットコインってなんですか?
先日東京へ引っ越しに来ました。不動産の職員さんと色んな話しをする途中私の関心分野のことも出ました。他の地域に引っ越しするのも容易ではないはずのにわざわざ日本まで来た理由が気になったんでしょ。一言二言交わしたあいだ自然にビットコインの話がでましたけれどITを全然知らない職員さんがビットコインについて知っていたので本当にびっくりしました
「やはり地上波でビットコイン取引所の広告する国だなきっとビットコインに興味があって調べてみたのではないだろう」って思いました。
もっとビットコインについて話してみるとやはりブロックチェーンのことは分かってない人でした。実際に投資をしているとわ見えないし「最近ビットコインってやつが流行しているらしいな?」程度の人にブロックチェーンの概念まで知っているのを望むのは無理だったんでしょ。でもブロックチェーンはビットコインそして暗号通貨に関心がある人達には必ず知るべき内容です。
だから今回のポストではブロックチェーンの開始とすることができるビットコインの概念から始めてみます。もちろんこのように考える人もあるかもしれません「私はコイントレードでお金さえ稼げばいいなのになぜこれを読む?」って、その通りです。結局、投資とは金を稼ぐためにするやつです。しかし暗号通貨への投資は技術的な価値への投資であり、現在ではコインの有望性を調べる人だけが長期的な投資を行うことができます。
コインに対する理解がない投資は直ぐに損失につながります。後でもっと詳しく説明しますがしっかりとした技術がなく、ただマーケティングを介してのみの価格を上げ、利益を得ていく詐欺(Scam)コインもあるからです。このようなコインを見分けする能力を備えるのが難しいなら暗号通貨への投資は控えるのをお勧めします。
暗号通貨投資への第一歩でありブロックチェーンの最初のポストとしては前置きが長かったですが、でもいつもそして常に嘱することがあります市場の理解なしには得ることができるお金がないことを肝に銘じて下さい。
銀行を信頼するしかない
私が Blockchain Tokyoの共同著者であるMikuVodkaさんにお金を送るとしましょう。簡単にモバイルバンキングアプリで金額を定めパスワードを入力し送金ボタンを押すだけで私が持っているお金の一部をMikuVodkaさんに送るのができます。もうすぐMikuVodkaさんからお金を貰ったとメールが来るだろうし、私はお金がちゃんと送られたことを確認します。打ち見ると私から直接 @MikuVodkaさんにお金を送ったと見えますが、厳密に言うと銀行という「第3者による中継取引」です。このプロセスを一つずつ見てみましょう。
銀行サーバの中には私が持っている金額が記録されているし私が送金を望むと口座からその分差し引いたあと送金された口座の金額を上げます。もし他の銀行に送るとしてもその銀行サーバに「BELEWさんの口座からお金を差し引いたのでそちらの口座の金額を上げて下さい」とメッセージを送れば完了になります。
なぜこのような事ができるでしょう?それは銀行が信頼できる機関であるためです。銀行が口座にあるお金を操作するはずないと「信頼」しているから人々は安心して利用するのです。ネットワークを介したお金の移動は実体が存在することがないので銀行のように信頼できる機関を介してのみ可能であったんです。そして銀行はこの信頼を保証する対価として顧客から「手数料」を受けます。
銀行はこの信頼を守るため日々努力します。もしもサーバがハッキングされて顧客のお金が消えるとか、送信されるべき金額が変更されたり、ハッカーの口座にお金が送られると、銀行の信頼は一日だけで消えるはずです。銀行は信頼を基盤にしたサービスなのでこの信頼関係を守るに失敗したら政府と市民は銀行としての地位権を容赦なく剝奪します。でも銀行がいくら努力しても銀行サーバはそのデータの完全性を保証することはできません。
たとえばサーバ上のデータを操作することができるとすると銀行のお金は勝手にすることができるのです。実際に「Carbanak」というハッキンググループが約30個の国、100個以上の金融会社で最大10億ドル(約1100億円)を盗んだと2015年カスパスキ―ラボ社(Kaspersky Lab)が発表したことがあります。彼らは銀行員に悪性コードを送った後、銀行のメインサーバに侵入して自分たちの口座にお金を直接転送したりATM機器にお金が出てくるようにするなどさまざまな方法でお金を盗びました。
さらに2016年にも「Carbanak」と推測されるハッキンググループが「Odinaff」という悪性コードを使用してSWIFT(スイフト、国際銀行間通信協会)を使用する機関を攻撃して虚偽の取引記録を作成、お金を盗んだことを確認しました。今までどんな銀行が「Carbanak」の攻撃を受け取ったかまでは全部公開されなかったが、すでにセキュリティの脆弱性を利用して不当な方法でお金を奪われたというニュースはよく見たはずです。
これこそがオンライン上で起こる信頼を基盤にしたサービス取引の問題点と言います。信頼できる機関すら完全無欠ものではないのでそこから発生する取引も完全無欠であると見ることができないのでしょう。だから三者の信用保証が不必要ながら取引過程を暗号化し、完全無欠陥を保証する電子決済システムの概念が生まれました。はい!それがビットコインなのです。
ブロックチェーン、ビットコインの始まり
「ビットコインを開発したサトシ・ナカモトはだれなのか」については他のポストですることにしてこのポストではビットコインがどうやって開発されたかを集中してみましょう。ビットコインの開発者であるサトシ・ナカモトは今まで当たり前にしてきた「信頼できる第三者による取引構造」を変えるためにデジタル署名を継続していく構造を作りました。
第三者による取引構造では全ての過程が第三者の判断によって決定されるがサトシ・ナカモトが創案した概念は取引構造に参加する全ての人が判断の主体となりビットコインの各所有者がコインを送金する時前の人の取引内訳と他の所有者の記録に電子署名をしてこの情報を送金データへ含めます。このような過程で前の人の取引を承認する同時に他の所有者の取引基盤となってくれます。つまりビットコインの核心は誰もが取引構造に参加して信頼を確保することです。
だが無数の人々が取引に参加すればするほど個人が検証しなければならない取引記録が徐々に増える問題が発生します。帳簿の記録が徐々に増えればいちいち対照しながら進行するには過程が複雑になるし、だからといって帳簿の特定部分だけを対照すれば誰かが偽造するかもしれません。そのためにビットコインは帳簿を早めに対照しながらも同時に帳簿を偽造することができないようにハッシュ(Hash)プロセスを使用します。
「ハッシュ(Hash)」とは暗号化アルゴリズムでデータ偽造・変造するかどうかを検証することができる暗号化技術です。これまでの取引内容が含まれた全ての帳簿内容を暗号化して何の意味も持たない一つの文句に変えます。こうやって作られた暗号化文句をハッシュと呼ぶのです。普通のパソコンではハッシュのプロセスを分析して暗号化以前の内容を解析するのはほぼ不可能です。もし誰かが帳簿の偽造を試みても他の人が署名したハッシュ値と異なる結果が出るので偽造を防ぐことができます。また取引が重なるほどだんだん重くなる帳簿を照合する代わりに軽いハッシュ値を照合することによって速やかな処理速度を維持します。
しかしこの構造だけでは誰かが持っていないお金を使用したかどうかを確認する方法がありません。既存のシステムでは信頼される中央統制機関が残高を検証した後支払いできるかをどうかを二重に検査しましたが、第三者の信頼による作動を拒否したビットコインはこのようなシステムを使用することができません。
だからビットコインは「全ての取引を記録し公開」することで中央機関を通さず二重の支払可否を確認できるようにしました。たとえば私が1BTCを持っていると皆に知らせた状態で誰かに1BTCを送ったとまた皆に知らせるのです。そうすると誰もが私がビットコインを持っていないのを知っているので他の人にビットコインを送っても「お前今なにも持っていないじゃん」という返事が戻るのです。
帳簿を整理して公開するためにビットコインはデータを時間順に集めた後その時間にデータがちゃんと存在したことを証明できるタイムスタンプと取引記録、ハッシュ値を纏めて一つのブロック形を作ります。
ここで上で言ったデジタル署名の構造を含めて考えてみると相互に繋がってるハッシュ値はお互いに影響を与えるためすでに作られたハッシュに含まれているブロックは内容が変わることができません。ただこれも完全にとは言えませんが過去のブロックを変えるには先に作られたブロックまで全部新しく作れる必要があるためほぼ不可能と言えるのです。
だったらこのブロックは誰が作るのでしょ?当然誰にでも作るのができるようになっています。しかしブロックのハッシュ値だけを計算することはあまりにも急速にブロックが作られてしまいます。それにブロックを作るのが非常に簡単であればブロックチェーンの取引記録を操作することも簡単になります。だからブロックを作るためにはProof of work(プルーフオブワーク、作業証明)プロセスを介してブロックの生成時間と難易度を調節します。
Proof of workの登場
ブロックの生成には誰もが参加することができる必要があるため、参加者が正当な意図を持って参加するしかない構造を作る必要があります。もっと詳しく言うと参加者が悪意を抱いても多数を占領してない以上ビットコイン網に害を及ぼさない構造を維持する必要があります。
でもデジタルの世界で多数決とは本当に危険な発想です。参加者が一人と特定しないようにする方法がとても多いからです。たとえば複数のアカウントを作ってネット上で他人を詐称したり、一人が大勢の人に偽装して延期することができます。他人に悪質な書き込みを残したり、同意を受けてたい理由だけで多数のアカウントを運用することも多いのに金銭的利益がかかった場合なら何千何万ものの仮想アカウントを生成する人もあるはずです。
だからビットコインは仮想では生成することができない、実質的な資源が消費される形で身分を証明させることにしました。それがCPUの計算力です。CPUの計算力は実質的に資源が消費され、資本の投入が必要となるので攻撃者が望む通り生成することができないです。全世界に広がっているビットコインを占領するために資本を投資するくらいならいっそそのお金で楽に生きるほうがより賢明な選択です。このような証明を介してビットコイン網は健全に維持しようとする多數の人達によって作業が行われています。
ビットコインのブロックを作るためにはSHA-256で生成されたハッシュ値がゼロビット(Zero Bits)で始まる値を探す必要があります。SHA-256暗号化技術は入れる値が少しだけ変わっても異なる結果が出ますので複数の0から始まる値を探すためには色んなデータを入れて直接計算してみるしかないです。
ポストを書いているこの時点で先ほど生成された503497ブロックのハッシュ値を見ると「00000000000000000075757adab3cf52f9cbbff7590919878891fd64036c643d」となっています。このように前の部分が複数の0から始まるハッシュ値を探すのが採掘です。現在ブロックの生成に必要なハッシュ値を探すためには毎秒1382頃3824兆1280億回(13,823,824,128 GH/ s)の計算をする必要があります。ちなみに現在世界一位スーパーコンピュータである中国の神威・太湖之光(しんい・たいこのひかり、Sunway TaihuLight)が毎秒9頃3200兆回(93,000,000GH/ s)演算可能です。
だからビットコイン採掘者たちはビットコイン採掘機とも呼ばれるSHA-256演算に特化したASIC(application specific integrated circuit、特定用途向け集積回路)を作りました。単純に計算力だけ見ると世界にある全てのスーパーコンピュータを合わせたよりも高い計算力を持っています。また高性能のCPUを装着した多数のPCを購入するものより価格対性能比もはるかに安いです。一般PCが様々な目的のため、スーパーコンピュータが高度なる計算のために使われたのならばASICは採掘のために使用される専門機器と見ることができます。このような膨大な計算を経た後にビットコインのブロックチェーンにブロックを作る権利が生じることです。
こうやってブロックチェーンは誰でも超えられないセキュリティを誇るようになったし、たとえ攻撃者がビットコイン網を攻撃しようとしても計算力の51%以上を掌握することは、経済的、物理的に無理ということを悟っては正当なチェーンで採掘するのがむしろ経済的に利得であることを気づいてしまうのです。
ビットコインの作動
最終的にビットコインがどうやって作動するのかを整理してみましょうか。
1. 新しい取引が生成される。
2. ビットコインネットワークに新たな取引が広がる。
3. 各ノードが新しい取引をブロックへ収集する。
4. ノードが作業証明を成功した時点からブロックをすべてのノードに知らす。
5. ノードは全ての取引が有効と判断されればそのブロックを承認する。
6. ノードはブロックの承認を表現するため、先のハッシュに承認されたブロックのハッシュを使用してチェーンにブロックを連結する。
PS. ノードとはビットコインネットワークに参加している全ての参加者のことです。
ビットコインとブロックチェーン
サトシ・ナカモトのビットコインは銀行という信頼機関なしで価値の転送を可能にして既存のシステムよりもっと安全な構造となりました。各国の政府によって統制された経済が今は市場によって統制されるようになりその価値を認められたビットコインは1個の価値が1万ドル(約110万円)を超えました。
それにビットコインが残したのは新しい経済と市場だけではありません。ブロックチェーンという優れた技術も残してくれました。誰も勝手に修正できないというセキュリティ性と特定の主体がなくても作ることができるという長所に新しい産業と経済革命をもたらすと期待されています。
今も私たちが知らない間に新しい概念を導入したブロックチェーンの技術が登場しています。一日一日変わる現状況に遅れないためにも私たちはより素早く対応する必要があります。
これで最初のテーマであった「ビットコイン」について調べてみました。次のポストではもっと深く知る時間を持つようにしましょう。
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://blockchain-tokyo.org/blockchain/248/