Solidity とは?プログラミング言語の特徴を解説【初心者向け】

Solidityとは」と検索すると、下記のように難しめの解説記事ばかり検索にヒットします。

  • スマートコントラクトの開発で使う言語!Solidityとは
  • Solidityの主な言語仕様5選
  • Solidityとは?開発ツールの比較も含め分かりやすく解説

しかし、「Solidityってそもそも何?」「Solidityって何ができるの?」と思って調べてみたのに、内容が難しいと読んでも理解できませんよね。

Solidityはブロックチェーン開発をする上でとても重要なプログラミング言語ですが、実はまだあまりわかりやすい記事がありません。

なぜならSolidityは日本語の情報がほとんどなく、まだ国内では学習の環境が整っていないためです。

この記事では、Solidityとは何か、意味やできることを初心者向けにわかりやすく解説します。

この記事を読めば、Solidityについての基礎事項を一通り学べます。

目次

Solidityとは?

Solidityとは?⇒”プログラミング言語”です

Solidityはスマートコントラクトを扱えるオブジェクト指向の高級言語です。スマートコントラクトはEthereum内でアカウントの動作を制御するものです。

引用:Solidity公式ドキュメント

プログラミングに馴染みのない方はそもそも「オブジェクト指向」からなんのことかさっぱりわかりませんし、「スマートコントラクト」にいたっては聞いたこともないのではないでしょうか。

もう一つ、Wikipediaも見ておきましょう。

Solidityとは、スマートコントラクトを記述するための手続き型プログラミング言語であり、キャビン・ウッドによって作成された。JavaSriptやC++に似た構文を持つとされる。SolidityによってコンパイルしたプログラムはEthereum Virtual Machine上での実行が想定されている。

引用:Wikipedia

Wikipediaの説明は簡潔で正確な一方、わかりにくいのが難点です。

今見てきたように、「Solidityとは」と調べてもこのように初心者向けに書かれたものがないため、専門性の高い解説が多い印象です。

そもそも「ブロックチェーン」「スマートコントラクト」という言葉を初めて聞いたという方は、さっぱり何のことか分からない方が多いはず。
そこで「ブロックチェーン」「スマートコントラクト」に焦点を当てて、この説明をさらに噛み砕いていきます。

そもそも「ブロックチェーン」とは?⇒”信用を創造する技術”です

ブロックチェーンは2008年にサトシナカモトの論文で提唱された、仮想通貨のモデルを実現するために開発された分散型台帳技術です。

分散型台帳技術というのは、これまで従来の情報記録は大きなサーバーに中央集権的に一つの場所で管理していたのに対し、複数のノード(情報の真正性を検証するコンピューター)を介して、情報を分散して保存する仕組みです。

このブロックチェーン技術によって、これまで中央のサーバーが落ちることでサービスが止まってしまう、単一障害点を持っていたサーバー管理に一つの解決策を示しました。

ブロックチェーンはこの特性により、これまで国家が発行することで価値の信用を担保していた法定通貨に対し、ブロックチェーン技術によって中央の発行主体、管理者のいない通貨を発行することができるようになりました。これが「仮想通貨/暗号資産」と呼ばれるものになります。

そもそも「スマートコントラクト」とは?⇒ “契約の自動執行”です

スマートコントラクトは一言で表現すると、「契約の自動執行」になります。予め決められた条件を満たすと、設定しておいたものが自動で執行される、といった具合です。

具体例「契約の自動執行=自動販売機」

スマートコントラクトは具体例を通して理解するのがオススメです。

釈迦に説法かもしれませんが、自動販売機とは路上や行楽施設内などに設置されている無人の販売機です。

自動販売機では、商品ごとに金額が表示され(=条件)、これを満たす金額を投入することで(=条件の履行)、商品が出力されます。(=契約の履行)。

つまり、自動販売機は原始的な“スマートコントラクト”と呼べるものなのです。そのすじの人がこの説明を見たら「いい加減な説明だな」と感じるかもですが、この記事は初心者向けに具体的を交えて噛み砕いて説明するのが本来の趣味なので、より厳密さを求めるのであれば他の記事がオススメです。

Solidity でできることは?

Solidityでできることは、公式ドキュメントでは以下のように簡潔に書かれています。

Solidityで投票やクラウドファンディング、匿名のオークションやマルチシグウォレットを作成することができます。

引用:Solidity公式ドキュメント

ここではもう少し具体的に以下の3つの事例を見ていきたいと思います。

  • 事例①:DEX(分散型取引所)
  • 事例②:投票
  • 事例③:レンディング

事例①:DEX(分散型取引所)

DEXとは、Decentralized Exchange(分散型取引所)の略。

DEXでは、暗号資産を取引したい人同士が直接取引することが可能です。
ブロックチェーン上で、決済までの取引プロセスがスマートコントラクトによって自動で行われます。

企業が運営するCEX(Centralized Exchange、集中型取引所)のような中央集権的な存在がいないため、利用により被った不利益は自己責任になります。
しかし、ブロックチェーンのセキュリティの高さやスマートコントラクトによって無人で運営できるため、管理コストの低下による手数料の安さなどメリットも多く、利用者も増加しています。

事例②:投票

ブロックチェーンを用いた投票システムでは、議決権をトークンとして発行し※、スマートコントラクトによって自動で集計を行うようプログラミングすることで、得票数の改竄を防ぐことが可能になリます。

※議決権として発行されたトークンをガバナンストークンと言います。

事例③:レンディング

暗号資産の貸し借りもスマートコントラクトによって自動化できます。

代表的なサービスとして挙げられるのが、Compound(コンパウンド)
Compoundでは暗号資産を担保として預け入れると、引き換えに預かり証として「cToken」※を発行されます。
この「cToken」と引き換えに、預け入れた暗号資産とその利息を受け取ることができるサービスです。

このサービスが面白いのはこの「cToken」を売買することができる点です。

※「cToken」=「Compound+Token」の略。

例えば、BTC(ビットコイン)を預け入れると、預かり証として「cBTC」=「Compound+BTC」を受け取ることになります。

Solidity の学習で得られるもの

イーサリアム、ブロックチェーンへの深い理解が得られます。

Solidityとは元々、イーサリアムチェーン上にスマートコントラクトを実装することを目的として、開発された言語ですが、今ではブロックチェーン開発をする上で避けては通れない主要言語となっています。開発者も多いため、意思疎通も開発者間では容易であるため、様々なプロジェクトに用いられています。そのため、Solidity を学ぶことでブロックチェーンに対する深い理解を得ることができます。

Solidity とは?プログラミング言語の特徴【まとめ】

最後に一問一答クイズで簡単に復習しておきましょう。

Solidityとは?

スマートコントラクトを記述するためのプログラミング言語

Solidityの開発者は誰?

キャビン・ウッド(@gavofyork

Solidityと似ているプログラミング言語は?

C++、Python、JavaScript(構文が似ている)

SolidityはC++、Python、JavaScriptを参考に、Ethereum Virtual Machine(EVM)の操作を目的に作られています。

引用:Solidity公式ドキュメント

>>トップページに戻る

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次
目次
閉じる