小学館IDをお持ちの方はこちらから
ログイン
初めてご利用の方
小学館IDにご登録いただくと限定イベントへの参加や読者プレゼントにお申し込み頂くことができます。また、定期にメールマガジンでお気に入りジャンルの最新情報をお届け致します。
新規登録
人気のタグ
おすすめのサイト
企業ニュース

ブロックチェーンを実現する暗号技術とは?

2019.03.13

データの改ざんを検知できる「ハッシュ関数」

 ハッシュ関数(一方向ハッシュ関数)は、データを入力すると、必ず同じハッシュ値を出力する関数です。Excelの関数や数学の1次関数と異なるのは、出力されたハッシュ値から元のデータを復元するどころか、だいたいのデータを想像することもできないところです。ハッシュ関数に入力する元データが1文字でも異なると、全く違うハッシュ値が出力されます。また、ハッシュ関数はデータの長さに関わらず、一定の長さのハッシュ値を出力します。

 ハッシュ関数を利用すると、元データが少しでも変更されれば、異なるハッシュ値が出てくるため、ハッシュ値があらかじめ与えられていれば、元データが改ざんされていないかどうかがわかります。

 ハッシュ値の桁数は、ハッシュ関数が新しくなるたびに長くなる傾向にありますが、RIPEMD-160はSHA-256よりも短いハッシュ値で、同程度の強度を実現しています。SHA1は2005年にGoogleが脆弱性を発見し、比較的容易に攻撃できることが2017年に判明したため、主なブラウザでは使用を中止しています。ビットコインなど仮想通貨には、RIMEMD-160やSHA-256、あるいはさらに強度が高いSHA3-256などが使われています。

 ハッシュ関数で出力される値は一定の長さなので、異なる値を入力して同じ値が出力されることもあります。これがハッシュの衝突です。さまざまなハッシュ関数が開発されているのは、衝突が発生しにくい=対衝突性の高いハッシュ関数が求められてきたからです。

ウォレットアドレス出力に不可欠な「Base64」と「Base58」

 Base64とBase58は、いずれもコンピューターが扱う2進法のデータ(バイナリデータ)を文字列に変換するための変換方式(エンコード)です。Base64では、データを「0〜9」「A〜Z」「a〜z」「+」「/」の64文字のみを使って表します。Base64はインターネット黎明期からメールのエンコードなどに使われて来ました。

 Base58は、Base64の使う64文字から「0(数字のゼロ)」「I(アルファベットiの大文字)」「O(アルファベットoの大文字)」「l(アルファベットLの小文字)」「+」「/」を除いた58文字で構成されています。これは、人が目で見て入力するとき見間違いを防ぐためです。

 Base58で使用できる文字は、ビットコインでは「123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz」と表記されます。なお、Base58を使用するシステムによっては、使用できる文字の記述順が異なることがあります。

ハッシュ関数とブロックチェーン

 ここでようやく、ブロックチェーンの各ブロックについて解説することができます。

 まず各ブロックに含まれるデータは、「トランザクション」「前のブロックのハッシュ値」「ナンス(number used once)」です。ナンスは、上記のデータ全体のハッシュ値が一定の数値以下となるような値の数値です。

 次にウォレットアドレスの生成方法について、ビットコインを例として解説します。

 まず乱数が生成され、その乱数を元に秘密鍵と公開鍵が生成されます。公開鍵のハッシュ値を求めて、以下の形式に並べます。

 プレフィックスはウォレットアドレスの種別を表しています。ビットコインを所有するためのプレフィックスは「0x00」です。チェックサムは、送られてきたデータが正しいか確認するための数値です。これも公開鍵にハッシュ関数を適用して算出されています。

 最後に全体をBase58エンコードすることで普段目にするウォレットアドレスが出力されます。

 なおウォレットアドレスの生成にはインターネット接続は不要で、オフラインで実行することができます。

取材・文/久我吉史
現役の金融ビジネスパーソンでもある金融ライター。ネット証券やネット銀行などを渡り歩き、ITから法人営業まで何でもこなす。最近は金融ビジネスをコーポレート(法務・会計)目線で作り上げるような毎日を送っている。
作図/稲岡聡平

@DIMEのSNSアカウントをフォローしよう!

DIME最新号

最新号
2024年4月16日(火) 発売

DIME最新号は「名探偵コナン」特集!進化を続ける人気作品の魅力、制作の舞台裏まで徹底取材!

人気のタグ

おすすめのサイト

ページトップへ

ABJマークは、この電子書店・電子書籍配信サービスが、著作権者からコンテンツ使用許諾を得た正規版配信サービスであることを示す登録商標(登録番号 第6091713号)です。詳しくは[ABJマーク]または[電子出版制作・流通協議会]で検索してください。