どうも!金時です。
ブロックチェーンウィークも終わり、皆さんちょっとクールダウンしたような印象を受けます。そして、私もちょっと熱量が落ちた感じです。まあ、他に夢中になれるものもないし淡々とやっていこうと思っています。変わらず熱量をもって突き進んでいる人はステキですね。
私もそのうちまた情熱が戻ってくると思いますので、今日もやっていこうと思います。
ビットコインの基礎を学ぶ③
ビットコインの基礎を学ぶも3回目になりました。が、突然途中から難しくなりました。
ウェブサイトのように世界中に分散されたデジタル台帳があると想定して、それを個人に依存せずトラスト(信頼)するには一番計算量の多い台帳を信頼するというルールになっていると前回では学びました。計算量が多いというのは、全ての記録を書き込んでいる可能性が高い、電子署名には暗号学的な計算が必要だからそうなる、そして、計算量が多いということは悪意を持った人が改ざんなどしようとしてもそれを打ち破るのが理論上不可能な計算量になる、などといった利点があるといったところだと理解しています。
例えば、ある10桁の数値を台帳に記録してSHA256の関数を通して256ビットの最初の桁から[0]が30個続く確率は約10億分の1です。つまりハッシュから逆算して元の10桁の数値を特定するには当てずっぽうで10億回程度、複雑な計算をしなくてはいけないことになります。そして、数値が特定できればその数値からハッシュが正しいことはすぐに特定できる。
誰かがした大きな計算の量を同じことをせずに確認できる。これを[仕事の証明]=proof of work(PoW)といいます。重要なことは、このPoWは取引のリストと直接結びついています。取引が少しでも変わるとまたハッシュ値が変わり、また10億回程度計算をしなくてはいけません。
ここで台帳の話に戻るとビットコインのキモは一番計算量の多い台帳を信用するということです。
どうするかというと台帳をブロックにわけます。
ブロックは「取引のリスト」+「Proof of Work」からできています。SHA256を通してこうなります。
SHA256を通して60個の[0]から始まるハッシュ関数とします。取引はデジタル署名があって初めて成立するようにブロックはPoWがあって初めて有効となります。そして順序を付けるためにブロックの初めに前のハッシュ(Prev hash)を含めることにします。
ブロックの中身が変わったり順序が入れ替わると、Prev hashがそれぞれ変わります。これはまた計算をし直さなきゃいけないことを意味します。順序という概念を入れることでブロックはつながった形を形成、これをブロックチェーンといいます。
ここで新しいルール(protocol)を追加します。ブロックを作る、ブロッククリエイター(block creator)という概念です。
ブロッククリエイターは取引の放送を聞いてブロックにしてハッシュが60個のゼロで始まるような数を探す計算をして見つけたブロックを放送するということをします。これをやってくれる報酬としてブロックを作るときに特別な取引を加えていいことにします。例えば「無から10LD受け取る」のような感じです。
まとめ
いや~わからんです!ハッシュ値、SHA256、難しい。コンセンサスアルゴリズムが計算量の多いPoWを採用していて、それを打ち破るには膨大な計算量が必要で事実上セキュリティが強固なものになっているというのはかろうじて理解しました。次回はさらに掘り下げていきたいと思います。今回も参考にした動画は以下になります。では、また!!
コメント