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.