8月の損益と、あの時CryptoBladesで何が起きていたか。
8月は+313万でした。(仮想通貨+298,株+15)
魔界BCGの面白さに魅了され、web3などを使用したフロントランニングやアビトラなどに注力していました。(ゲームしてない)
最近やっていることは以下です。
・DEX-CEX、CEX-CEXのアビトラ
・NFTのアビトラ
・BCGのコントラクトバグ探索
最近やっていないこと
・クリブレとかのBCG
・BSCNode関連
来月もアビトラを中心にNFTコントラクトバグや期待値を追って行きたいと思っています。
今月面白かったコントラクトバグは、
・DragonSlayerの無料NFT
・CryptoBladesの選択的高レア武器合成
の2つです。
DragonSlayer
詳細はツイッターでもつぶやきましたが、以下の通りです。
馬鹿ですね。
DragonSlayerで何が起きていたか
— tit_QASH (@tit_BTCQASH) 2021年8月23日
結論:ガス代だけでNFT(DRW)を作れるバグありました。(現在やるとBANされるので注意
続きは以下のスレッド
i)DRWのコントラクト(https://t.co/BYzderG5TW)
— tit_QASH (@tit_BTCQASH) 2021年8月23日
のCreateWarriorで、Toを自分のアドレスkindをARCHER nameもARCHER,hp attack defense を適当な数字(120とかLevelを1~5Signerを0x8d93e9cd2d78ab345bcaa70c9d71482419e57f3c とするとhttps://t.co/pm3YUf11MG のようにガス代だけでキャラができます
ii)作ったキャラでコンバットを行いDRSをもらうことで、ガス代だけで無限に報酬を貰う攻撃者が出現していました。
— tit_QASH (@tit_BTCQASH) 2021年8月23日
owner権限だけが呼び出せる関数を設定し忘れたのかなー、って思います。馬鹿かな?
CryptoBlades
以下に示すようなコントラクトを使ってmint_weaponという関数を騙し、高レア武器を30000個くらいmintする攻撃者がいました。
クリブレではuint256(keccak256(abi.encodePacked(user, seed, hash, gasleft())))というランダム値を使っているのですが、user,seed,gasleft(),hashはすべて定数なので、高レア武器だけmintすることは可能でした。
本来であれば、hashは変数なのですが、最新ブロック(Txを処理するブロック)のブロックハッシュはTxを送った時点ではわからなくても、コントラクトにTxを送ってコントラクト内でブロックハッシュを取得することができるので、定数化することが可能です。
もちろん、DEVに通報したり、Solidityコードの変更案を上げたりしたのですが、武器相場は崩壊し、コンバット報酬もなくなったので対処に失敗したと思います。
悪用する人がでかねないので、今まで口を噤んでいましたが、現状では攻撃者はおらず、クリブレも死んだので、供養として掲載します。
いいゲームだったな(白目)
BCGと付き合うときは、
1.Gitのコードは読む
2.Gitがなくともコントラクトの関数をすべて直コンで実行して、問題がないかチェック(この過程でドラゴンスレイヤーのバグを発見)
の2つはすべきでしょう。
税金を800万とか払う必要があることに気がついて、精神的にダメージがありますが、来週子供生まれますし、来月も頑張って稼ぎます!