経営破綻したBitcoin取引所「Mt.Gox」のソースコードらしきものが、インターネット上に流出していることがわかりました(ソースコード、Apparently Mt Gox Has Been Hacked Again…By People Trying To Find Out What Happened、Hacker News、TechCrunch日本版、GIGAZINE)。
この情報は、ロシアのハッカー「nanashi_」さんが、IRCのチャンネル「##mtgox-chat」で公開したもの(IRCのログ)。ソースコードの他にも、20GB分の顧客情報や、Mt.Gox社員の個人情報まで入手しているそうですが、こちらは公開の意思はないと主張しています。Mt.Goxに何が起こったのか調べているうちに、この情報を取得したということですが、もし本物ならば、どうやって入手したのか、経緯が気になりますね。
ソースコードの品質はかなり悪い
残念ながら?、リークされたPHPのソースコードの品質は酷評されています。Hacker Newsによるとソースコードがひどい理由は以下の通り。
- There's a class with the name of the application. (Issues: Scope, SRP)
- There's a class with 1708 lines of code. (Scope)
- There's a switch-case statement that runs over 150 LOC (readability, maintainability)
- There's a string parsing function in the same class as transaction processing (Separation of concerns)
- There are segments of code commented out (are they not using source control?)
- There's inlined SQL (maintainability, security)
- There's JSON being generated manually & inline (SoC, DRY)
- There's XML being generated manually & inline (SoC, DRY)
- To sum up function _Route_getStats($path): XML production, JSON production, file writing, business logic, SQL commands, HTTP header fiddling, hard coded paging limits, multiple exit points...
たしかにクラスはデカイ。
Mt.GoxのCEOのMark Karpeles氏自らが書いたソースということですが(?)、経営に専念して腕利きプログラマーに開発業務は任せたほうがよかったのかも…
Mt.Goxが渋谷にあったり、ロシアのハッカーがnanashiを名乗ったり、微妙に日本がからんでくる点も興味深いです。