見出し画像

未来のために学んでおきたい。「Blockchain (ブロックチェーン) 」の概要5.ビットコイン・ウォレット~ハッシュ関数

ウォレットでアドレスを作成する

アドレス = お金の送付先(銀行口座番号)

アドレスの表記方法
1. 文字列 bvst54kankfhd739kdhvnk2

2. ORコード

アドレスの作られ方
ウォレットの中で作成される。
秘密鍵を作成 → 公開鍵作成 → アドレス作成 
電子署名という技術を利用して、数学的に作られている

ウォレットって何?
スマホやウェブサービスで実現されている「送金」や
「残高確認」ができる道具。

ビットコインのコンセプト
1. 匿名性(利用者のプライバシーが守られる。)
2. 安全。なりすましや改ざんができない。二重支払いができない。
3. 中央機関のいないデジタル通貨

デジタル通貨のissue
1.なりすまし
なりすました人が、Aさんのお金をBさんに、無断で送金する。
2.かいざん
一度データとして記録された送金記録をかいざんすること。
このissueを解決するために用意られているのが。

電子署名
AさんがBさんに1bitcoin支払った場合。
・1bitcoinはAさんのものである。
・取引データを改ざんされていない。
この二つを証明する技術

電子署名を支える技術
公開鍵暗号 - Aさんだけがお金を使える(なりしますし防止)
ハッシュ関数 - 取引データが改ざんされていない
この二つで電子署名はなりたっている。

暗号ってなに?
AさんがBさんにメッセージを送る際に、Aさんとしては、もちろん第三者にメッセージはみられなたくない。第三者に内容がみられないようにすることを暗号という。

昔の暗号方式
AさんとBさんの間で、暗号文のルールを決めていた。送る場合は暗号化し、受け取った際に暗号のルールにのっとって解読する。
この方式を以前は使用していたが、暗号のルールが漏れてしまうと第三者にみられるかのうせいがある。

現代の暗号方式
数学の理論として暗号技術を使用。
暗号のルールは公開されていて、秘密にしているのは暗号に用いる「鍵」。
いくつか暗号方式があり、その中の公開鍵暗号が主要な暗号方式に。

公開鍵暗号ってなに?
・秘密鍵と公開鍵を使用して暗号化する方式です。
公開鍵は一般的に公開しても安全な鍵で、秘密鍵は作成者だけが持つ鍵。
公開鍵の具体的なイメージは南京錠です。ここに南京錠とそれを開けられる鍵のセットがあります。南京錠は誰でも鍵を閉めることができる。その鍵を開けるには鍵が必要です。この南京錠と織り交ぜて秘密鍵と公開鍵の説明をします。
Aさんが南京錠をたくさんと開けれる鍵を一つだけ持っている。Aさんは「自分に読んで欲しい秘密のメッセージがあるなら、この誰でも閉めれる南京錠を使ってメッセージを送ってほしいと。」「そして、その僕専用の南京錠は欲しければ誰にでも渡すね」とAさんは南京錠をばらまいている。
そんな時、BさんはAさんに、デートの約束の場所と時間を秘密のメッセージで送りたいとかんがえています。7時に渋谷ハチ公前で集合の連絡を、Aさんが配っていた南京錠でロックをかけ、Bさんにおくります。その際に第三者は、その南京錠で鍵の閉められたメッセージはみることができない。
なぜなら、Bさんだけがこの南京錠の開けられる鍵を持っているから。
これが、公開鍵と秘密の鍵の例えです。
南京錠=公開鍵、南京錠の鍵=秘密の鍵、になります。
暗号化される前の文章を平文と呼び、暗号化された文章を暗号文と言います。秘密鍵を使用して暗号を解除することを復号化と呼びます。

公開鍵暗号の特徴
秘密鍵を持った人しか鍵は開けられない。つまり特定の人しか操作ができない仕組みを作るのに公開鍵暗号は向いている。BCでは、通貨の役割と同じで、Aさんにコインを送ると、それをAさんのみコインを使用する事ができる。この仕組みを機能させるために公開鍵暗号は使われている。
お金に例えると。
AさんがBさんにお金を送る時に、Bさんお公開鍵を使用し、Bさんに送金。Bさんは自分の秘密を使い復号しお金を受け取る。お金を使えるのはBさんの秘密鍵を持っている人だけになります。

ハッシュ関数とは?
ある文字を規則性のない関数に変更することをハッシュ関数という。
例えばこれ、「よっ!」→ cda2e2
ハッシュ関数特徴1. 同じ値を入れれば同じ値が得られる。おはようのハッシュ関数は常に一定の関数が返ってくる。
ハッシュ関数特徴2. 異なる値を入れれば、全く規則性のない異なる、予想できない関数が返ってくる。
ハッシュ関数特徴3. 同じハッシュ関数の場合、長さの異なる値を入れても一定の桁数になる。

 ハッシュ関数は何に使う?
同じインプットであれば同じ値が返ってきて、違うインプットであれば違う値が返ってくる。この特徴を利用して、データの改ざんのチェックに使用する。 同じハッシュ関数が返ってこれば、改ざんされていないと判断でき、逆は改ざんされているとなる。
例. AさんがBさんに、1ビットコイン支払いをした。しかしCさんは不正を働き、AさんはCさんに支払いをしたことにデータを改ざんした。その取引データを、ハッシュ関数のかける。すると、AがBに支払った時のハッシュ関数とAがCに支払った時のハッシュ関数が同じ値にならない。つまり取引データが改ざんされたことになる。このように、ハッシュ関数をもちいて改ざんのチェックをしている。


この記事が気に入ったらサポートをしてみませんか?