8章スマートコントラクトとVyper

 Vyperは、イーサリアム仮想マシンのために設計された、実験的なコントラクト指向のプログラミング言語です。わかりやすいコードを開発者が書けるようにすることで、厳密な監査の実施を可能にしています。実際、Vyperの原則の1つとして、誤解を招きやすいコードを事実上書けないようにすることがあります。

 本章では、スマートコントラクトに関するよくある問題を検討し、Vyperを紹介してからSolidityと比較してその違いを説明します。

8.1 脆弱性とVyper

 最近の調査(https://arxiv.org/pdf/1802.06038.pdf)によると、100万近いデプロイ済みのスマートコントラクトが解析され、それらの多くが深刻な脆弱性を持っていることがわかりました。解析の過程で研究者は、脆弱性に関する3つの基本的な分類を示しました。

自滅的なコントラクト

任意のアドレスによって強制終了されてしまうスマートコントラクト

グリーディーコントラクト

イーサの解放を行うことができない状態に到達する可能性のあるスマートコントラクト

プロディガルコントラクト

イーサを任意のアドレスに対して解放してしまう可能性のあるスマートコントラクト

 脆弱性は、コードを通じてスマートコントラクトに導入されます。脆弱性は意図的に導入されたものではないにしろ、望ましくないスマートコントラクトのコードは、明らかにイーサリアムのユーザーの意図しない資金の流出を招きます。それは、決して望ましいことではありません。Vyperは安全なコードをより簡単に書けるよう設計されており、誤解を招くようなコードや脆弱性のあるコードを誤って書かないよう設計されています。 ...

Get マスタリング・イーサリアム ―スマートコントラクトとDAppの構築 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.