スマートコントラクトとは、ブロックチェーン上で実行されるコードのことです。条件が満たされると自動的に実行されます。弁護士も公証人もエスクローエージェントも必要ありません。コードそのものが契約です。トークンを返すことを約束するコントラクトに1ETHを送金した場合、コントラクトがトークンを返すか、取引が失敗するかのどちらかです。中間はなく、異議申し立てもできません。この最終性が重要な点です。同時に、リスクでもあります。スマートコントラクトのバグによって、数億ドルもの損失が発生しています。2016年のDAOハッキングでは6000万ドルが流出し、Parityウォレットの凍結では1億5000万ドルが凍結されました。コードは法律であり、法律にはバグが存在する可能性があるのです。
イーサリアムは2015年にスマートコントラクトを導入しました。最も一般的に使用されている言語はSolidityです。開発者はコントラクトを作成し、テストネットでテスト、監査、デプロイを行います。デプロイされたコントラクトは、アップグレードメカニズムが含まれていない限り変更できません。このアップグレードメカニズムは中央集権化のリスクとなります。1つのウォレットがコントラクトを変更できる場合、コントラクトは真に分散化されているとは言えません。主要なDeFiプロトコルのほとんどは、マルチシグウォレットまたはガバナンス投票を使用してアップグレードを制御しています。不変性とアップグレード可能性のトレードオフは、スマートコントラクト設計における中心的な課題の1つです。
スマートコントラクトの基本
- 自己実行型 — 条件が満たされると自動的に実行されます
- 不変 — 設計上変更できない場合を除き、デプロイ後に変更することはできません
- 透明性 — コードはブロックチェーン上で公開される
- 監査可能 — 誰でもロジックをレビューできる
契約書を操作する前に、必ず内容を読んでください。コードが読めない場合は、読める人を探してください。あるいは、監査済みで実績のあるプロトコルに従ってください。
Comments
No comments yet. Be the first to share a thought.
Leave a comment