見出し画像

Defi|スマートコントラクトとは?

Defiの重要要素として語られる「スマートコントラクト」、直訳すると、「賢い契約」…ん、イマイチ来ないね。そもそもスマートコントラクトってどういうものなの?というのを説明していくよー

スマートコントラクトとは

スマートコントラクトは、自動的かつ決定論的な方法で実行できるコードののことを示すよ。紙の契約ではない。

契約といってもこういうのじゃない

スマートコントラクトのコードは、ブロックチェーン上に保存され、実行されることで、信頼性と安全性が確保される。また、スマートコントラクトには、資金の受け取り、保存、送信、さらには他のスマートコントラクトを呼び出す機能があるよ。また、スマートコントラクトはif-thenセマンティクス(もしXXXであるなら、●●●をする)に基づいているので、プログラミングが簡単だとされているよ。

いままでの契約では、人的要因が最もエラーを起こしやすく、信頼性に欠けてしまう。それを解決するのが、スマートコントラクト。スマートコントラクトは、意思決定から人的要因を取り除くことを目的としているよ。

スマートコントラクトを例えるなら

身近なものでスマートコントラクトの例えとして語られるのは、自動販売機。

いろんなもの売ってる日本の自販機ってすげーって海外の人はなる

自動販売機に、少ない金額を入れても物はでてこないよね。また、大きい硬貨を入れたりすると、買った商品とおつりが出てくるよね。おつりも自動販売機があらかじめプログラミングされた硬貨で優先的にでてくるよね。
つまり、自動販売機は、入力に基づいて特定のアクションや状態遷移が可能なようにプログラムされているよ。

スマートコントラクト実際の例

スマートコントラクトは、決済やDefi、サプライチェーンやクラウドファンディングなど、様々な用途で実際に利用されているよ。また、スマートコントラクトは、分散型アプリケーション(Dapps)の基本的な構成要素でもある。

分散型金融(DeFi)ですでに構築されているものには
・分散型ステーブルコイン(MakerDAOなど)
・自動流動性供給(ユニスワップなど)

スマートコントラクトのリスク

じゃあ全部世の中スマートコントラクトでいいじゃん!人間いらないね!ってなるよね。でもリスクは必ず存在する。

スマートコントラクトのリスクの一つは、ソフトウェアならではの問題、「バグ」だね。

今のイーサはオリジナルじゃねえっ!ってなる人もいる

過去にはこの「バグ」のせいで、DAOのハッキングが発生。攻撃者がスマートコントラクトから数百万ドル相当のETHが盗まれる事態に。結果としてイーサリアムのコミュニティ同士で出された結論はハードフォーク(仮想通貨の仕様変更)を行い、ハッキング前までブロックチェーンの記録をさかのぼって、ハッキングそのものを無かったことにするということになった。

ちなみにイーサクラシックは、この結論に反発したコミュニティが、後にイーサリアムを分裂させてできたものだよ。

そのほか、プロトコルの変更などもリスクの一つに数えられているよ。