「 マークル木 とか言われても 分からんよな。
時給の高い求人、技術ドキュメントを自分で読んで解決できる人募集、とかだし……」
「 情報科学、情報処理の畑にいるやつの マークル木分からん発言 わらう」
「 👆 ファイル4つで1セットのものを 配りたいやつがいるんだぜ。
1つが欠けてるとか、全部 改ざん されてるとかあったら 受け取る人に ちゃんと行き渡らないだろ」
「 👆 そこで、ファイル1つ1つから、なんらかの計算をして ハッシュ という数 を出しておくんだぜ。
この計算は 誰がやっても 同じ ハッシュ が出てくるものとするぜ。
ハッシュは 別のファイルと被る(衝突する)こともあるが、 宝くじに当たるような感じで 確率的に ほぼ起こらないものとしようぜ」
「 ハッシュを 教えてもらえば、ファイルが 改ざん されているかどうか 確認できるな」
「 👆 そのハッシュをいくつかまとめて、またハッシュを作るんだぜ」
「 👆 そのハッシュをいくつかまとめて、最終的には 1つの ハッシュ を作るんだぜ。
これを トップハッシュ とか、 マスターハッシュ とか、 ルートハッシュ と呼ぶそうだぜ」
「 で、 この トップハッシュ 1つを、 受け取る人に教えておけばいいわけだぜ。
全部のファイルのハッシュを教えなくていい」
「 👆 そして今 受け取った人のパソコンには ファイル2 と、 教えられたトップハッシュ の2つがあるとしよう。
この ファイル2 が本当に 改ざん されていないかは どうやって 確認するんだぜ?」
「 ファイル2 のことは忘れて寝て、明日起きたら 昨日のことは思い出さずに 新しい人生を生きていこうぜ」
「 👆 ハッシュB は 誰でも 計算で出せるんでしょ。
ファイルを配ったやつが寝ていたら 電話で起こして ファイル2 のハッシュを聞き出すことかしらねぇ?」
「 👆 ファイル3、4 だけを拾ったやつは、
ファイル1個1個のハッシュを聞かなくても ハッシュCD を聞けば 改ざん されてないことが分かるので
便利だな」
「 👆 じゃあ今、 ハッシュB と ハッシュCD は 知っているわけだぜ」
「 でも ハッシュB と ハッシュCD から ハッシュBCD を作っても、
ファイルを配ったやつから 教えてもらった トップハッシュ と同じにならないぜ。
何か ファイルが欠けてんのかだぜ?」
「 ファイルが欠けてるとか、要らないファイルが混ざってるとか、
このツリー構造を知らない わたしたち には 知る由もないのでは?」
「 どこかに インデックス的な、 ツリーの形を教えてくれる情報がないと そもそも マークル木 できないよな。
Wikipedia 舐めてんのかな?」
「 👆 ファイルを丸ごと一式受け取った方は、あとは ファイル1のハッシュ を計算で求めておけば、
トップハッシュ と比較するために必要なものは 揃うわけだぜ」
「 👆 だから 要点としては
ある程度の かたまり のハッシュを持っておくというのが アイデア で、
ファイル1個1個のハッシュを見直す必要がなくて 計算量が減っるということを 理由に、
改ざん があるかどうかのチェックが高速になる というメリットがある、
ということかだぜ?」
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!