コンタミブログ

なるようにしかならない人生

ハッシュ値について!①

マイニングでは取引で二重支払などの不正が行われていないかチェックします。
不正がないと認められ、承認されると取引が完了します。
 
マイニングでは「ハッシュ関数」を理解する必要があります。
「数学か〜・・」と抵抗がある人もいるかと思いますが
僕なりに簡単にまとめてみます。
 
BTCではSHA-256(Secure Hash Function-256)という名前のハッシュ関数を使っています。
 
このハッシュ関数の特徴は、どんな文字数を入力しても、ゼロイチが256桁で出力されます。
 
例えば
 
「Tokyo」 という5文字をハッシュ関数に入力すると、0110 0111 0011…(256桁)で出力されます。
 
「Capital of Japan is Tokyo」という一文を入力しても、1100 0100 1001 1011…(256桁)で主力されます。
 
 
 
 
このように何を入力しても256桁の0と1で出力されるのが、SHA-256の特徴の1つです。
l
 
 
ただ、256桁は長いので4桁ごとに16進数に変換します。
16進数は0〜9の数字とA〜Fのアルファベットで表記されるものです。
 
 
0110 0111 0011…(256桁)を16進数に変換すると
3A456BC14C98DEB…といったよく分からない文字列ができます。
この数字とアルファベットの文字列を「ハッシュ値」といいます。
 
 
 
 
入力がまったく同じであれば同じハッシュ値が出力されますが、
入力がたった1文字でも変わればまったく違うハッシュ値になります。
 
 
また、ハッシュ関数で大事なことは「ハッシュ値」からは入力した文字を特定することができないことです。
 
なぜ大事かは次の記事で。