ここではビットコインで利用されているハッシュ関数について理解します
ハッシュ関数の特徴
- ハッシュ関数はざっくりと説明すると何かを入力したら一定のルールに従い何かを返すものです。
- 特徴
- 入力に対する結果が決まっている。かつ、ユニークである。
- 出力が固定長である
- 一方向性である(出力から入力を算定することがほぼ不可能)
ビットコインエクスプローラー
ビットコインエクスプローラーで内容を確認してみます
参照:https://raw.githubusercontent.com/libbitcoin/
BXのインストール(Mac OSX)
GitHubからダウンロードインストールを実行する
ビルドにはかなり時間がかかってしまうので注意すること
$ wget https://raw.githubusercontent.com/libbitcoin/libbitcoin-explorer/version2/install.sh
--2016-09-18 00:32:38-- https://raw.githubusercontent.com/libbitcoin/libbitcoin-explorer/version2/install.sh
Resolving raw.githubusercontent.com... 151.101.100.133
Connecting to raw.githubusercontent.com|151.101.100.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 18805 (18K) [text/plain]
Saving to: ‘install.sh’
install.sh 100%[==================================>] 18.36K 93.7KB/s in 0.2s
2016-09-18 00:32:40 (93.7 KB/s) - ‘install.sh’ saved [18805/18805]
$ chmod +x install.sh
$ ./install.sh
Make jobs: 4
Make for system: Darwin
:
:
PASS: libbitcoin_explorer_test_runner.sh
============================================================================
Testsuite summary for libbitcoin-explorer 2.2.0
============================================================================
# TOTAL: 1
# PASS: 1
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
real 26m2.944s
user 64m47.463s
sys 4m24.932s
bxコマンドを利用した例
ハッシュ関数 SHA-256
$ echo 1234567890 | bx sha256
6c450e037e79b76f231a71a22ff40403f7d9b74b15e014e52fe1156d3666c3e6
$ echo 1234567891 | bx sha256
1ce98679f2f7a245044742f558e89d8e2adf0ac80e2d4a2449f49c614b25e9ed
ハッシュ関数 RIPEMD-160
$ echo 1234567890 | bx ripemd160
06a57a74afecfe1500bb460b227c0a9ee4a3ba5c
$ echo 1234567891 | bx ripemd160
5d66d3b0aa4b0cee4918a367ea479b3210a28c75