- 1 DeFiとNFTのセキュリティ対策一覧
- 2 イーサリアムでよく見る0xとは?
- 3 Solidityとは?
- 4 Solidity開発のバックグラウンド
- 5 Uniswapなどのスワップコントラクトの検証方法
- 6 コントラクトでスワップ実行する際の例
- 6.1 スワップで用いられる関数
- 6.2 UniswapでETHをUSDCにスワップする場合
- 6.3 スワップ時にコールされるコントラクト
- 7 0xを理解する重要性
- 8 ETHをスワップするときの計算
- 9 スワップのデッドライン
- 10 スリッページの計算
- 11 墨汁うまいに質問する
DeFiとNFTのセキュリティ対策一覧
DeFiやNFTのフィッシングはその仕組みを理解するとほぼ100%防ぐことができます。DeFiやNFTの仮想通貨投資家が知るべきセキュリティ対策については下記リサーチレポートでわかりやすく解説しています。
・99%が知らないイーサリアムDeFiやNFTのコントラクト検証と確認方法Pt.1Approveの危険性を理解する
・99%が知らないイーサリアムDeFiやNFTのコントラクト検証と確認方法Pt.2フィッシングを避ける安全な署名方法とは?
・99%が知らないイーサリアムDeFiやNFTのコントラクト検証と確認方法Pt.3Solidityの背景から理解するUniswapの動作
イーサリアムでよく見る0xとは?
イーサリアムのEOAアカウントやコントラクトアカウントを示すアドレスの先頭に必ず”0x”がつくのを見るでしょう。
この0xとは
「アドレスや数字の羅列が16進数で表記されている」
ということを表しており、これはイーサリアムがの”Solidity”が関係しているのです。
Solidityとは?
Solidityとは
「イーサリアムのコントラクトを開発するための独自のプログラミング言語」
です。
Solidity自体はイーサリアムがいちから独自開発したプログラミング言語であり、一般的にはJavaScriptでのプログラミング経験があれば習得しやすいと言われています。
Solidity開発のバックグラウンド
SolidityがJavaScriptに似ていると言われるのは
「プログラミングのシンタックス(Syntax)、つまり構文がJavaScriptにインスパイアされているのが理由」
なのです。
またポピュラーなプログラミング言語であるC/C++などのバックグラウンドがあれば後はコントラクト独特の環境になれると開発ができるとされています。これには理由があり、1972年に開発されたC言語が後発のC++やJavaやに影響を与え、Webサイトやアプリの開発需要が増えたことで人気を博したJavaScriptがWeb3の概念に合っていたのでしょう。
C言語はプレフィックス(接頭辞)で0xつまり16進数で表すと規定されており、影響を受けたJavaScriptも同様であることから、イーサリアムでも0xを使用しているということです。
Uniswapなどのスワップコントラクトの検証方法
では上記の前提知識を元に、UniswapやCurve Financeのコントラクトを検証してみましょう。
この16進数というのはなにが重要かというと
「UniswapやCurve Finance