7章スマートコントラクトとSolidity

 2章で述べたように、イーサリアムのアカウントには外部所有アカウント(EOA)とコントラクトアカウントの2種類があります。EOAは多くの場合、イーサリアムプラットフォームの外部にあるウォレットアプリケーションなどのソフトウェアを介して、ユーザーによって制御されます。対照的に、コントラクトアカウントは、イーサリアム仮想マシンによって実行されるプログラムコード(一般的に「スマートコントラクト」と呼ばれます)によって制御されます。EOAは関連するコードやデータストレージのないシンプルなアカウントですが、コントラクトアカウントは関連するコードとデータストレージの両方を持っています。EOAは、プロトコルから独立した「現実世界」における秘密鍵によって作成され暗号学的に署名されたトランザクションによって制御されます。これに対して、コントラクトアカウントは秘密鍵を持たないので、スマートコントラクトコードであらかじめ規定された方法で「自分自身を制御」します。両方のアカウントタイプは、イーサリアムアドレスによって識別されます。この章では、コントラクトアカウントと、それを制御するプログラムについて説明します。

7.1 スマートコントラクトとは何か?

 「スマートコントラクト」という用語は、さまざまな異なるものを表現するために長年にわたって使われてきました。1990年代に、暗号学者であるニック・ザボ(Nick Szabo)がこの用語を作り、「当事者が他の約束を実行する手順まで含んだ、デジタル形式で規定された一連の約束」と定義しました。その後、スマートコントラクトの概念は発展していきましたが、それが顕著になったのは、2009年にビットコインを発明した分散型ブロックチェーンプラットフォームが導入されてからでした。イーサリアムの文脈におけるスマートコントラクトいう用語は、イーサリアムのスマートコントラクトがスマートでも法的な契約でもないことを考えればやや不適切な名称ですが、すでに定着しています。本書では、「スマートコントラクト」という用語は、イーサリアム仮想マシンの文脈で、イーサリアムネットワークプロトコルの一部として(つまり、分散型イーサリアムワールドコンピュータにおいて)決定論的に実行される、イミュータブルな(改変できない)コンピュータプログラムを指します。 ...

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.