Devcon 5 - "Chain Relay Under Attack CTF" Writeup

Devcon 5 // Oct 8 - 11, 2019 の3日目に開催されたworkshop「Nuts and Bolts of Cross-Chain Communication」でのCTFが新鮮で面白かったです。(DEFCONではない) 問題はシンプルで、「Ethereumのスマートコントラクトが与えられる。このコントラクトはBitcoinのブロックチェーンを構築するが、不正なブロックが送られるとブロックチェーンが壊れる。直してね」というもの。なんでこういう問題かっていうのは、彼らのクロスチェーンコミュニケーションの論文を参照。 Flagを取る形式ではなく、実際に攻撃を捌ければ点数が貰えるフルフィードバック形式。 問題 問題リポジトリ: crossclaim/devcon5-relay-attack: Game repo for DEVCON 5 Cross-Chain Communication Workshop attackTestCases.test.min.jsにサンプルケースが転がってます。 testで結果が変わることがあって大変でした。 TESTCASE 1: Do we allow users to reset the relay with a new genesis block at will?? サンプルケース it("TESTCASE 1: set duplicate initial parent - should fail", async () => { l(), await c.reverts(relay.setInitialParent(genesis.header, genesis.height)) }), Genesis block が改ざんされないようにする問題。 [Read More]