【ソリディティ】

Solidity とは?

💡 ブロックチェーンの世界で契約書を書くための専用言語
📌 このページのポイント
Solidity によるスマートコントラクト開発 開発者 Solidityで コントラクト記述 .sol ファイル コンパイル EVM バイトコード + ABI デプロイ Ethereum ブロックチェーン上で 自動実行 変更不可・透明 Solidityで作れるもの DeFi 分散型金融 Uniswap等 NFT デジタル資産 OpenSea等 DAO 分散型組織 投票・ガバナンス トークン ERC-20 ERC-721
Solidity によるスマートコントラクト開発のイメージ
ひよこ ひよこ

Solidityって普通のプログラミング言語と何が違うの?

ペンギン先生 ペンギン先生

一番の違いは「ブロックチェーン上で動くプログラム」を書くための言語だってことだよ。普通のプログラムサーバーで動くけど、Solidityで書いたスマートコントラクトはEthereumネットワーク全体で実行されるんだ

ひよこ ひよこ

文法は難しいの?

ペンギン先生 ペンギン先生

JavaScriptC++に似てるから、プログラミング経験があれば文法自体はそこまで難しくないよ。contractっていうキーワードでスマートコントラクトを定義して、関数や変数を書いていく。classの代わりにcontractを使うイメージだね

ひよこ ひよこ

どんなものが作れるの?

ペンギン先生 ペンギン先生

DeFiのサービス、NFTマーケットプレイス、DAO(分散型自治組織)の投票システム、トークンの発行など、ブロックチェーン上のアプリケーションならほぼ何でも作れるよ。UniswapやOpenSeaもSolidityで書かれてるんだ

ひよこ ひよこ

普通のプログラミングと比べて注意することはある?

ペンギン先生 ペンギン先生

セキュリティが桁違いに重要だよ。スマートコントラクトはお金を直接扱うし、一度デプロイするとブロックチェーン上に永久に残るから簡単に修正できない。有名な事件だと、2016年のThe DAO事件ではSolidityの脆弱性をつかれて約360万ETHが盗まれたんだ

ひよこ ひよこ

こわっ!バグがあっても直せないの?

ペンギン先生 ペンギン先生

基本的にはそうなんだ。だからプロキシパターンっていう設計で、アップグレード可能にする工夫がされてるよ。あと、デプロイ前に監査会社にセキュリティ監査を依頼するのが業界の常識になってる。ガス代(実行コスト)の最適化も腕の見せどころだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Solidity」って出てきたら「Ethereumのスマートコントラクトを書くためのプログラミング言語」と思えればだいたいOK!
📖 おまけ:英語の意味
「Solidity」 = 堅牢性・堅固さ
💬 名前には「堅牢なコントラクトを書くための言語」という意味が込められているよ。2014年にGavin Woodが提案して、Ethereum財団のチームが開発したんだ
← 用語集にもどる