Paoの技術力を磨くブログ

機械学習やブロックチェーン等の技術を身に付けていくブログです。

Solidity

【Ethereum】ブロックチェーンのじゃんけんdAppゲームを作ってみた

ブロックチェーンを使ったジャンケンゲーム(デモ)のdAppを作りました。 ゲーム自体はジャンケンなので大して面白くないですが、 ジャンケンというゲームがブロックチェーンの特性理解およびdappsの勉強になるいい題材と思ったため ジャンケンのゲームを作…

【Ethereum】Solidityでの例外処理(require,revert)でエラーメッセージを出力する

日本語での情報があまりなかったので書いておく。 Solidity0.4.22より、require()やrevert()による例外処理でエラーメッセージが出力できるようになった。 記述方法 require(条件, メッセージ); revert(メッセージ); 具体例(require) require(msg.value % 2 …

CryptoZombiesを一通りやってみて。。。

EthereumでのdApp開発の学習ツールとして有名な「CryptoZombies」を一通りやってみました。 (今出ているLesson6まで) cryptozombies.io 「CryptoZombies」はEthereum上に独自ネットワークを開発しているLoom Network社が提供しています。 「CryptoZombies…

【Ethereum】スマートコントラクトのベストプラクティスについてまとめる②

前回分はこちら pao2.hatenablog.com 続きを書きます。 既知の攻撃方法 Race Conditions 最も有名な攻撃の一つ。 DAO事件もこれ。 いくつかのパターンがあるのでそれを紹介する。 Reentrancy メソッドの最初の呼び出しが終了する前に、fallback関数により、…

【Ethereum】ERC20トークンで発生した脆弱性「batchOverflow」について

つい最近話題になった「batchOverflow」についてホットなうちにまとめる。 参考 イーサリアム基盤ERC20トークン“重大バグ”発見|ポロニエックスほか複数の大手取引所取引停止 | 仮想通貨まとめ まぁ重大バグではないが。。 要約 ERC20トークン自体の脆弱性で…

【Ethereum】スマートコントラクトのベストプラクティスについてまとめる①

Ethereumでのスマートコントラクト開発、すなわちSolidityでのプログラミングでは、かなりしっかりとしたコーディングをすることが求められる。 なぜなら、 一度ブロックにデプロイしたコードは変更できない 悪意のある人の攻撃により資産を盗まれる可能性が…