初心者用語を調べる
スマートコントラクトとは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 5 分
結論
スマートコントラクトは、ブロックチェーン上に置かれ、条件を満たすと自動で実行されるプログラムです。仲介者を挟まずに取引の条件を執行できる一方、公開されたコードにバグがあれば、そのまま資金流出につながります。DeFiやNFTはこの仕組みの上に成り立っています。
要点
- 条件を満たすと自動実行されるプログラム
- コードは公開され、誰でも中身を確認できる
- 一度配置すると変更できない場合が多い
- 実行にはガス代という手数料がかかる
定義
ブロックチェーン上に配置され、あらかじめ書かれた条件に従って自動的に実行されるプログラム。実行結果は台帳に記録される。
たとえば「AさんがBさんに100ドル相当の資産を送ったら、BさんのNFTをAさんに移す」という処理を、双方が相手を信用しなくても実行できます。条件と処理内容はコードとして台帳に書かれており、誰かが途中で気を変えても止められません。
イーサリアムでは Solidity という言語で書かれることが多く、配置後はアドレスを持ちます。利用者はそのアドレスに対して取引を送ることでプログラムを呼び出します。DEXでのスワップ、レンディングでの貸し借り、NFTの発行はすべてこの呼び出しです。
重要なのは、コントラクトは書かれたとおりにしか動かないという点です。「本来はこういう意図だった」という主張は通用しません。過去には、送金処理の順序に関するバグを突かれて数百億円規模の資金が流出した事例が複数あり、監査を受けたコントラクトでも被害は起きています。
注意点
- · 監査済みでも安全とは限らない。監査は特定時点の指摘にすぎない
- · 一度承認(approve)した権限は、取り消すまでコントラクト側に残る
- · 似た名前のコントラクトを装った偽サイトへの接続に注意する