名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。

【サポーターズCoLab勉強会】BitcoinでCTFに参加しました

イベントページ

supporterzcolab.com

講師情報

[https://twitter.com/yyu:embed:cite]

内容とか

CTFの話

jeopardy 形式(ジョパディ)のCTFにビットコインのロジックを応用できないかという話。

まずCTF(Capture The Flag)はセキュリティに関するコンテストである。ここ数年、インターネットの発達により、ハッキング等の攻撃が与えるダメージが非常に大きくなったため、セキュリティに関する能力が高いホワイトハッカーの育成する土壌となるCTFは注目を浴びている。(ように私視点からはそう見える)

CTFでは、脆弱性を攻撃するなどしてフラッグワードを得る、そしてポイントを得る。バイナリの解析であることもあれば、上手いタイミングでデータを入力していくようなものもある。(らしいらしい、あまり良く知らない)

近年では、Google CTF, Codegate CTF Finals と言った大きめの大会が開かれており、それなりの賞金も支払われている。

しかし賞金が本当に支払われているかどうか、という点や物理的に移動し受け取るのが難しいという問題点も存在している。これはエンジニア的にはソフトで解決したい問題だよね、とか。

なのでこの勉強会ではビットコインのロジックを用いて賞金を仮想通貨でやりとりし、即時性があるかつセキュアなやり取りが出来るのではないか、という草案みたいな話を聞いた。

ビットコインのロジック

ビットコイントランザクション、ブロック、ブロックチェーンの要素を理解する必要がある。トランザクションは送金関係のあれらしく、トランザクションを集めてブロック、ブロックを複数集めてブロックチェーンみたいな感じ。ブロックチェーンは長いものが優先され、安全性の保証として前のデータを元に長くしていく。(ハッシュ値を使う所あたりも含めて、すげえGitっぽいな)

ちなみにビットコインは、スクリプトトランザクションにある2つのscriptSig, scriptPubKeyの非チューリング言語)が存在していて、上記の前のデータを使ってとか安全性を保証するための処理とかを記載できる。(なんかアセンブリっぽかった)

CTFとビットコインを組み合わせる

理解が追いつかない部分が多かったので、省略。(というより一番面白いパートだったので、これは勉強会来て聞いたほうが良いと思う)

質問したこととか

CTF始めるには、勉強するにはという話を聞いてきたが、やっぱり ksnctf をやるのが一番いいらしい、書籍も2冊ほど出ているんだとか。

とは言え、重要度が高いのにもかかわらず初心者の参入ハードルは以前高いように思える。そこを解決するための勉強会ないし、もくもく会の需要は高いのではないだろうか。

あとビットコインとイーサリウムの思想の違いについても聞いてきた。送金がしたいか、それ以上のことがしたいか。実現できるかどうかと、実現コストが高いか低いかはまた別のベクトル。私はこの辺の話のほうが気になる。

他参加者は仮想通貨の質問をしていたが、正直私はロジックの話のほうがすきだったのであんまり覚えていない。

もう一回感想

ビットコインとCTFの両方について聞ける美味しい勉強会だったと思う。セキュリティ、暗号等は私の中では理論的にも具象的にも追いつけていないので興味深かった。

あとやっぱ早くCTFは手を出さないとダメだなあという気持ち。落ち着いてくるはずの6月とかにちょっと頑張ろうかな。