💸

【Ethereum】なぜETH単位とWei単位を変換するのか

2023/06/24に公開

概要

Dapp開発では単位の変換がちょいちょい発生します。
「なぜ単位の変換が発生するのか」がサクっと理解できなかったため、
備忘録としてまとめます。

ETHとWeiの基本

ETH単位

Ethereumの基本単位。
一般的な取引で使われる。
1ETH、0.1ETH、0.01ETHなどと記す。

Wei単位

ETHの最小単位。
スマートコントラクト内で使用される。
1ETHは、1,000,000,000,000,000,000Wei。

なぜ2つの単位を変換するのか

・ETHからWeiに変換する理由

→精度を保つため

ETHは小数点以下の桁数を持つことができるため、非常に細かな金額まで表現できる。
しかし、コンピュータの計算では、浮動小数点数の小数点以下の桁数を扱うことは、厳密な計算が困難な場合がある(浮動小数点数は有限のビット数で表現されるため)。
Weiであれば、整数の単位であるため計算が容易であり、正確な結果を得ることができる。
だから、スマートコントラクト内部では、Wei単位を使用して計算や金額の表現を行う。

・WeiからETHに変換する理由

→直感的に理解するため

ETH単位は一般的な取引に使用されるため、人間が理解しやすい。
また、ETH単位を使用することで、金額の相対的な大きさや価値を把握しやすい。

まとめ

人間のための単位 が ETH。
スマートコントラクトのための単位 が Wei。

日本円で例えると、
〇〇円 が 〇〇ETH。
〇〇銭 が 〇〇Wei。

だから、フロントエンドでは人間向けにETHで表示するが、
スマートコントラクトに数値を送る際にはweiに変換する。

Discussion