最新の墨汁マガジン

【セキュリティ対策】Pt.3″99%が知らない”イーサリアムDeFi/NFTコントラクト検証と確認方法Solidityの背景から理解するUniswapの動作

コンテンツの主題
仕組み
実演
傾向と対策
目次
  • 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

*ここから先はオンラインサロン会員専用です