図解:ブロックチェーンとは何か
ブロックチェーン
とりあえず,理解したものを吐き出してみた
興味ない人でもある程度わかるように書いたつもりです.厳密さは欠いているけど
ブロックチェーンとは何か
- ブロックと呼ばれる複数の取引のデータのまとまり,を時系列に沿って鎖・チェーンのように一列に繋いだデータベース.このデータベースはネットワークのコンピュータ間で共有される.ブロックを鎖状に繋げていくのに,暗号学や数学が用いられる.
主に,bitcoinのブロックチェーンの話
ブロックチェーンの前段階として,ハッシュチェーンというものを説明する.
各々のブッロクはハッシュ関数を用いて得られるブッロクハッシュ(ハッシュ)と言われる,256ビットのランダムそうな値をもつ.つまり,少しでも,ブロックのデータを改竄するとハッシュは全く異なってしまうし,ハッシュの重複もない.また,出力はランダムだから,入力からハッシュを予測することは困難という特性をハッシュ関数は持つ.
ブロックハッシュの入力には,一つ前のブロックのハッシュと,このブロックに含まれたデータを用いる.
時系列に沿ってブロックをブロック1,2,3,,,nとそのハッシをh1,h2...h nとナンバリングした際,ブッロク1のハッシュh1(固有の値)をブッロク2のハッシュh2を得る際の入力に用いる.さらに,ブロック2のハッシュh2はブッロク3のハッシュh3を得る際の入力に使われる...というようにh4はh3のハッシュを,h5はh4を.h6はh5..h nはh n-1のハッシュを入力に用いる.だから,今のブロック(データ)が存在は,以前のブロック(データ)のハッシュの存在に依存する.これにより,改竄がされたことが容易にわかる.例えば,今,ブロックn−3を改竄する=h n-3のハッシュを変える,ことはh2を変え,とn-2のハッシュをを入力として用いるブロックn−1のハッシュh n-3,さらに,それを入力として用いるnのハッシュh nを変えることを意味する.そのため改竄が容易に検出されうる.
問題点は,非中央主権的なデータベースであるため,不正なデータが含まれていないことをみんなが合意できかつ,みんなで同じ1つのブロックチェーンを共有する必要がある.
以上がハッシュチェーンの概要.
ブロックチェーンではさらに,上記の問題を克服するためのシステムを用いる.
proof of workと言われるルールがあるからだ.(proof of work 以外にもいくつかある)
ブロックチェーンのデータを共有しているコンピュータは新しいブロックがネットワークで生まれた際,以前のブロック(データ)に含まれているデータを参照して,新しいブロック(データ)が有効か,不正がないかどうかを確かめるためだ(電子署名という暗号を利用した技術で確認できる).
この過程の際,コンピュータはブロックのハッシュがtargetと言われる値よりも小さくなるように,総当たり的にある変数(nonceというハッシュ関数への3つ目の入力)を変化させて,この条件を満たすnonceを見つけるのを競う.あるコンピュータが最初にnonceを見つかったら,他のコンピュータは答え合わせをして,提示された回答が正しいと確かめられたら,最初にnonceを見つけたコンピュータには報酬が与えられる.(ちなみに,この作業過程をマイニングという)
こうすることで,悪さをする動機を無くし,またネットワーク内で有効なブロックであることをみんなが自分で承認・合意できる.
また,あるブロックのデータを改竄をしようとした場合,そのブロックの後ろに続く全てのブロックのハッシュを計算し直す必要がある,が、時間が経つほどそのブロックの後ろには新たなブロックが増えるし,悪意のないコンピューが多数をしめる限り,改竄するのが難しくなる.
*答え合わせのやり方は,実際に答えとして提出されたnonceを入力として用いてみて,結果がtargetより小さければ良いから,答えを探す時に比べて一回の計算ですぐわかる.
何がすごいのか
BFTを持つ.
不特定の悪意のある参加者がいても,本来の合意に達せられる.
トラストレス
第三者機関に頼る必要はない.データが有効かどうかをみんなが確かめられる
bitcoinは初めてブロックチェーンを利用した
bitcoin≠ブロックチェーン
bitcoinは,取引のデータ,つまり誰がいくら誰に送金したか を記録して,誰がいくら所持しているか(銀行でいう所の預金残高)を保管するためのデータベースとしてブロックチェーンを用いた電子的な取引システム.
日銀や財務省の発行するいわゆる法定貨幣とどう違うのか?
法定貨幣は貨幣の供給がその時々の機関の采配に委ねられている.bitcoinはあらかじめ発行量などがプロトコル(決め事)として決められている
振り込む時は常に銀行を仲介,取引が不正なく行われているかどうかを確かめる第三者として仲介.bitcoinは取引のデータをネットワークに流せば,他のコンピュータが不正してないか確かめてくれる.
銀行のみが取引記録を持っている.bitcoinは取引記録がすべてブロックチェーンで共有される.みんなが取引のデータを持っているから,みんなが不正を監視できる.
とか..
ブロックチェーンの利用価値
bitcoinではブロックチェーンに記録するデータに送金のデータを記録しているが,記録するデータはこの限りではない