第6話:誰がアクセスできる?関数の振る舞いを決める4つの「可視性」

第6話:誰がアクセスできる?関数の振る舞いを決める4つの「可視性」

概要

スマートコントラクトのセキュリティを左右する、4つの関数可視性(public, external, internal, private)の完全ガイドです。それぞれの違いと、「誰が」「どこから」呼び出せるのかを継承関係も踏まえて徹底解説。

「最小権限の原則」に基づき、不正アクセスを防ぎつつ、external活用によるガス代節約といったプロの設計思想を学び、安全で効率的なDApp開発の土台を固めます。

目次
Solidity学習講座:最終版 目次(全20話)
Solidity学習講座:最終版 目次(全20話)

基礎編 第1話:未来のインターネットへようこそ!Solidityとスマートコントラクトの全体像 第2話:準備は1分!ブラウザだけで開発できる「Remix IDE」の基本操作 第3話:記念すべき初コント ...

続きを見る

はじめに

第5話で、あなたは「関数」という心臓部をコントラクトに与え、publicprivateといったキーワードで、その機能へのアクセスを制御する方法を学びました。誰でも呼び出せる公開機能と、内部だけで使う非公開機能を区別できるようになったわけです。

しかし、実際の開発では、もっと繊細なアクセス制御が必要になる場面が数多くあります。

「特定の関係者(子コントラクト)だけが使えるようにしたい…」 「ユーザーからの呼び出し専用にして、少しでもガス代を節約したい…」

こうした要求に応えるのが、今回学ぶ**4つの「可視性(Visibility)」**の全貌です。publicprivateに加え、internalexternalをマスターすることで、あなたのアクセス制御は、まるで金庫のダイヤル錠のように、より精密で強固なものになります。

可視性の正しい理解と使い分けは、単なる作法ではありません。それは、あなたのコントラクトとユーザーの資産を潜在的な攻撃から守るための、最も重要なセキュリティ技術の一つなのです。

-Solidity