「先生,教えてください」
「はいなんでしょう」
国民の皆様
「先生がブログで取り上げられていた本を読んだんですよ」
「え,買うたん?」
「はい」
「どうでしたか?」
「あまり好きになれなかった,ですね…」
「ふむ.どの辺が?」
「人を頼りすぎているように,思えたんです」
「なるほど,頼りすぎか…」
「僕らって,技術を身につけて,社会に出ないといけないじゃないですか」
「教員を巻き込んでもらうと困るが」
「あ,いえ,『僕ら』は学生のことです.学科の」
「はいはい」
「提案だけして,その実現には皆様のご理解ご協力が必要,というのでは通じないと思うんですよ」
「てことは」
「あ,はい」
「人を頼らず,自分の技術をもとに,しっかりしたものを作るべきだ,と」
「ええそうです」
「まあ一概に否定はでけんが…」
「まずいですか?」
「使う技術というのは,何であっても,先人の知恵と努力があってこそなので,そこへの感謝は,忘れないようにしたいですね」
「作者への感謝,ですね」
「作者だけじゃなくて,その技術を自分が知り使うようになるまでの,様々な経路に対してもね」
「へえ…先生は,そう考えられるんですね」
「政治の世界では,提案したけど実現に至らなかったことは,たくさんあるでしょうね.我々の中で,お蔵入りになってしまったハードウェアやソフトウェア,あるいはノウハウのように」
「そうでした,それで,さっきの本に戻りたいのですが」
「なんでしょう」
「『国民の皆様』という言葉が,けっこう,使われているんですよ」
「ん? 数えたの?」
「いえそこまでは」
「読後感ってやつね.んで?」
「そこで思ったんですが」
「はい」
「著者が提案する政策を実現するのに,国民の皆様の協力が不可欠だというのをアピールしたい,という意図は分かるんですが」
「そうですね」
「それと別に,政策が失敗したときに,国民の皆様の理解が足りなかったため,と,『国民の皆様』へ責任を転嫁できるように,書いているんじゃないかと思ったんです」
「ありゃ,すごい大胆な仮説だなあ.そういうのを支持する,政治に関わる人も,本も,見たことないなあ」
「ありませんか.先生なら,ご存知かなと思ったんですが…」
「ないない.ま,その種の本をたくさん読んで,分析すると,面白いかもね」
「先生ならそうおっしゃると思ってました」
「そうかいな」
「でも1冊だけで疲れました.自分の好きな,プログラミング関係の本に戻ります」
アリバイ
「『アリバイ作り』って言葉,ありますよね?」
「あるねえ.僕自身は,使ったことないし,使い道もないけど」
「先日,友人から電話があって『この日は,お前のところに泊まったことにしてくれ』と言われたんですが」
「それはアリバイ工作,もしくは口裏合わせってやつですね」
「そうです(笑)」
「アリバイが,どしたの?」
「ときどきですね,説明会を開いているっていうのの中で,『アリバイ作りのためにやっている』っていう言い方を聞くんですが…」
「ふむ,違和感があると」
「ええ.もともと,現場不在証明って意味ですよね,アリバイは」
「ああ,その言葉,最近辞書を引いたんだけど,『げんばふざいしょうめい』じゃなくて『げんじょうふざいしょうめい』が正しいらしいね」
「へえ…Wikipediaもですか?」
「うん,Wikipediaも.Wikipediaで知って,それから辞書見たんだけど」
「刑事被告人だとか,容疑者だとかが,犯罪現場以外の場所にいたことを示すって意味で」
「そうですね.アリバイっていう言葉の語源が『他の所に』だったかな」
「だから,説明会のアリバイ作りってのは,実績作りって言うべきじゃないかと」
「うん,その主張でいいんじゃないでしょうか」
コミット
「大学生になって,やたら『コミット』って言葉を目にするようになったんですが…」
「ふむ」
「そんなに大人の世界で使うものなんですか?」
「高校までは,見かけなかった?」
「ええ」
「僕の感覚でも,目につくようになったのは,ここ数年かな」
「そうなんですか」
「ただ,僕自身が初めてコミットって言葉を,なんか変なもんだなあと思いながらも認識したのは,ビットコミットメントってのだけどね」
「何でしょうかそれ」
「セキュリティの技法です.コイントスです.ビットコミットメントって言葉が出回る前は,メンタルポーカーなんて言葉もあったかな」
「Wikipediaを引いてみました…これですか」
コミットメント方式を用いる場合、以下のようにコイン投げを行う。
- Bobはコインの"表"か"裏"を選び、その値をコミットする。コミットメントをAliceに伝える。
- Aliceはコインを投げ、結果をBobに伝える。
- Bobはコミットした値をAliceに伝える。
- Bobの値とAliceの値が一致している場合Bobの勝ちとする。そうでない場合、Aliceの勝ちとする。
(wikipedia:ビットコミットメント,表記を一部変更)
「それそれ」
「このコミットメントって,何なんですか?」
「よくたとえで使うのは,封筒に答えを入れておくことですね.表か裏かに相当する,1ビットの情報を」
「はあ」
「しかし『コミットメントをAliceに伝える』の時点では,1ビットの情報を決めたBob以外の人は,その1ビットが何か,知ることができないようにしておきます.暗号論的にね」
「封筒だったり暗号だったり,混乱するんですが」
「あー,じゃあ暗号の話はなしで」
「助かります」
「んと,次に,Aliceがコイン投げをして,表か裏かの情報を求めます.それから,さっきコミットしていた,1ビットの情報が何だったかを公開して…開封ですね…コイントスの結果と照合する,というものです」
「あとでコインの結果に合わせよう,という不正ができないように,アルゴリズムを決めておくのですね」
「うん.まあ,2者が関わるので,アルゴリズムよりはプロトコルというほうがいいかな.それと,コミットしたのと反対の人が
「Aliceの側ですね」
「そうです.Aliceサイドが不正するかもしれないんで,例えば封筒に入った情報を透かし読みして,ハズレになるものを選んでコイントスしたふりをする,なんてことへの対処も必要になります」
「そのコミットって,何なんですか?」
「預託…かな.情報を預けることなので」
「なるほど.Subversionのコミットも,『預託』と考えるといいんですね」
「そうですね.国語辞書もいいけど,英和辞書や英語辞書でcommitを引いてみるのもいいよ.たしか,約束だとか誓約だとか,公約だとか,責任を持つだとか,肩入れだとか関与だとかいった意味があったかな」
「その中で,先生のお気に入りの意味はありますか?」
「英語辞書に書かれていなかったんだけど,どこかで,コミットというのはもともと,神との契約を意味していたと書いていたのは,面白いなあと思ったよ」