Block Chain/BitCoin に関して勉強したので、その内容を簡単にわかりやすくまとめようと思います。 Block Chain に関するMITの授業の動画をみて勉強したので、その内容に基づいて解説していきます。動画はこちら
以下の4点でまとめて解説していきます。
Block Chainで使われている技術
Block Chainで使われている技術
おもに以下の三つの技術について解説していきます。
1. ハッシュ関数を使った暗号化
2. Proof of Work
3. 公開鍵暗号とデジタル署名
ハッシュ関数を使った暗号化
ハッシュ関数は、任意の長さを持つどんな文字列でも、特定の長さのハッシュ値に変換するものである。
例えば、SHA-256 というハッシュ関数を使うと、"bitcoin" という文字列は
17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76
という、32 byteの長さを持つ文字列に置換する事ができる。
ハッシュ関数を使う主なメリットとして、
どんな文字列も、特定の長さに変換する事ができる。
入力する文字列が同じであれば、ハッシュ値は常に同じ値になる。
文字列からハッシュ値への計算は簡単にできるが、その逆のハッシュ値から元の文字列を推測するのはほぼ不可能(不可能ではないが、非常に難しい)
一文字を変えただけで、全く異なるハッシュ値になる。推測できない。
Block Chainでは各Block ごとにハッシュ値を持っていて、そのハッシュ値を次のブロックに受け渡していき、チェーンを構成している。
Proof of Work
非中央集権のbitcoin でコンセンサスを取っていくための方法として、Proof of Workという方法がある。
概念は、正しい物を見つけるのが難しいが、それが正しいかどうかを検証する作業は比較的容易にできる。過半数以上の人によって正しい事検証されて、コンセンサスを取っていく仕組み。
例えば、金を見つけるのは、鉱山を削って、そこから金を採取したりして、非常に大変だが、それが金かどうかの検証は比較的容易にできる。
Bitcoinでの採掘とは、ブロックのハッシュ値がある値より小さくなるような、Nonce(ランダムな値)を探す事である。
2020/09/15 の時点では、0が20個連続するハッシュ値を見つけなければならない。
10分間で一つのハッシュ値が見つかるように難易度が2週間に一回、調整されている。
今のHashレートは、124.12 EH(エクサハッシュ)/sになっている。
これは、1秒間に124,000,000,000,000,000,000個のハッシュ値を計算できる能力があるという事である。
このハッシュ値を見つけることをマイニングと呼び、最初にハッシュ値を見つけた人には採掘報酬が支払われる。この採掘報酬のことをCoinBaseといい、報酬額は、1 ブロック毎に 50 BTC から始り、210,000 ブロック毎に半減し、 2020/09/15の時点では、12.5 BTC になっている。10分で1ブロックになるように難易度が調整されているので、2140年頃には採掘報酬は0になるはずである。
公開鍵暗号とデジタル署名
BitCoinにも銀行口座のように口座を作る必要があり、口座番号はBit Coinアドレスと呼ばれている。
Bit Coinアドレスの作成には、公開鍵暗号が使われている。
公開鍵暗号とは、秘密鍵とそれとペアになる公開鍵を使って、第三者にメッセージを盗み読まれたりしないようしている。
Bit Coinアドレスは、以下のように、公開鍵暗号を使って、秘密鍵と公開鍵のペアを生成して、公開鍵に対してハッシュを複数回計算する事で、Bit Coin アドレスに変換する。
通常の銀行であれば、口座番号や残高などは公開されていないが、Bit Coinでは以下のサイトでわかるように、Bit Coinアドレスと残高、取引履歴などが全て公開されている。
Bit Coinアドレスは秘密鍵から作られているので、何個でも作成することも可能である。
Σχόλια