最新の墨汁マガジン

【後編】99%が知らないイーサリアムDeFiやNFTのコントラクト検証と確認方法Solidityの背景から理解するUniswapの動作

コンテンツの主題
仕組み
実演
傾向と対策

こちらは後編となるため、リサーチレポート「【前編】99%が知らないイーサリアムDeFiやNFTのコントラクト検証と確認方法 フィッシングを避ける安全な署名方法とは?」を先に参照してください。

 

ここからは前編でみたEVMの仕組みからみるコントラクトの検証方法ではなく、イーサリアム自体のシステムベースのより詳しい検証方法についてみていきます。

イーサリアムでよく見る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

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