このクイック用語集には、イーサリアムに関連する多くの用語が含まれています。これらの用語は本書全体で使用されているため、ブックマークしてすばやく参照できるようにしてください。
アカウント アカウント
アドレス、残高、ナンス、およびオプションでストレージとコードを含むオブジェクト。アカウントは、契約アカウントまたは外部所有アカウント (EOA、外部所有アカウント) のいずれかです。
住所住所
一般的に言えば、これは EOA またはコントラクトを表し、ブロックチェーン上でトランザクションを受信 (宛先アドレス) または送信 (送信元アドレス) できます。より具体的には、ECDSA 公開鍵の Keccak ハッシュの右端 160 ビットであり、「0x」文字が前に付いた 16 進数の 40 文字で表されます。
主張する
Solidity では、 assert(false) は0xfeにコンパイルされます。これは、残りのすべての Gas を使い果たし、すべての変更を元に戻す無効なオペコードです。assert() ステートメントが失敗すると、重大な問題が発生したか、例外が発生したため、コードを修正する必要があります。決して発生してはならない状態を回避するには、assert を使用する必要があります。
ビッグエンディアン ビッグエンディアン
最上位ビットが最初の値の位置表現。最下位ビットが最初のリトルエンディアンに対応します。
ビットコイン改善提案 (BIP)
ビットコイン改善提案、ビットコイン改善提案。ビットコインを改善するために、ビットコイン コミュニティのメンバーによって提出された一連の提案。たとえば、BIP-21 は、ビットコインの URI (Uniform Resource Identifier) スキームを改善するための提案です。
ブロック ブロック
ブロックは、ブロックに含まれるトランザクションに関する必要な情報 (ブロック ヘッダー) の集合であり、ommer と呼ばれる他のブロック ヘッダーのセットと一緒です。マイナーによって Ethereum ネットワークに追加されます。
ブロックチェーン ブロックチェーン
プルーフ・オブ・ワーク・システムによって検証された一連のブロックで、各ブロックはその前のブロックからジェネシス・ブロックに至るまで接続されています。これは、ブロック サイズの制限がないという点で Bitcoin プロトコルとは異なり、代わりに別のガス制限を使用します。
ビザンチウムフォーク
Byzantium は、Metropolis の開発段階における 2 つの分岐点の 1 つです。これには、EIP-649: メトロポリタン難易度爆弾の遅延とブロック報酬の削減が含まれており、氷河期 (以下を参照) が 1 年遅れ、ブロック報酬が 5 ETH から 3 ETH に削減されます。
コンパイル中
高水準プログラミング言語 (Solidity など) で記述されたコードを低水準言語 (EVM バイトコードなど) に変換します。
コンセンサス
多数のノード (通常はネットワーク上の大多数のノード) が、ローカルで検証された最良のブロックチェーンに同じブロックを持っている状況。コンセンサスルールと混同しないでください。
コンセンサスルール
他のノードとの一貫性を保つために、フル ノードはブロック検証ルールに従います。コンセンサスと混同しないでください。
コンスタンティノープル
メトロポリタン フェーズの第 2 部は、2018 年半ばに計画されています。他の変更の中でも、ハイブリッド プルーフ オブ ワーク/プルーフ オブ ステーク コンセンサス アルゴリズムへの切り替えが含まれる予定です。
契約口座Contract account
別のアカウント (EOA またはコントラクト) からトランザクションを受け取るたびに実行するコードを含むアカウント。
契約成立取引 契約成立取引
「ゼロ アドレス」を受信者とする特別なトランザクションを使用して、コントラクトを登録し、イーサリアム ブロックチェーンに記録します (「ゼロ アドレス」を参照)。
分散型自律組織 DAO
分権型自律組織 分権型自律組織 階層的管理のない企業およびその他の組織。また、2016 年 6 月にハッキングされ、ブロック 1,192,000 でハード フォーク (コードネーム DAO) が発生し、ハッキングされた DAO コントラクトが復元され、競合するシステム、イーサリアムとイーサリアム クラシック。
分散型アプリケーション DApp
分散型アプリケーション 分散型アプリケーション 狭義には、少なくともスマート コントラクトと Web ユーザー インターフェイスです。より広義には、DApp は、オープンで分散化されたピアツーピア インフラストラクチャ サービスに基づく Web アプリケーションです。さらに、多くの DApp には、分散型ストレージおよび/またはメッセージング プロトコルとプラットフォームが含まれています。
契約書
交換不可能なトークン標準は、ERC721 提案で導入されました。ERC20 トークンとは異なり、証書は所有権を証明し、代替可能ではありませんが、少なくともまだどの司法管轄区でも法的文書として認識されていません。
困難
プルーフ オブ ワークを生成するために必要な計算量を制御するネットワーク全体の設定。
デジタル署名デジタル署名
デジタル署名アルゴリズムは、ユーザーが秘密鍵を使用してドキュメントの「署名」と呼ばれる短い文字列のデータを生成するプロセスです。これにより、署名、ドキュメント、および対応する公開鍵を持つすべての人が検証できます ( 1) 文書が特定の秘密鍵の所有者によって作成されたこと、および (2) 署名されてから文書が変更されていないこと。
楕円曲線デジタル署名アルゴリズム ECDSA
楕円曲線デジタル署名アルゴリズム (ECDSA) は、正当な所有者のみが資金を使用できるようにするためにイーサリアムで使用される暗号化アルゴリズムです。
イーサリアム改善提案 EIP
Ethereum Improvement Proposals、Ethereum Improvement Proposals は、Ethereum プラットフォームの標準案について説明しています。EIP は、イーサリアム コミュニティに情報を提供し、新しい機能、プロセス、または環境を説明する設計ドキュメントです。詳細については、https://github.com/ethereum/EIPsを参照してください(以下の ERC 定義も参照してください)。
エントロピー エントロピー
暗号化において、予測可能性の欠如またはランダム性のレベル。マスター秘密鍵などの秘密情報を生成する場合、アルゴリズムは多くの場合、高エントロピー ソースに依存して、出力が予測不能であることを確認します。
イーサリアムネームサービス ENS
イーサリアム ネーム サービス、イーサリアム ネーム サービス詳細については、https://github.com/ethereum/ens/を参照してください。
外部所有アカウント EOA
外部所有アカウント Ethereum の実際のユーザーによって、またはそのユーザーのために作成されたアカウント。
イーサリアム コメント リクエスト ERC
Ethereum Request for Comments. 一部の EIP は ERC としてマークされており、Ethereum で使用される特定の標準を定義しようとする提案を示しています。
エサシュ
イーサリアム 1.0 のプルーフ オブ ワーク アルゴリズム。詳細については、https://github.com/ethereum/wiki/wiki/Ethashを参照してください。
エーテル
Ethereum エコシステムで使用されるネイティブ通貨である Ether は、スマート コントラクトを実行する際にガス コストを負担します。その一致は、オタク向けの大文字の Xi 文字である Ξ です。
イベント
イベントを使用すると、EVM ロギング機能を使用できます。これを使用して、DApp のユーザー インターフェイスで JavaScript コールバックを呼び出し、これらのイベントをリッスンできます。詳細については、http://solidity.readthedocs.io/en/develop/contracts.html#eventsを参照してください。
イーサリアム仮想マシン EVM
バイトコードを実行するスタックベースの仮想マシンである Ethereum Virtual Machine。イーサリアムでは、実行モデルは、一連のバイトコード命令と少量の環境データが与えられたときに、システムの状態がどのように変化するかを指定します。これは、仮想ステート マシンの正式なモデルを通じて指定されます。
EVM アセンブリ言語EVM アセンブリ言語
人間が読める形式のバイトコード。
フォールバック方法 フォールバック機能
データまたは宣言されたメソッド名が欠落している場合に実行するデフォルトのメソッド。
蛇口
テストネットでテストしたい開発者に無料のテスト イーサの形で報酬を提供する Web サイト。
フロンティア
2015 年 7 月から 2016 年 3 月までの Ethereum の実験的開発フェーズ。
ガナッシュ
ブロックチェーンの動作を制御しながら、テスト、コマンドの実行、ステータスの確認ができるプライベート イーサリアム ブロックチェーン。
ガス
イーサリアムがスマート コントラクトを実行するために使用する仮想ガス。イーサリアム仮想マシンは、アカウンティング メカニズムを使用してガス消費量を測定し、コンピューティング リソースの消費を制限します。「チューリング完全性」を参照してください。Gas は、スマート コントラクトを実行する命令ごとに生成される計算単位です。ガスはイーサ暗号通貨に固定されています。Gas は、セルラー ネットワークの通信時間に似ています。したがって、法定通貨でのトランザクションの価格はガス(ETH /ガス) (法定通貨 / ETH) です。
ガスリミット ガスリミット
ブロックについて言えば、ガスリミットと呼ばれる領域もあります。ブロック全体のすべてのトランザクションが消費できるガスの最大量を定義します。
ジェネシスブロック
ブロックチェーンの最初のブロックで、特定のネットワークと暗号化されたデジタル通貨を初期化するために使用されます。
ゲス
Go のイーサリアム。Go で書かれた Ethereum プロトコルの最も顕著な実装の 1 つです。
ハードフォーク ハードフォーク
ハード フォーク変更とも呼ばれるハード フォークは、アップグレードされていないノードが、新しいコンセンサス ルールに従うアップグレードされたノードによって作成されたブロックを検証できない場合に通常発生する、ブロックチェーン内の永続的な分岐です。フォーク、ソフト フォーク、ソフトウェア フォーク、または Git フォークと混同しないでください。
ハッシュ値
可変サイズのデータのハッシュによって生成される固定長のフィンガープリント。
ウォレットの階層決定 HDウォレット
層状の決定論的鍵生成および転送プロトコル (BIP32) を使用するウォレット。
ウォレット シード HD ウォレット シードを階層的に決定する
HD ウォレットのシードまたはルート シードは、HD ウォレットのマスター秘密鍵とマスター チェーンコードを生成するためのシードとして使用される短い値である可能性があります。ウォレット シードはニーモニック ワードで表すことができるため、秘密鍵のコピー、バックアップ、および復元が容易になります。
ホームステッドホームステッド
2016 年 3 月にブロック 1,150,000 で開始された Ethereum の第 2 開発フェーズ。
氷河期 氷河期
ブロック 200,000 でのイーサリアムのハードフォークは、難易度の指数関数的な増加 (別名難易度爆弾) を提案し、Proof-of-Stake への移行を引き起こしました。
統合開発環境 IDE (統合開発環境)
コード エディター、コンパイラー、ランタイム、デバッガーを組み合わせた統合ユーザー インターフェイス。
不変のデプロイされたコードの問題 不変のデプロイされたコードの問題
コントラクト (またはライブラリ) のコードがデプロイされると、不変になります。考えられるバグを修正し、新しい機能を追加することは、ソフトウェア開発サイクルの核心です。これは、スマート コントラクト開発の課題です。
インターエクスチェンジ クライアント アドレス プロトコル (ICAP)
国際銀行口座番号 (IBAN) エンコーディングと部分的に互換性のあるイーサリアム アドレス エンコーディングは、イーサリアム アドレスの多様なチェックサムおよび相互運用可能なエンコーディングを提供します。ICAP アドレスは、イーサリアム アドレスまたはイーサリアム ネーム レジストリを通じて登録された共通名をエンコードできます。それらは常に XE で始まります。その目的は、新しい IBAN 国コードを導入することです。XE は、X が「拡張」を表し、E が Ethereum を表し、管轄外の通貨 (XBT、XRP、XCP など) を表します。
内部トランザクション (「メッセージ」とも呼ばれます)
あるコントラクト アドレスから別のコントラクト アドレスまたは EOA に送信されるトランザクション。
Keccak256
イーサリアムで使用される暗号化ハッシュ方式。初期の Ethereum コードでは SHA-3 として記述されていましたが、2015 年 8 月に SHA-3 が標準化されたときに NIST がパディング アルゴリズムを調整したため、Keccak256 は標準の NIST-SHA3 とは異なります。Ethereum はまた、その後のコードで SHA-3 を Keccak256 に置き換え始めました。
鍵導出方法 鍵導出関数 (KDF)
パスワード拡張アルゴリズムとも呼ばれ、キーストア形式で使用され、パスワード暗号化に対するブルート フォース攻撃、辞書攻撃、またはレインボー テーブル攻撃を防ぎます。パスワードを繰り返しハッシュします。
キーストア ファイル
セキュリティを強化するためにパスフレーズで暗号化された (ランダムに生成された) 秘密鍵を含む JSON エンコード ファイル。
レベルDB
LevelDB は、オープン ソースのディスク キー値ストレージ システムです。LevelDB は、多くのプラットフォームをサポートする軽量の単一ターゲットの永続化ライブラリです。
ライブラリLibrary
イーサリアムのライブラリは、支払い方法、フォールバック方法、およびデータ ストレージがない特別なタイプのコントラクトです。そのため、イーサを受信または保存したり、データを保存したりすることはできません。ライブラリは以前にデプロイされたコードとして使用され、他のコントラクトは読み取り専用の計算を呼び出すことができます。
軽量クライアント 軽量クライアント
軽量クライアントは、ブロックチェーンのローカル コピーを保存せず、ブロックとトランザクションを検証しない Ethereum クライアントです。トランザクションを作成およびブロードキャストするためのウォレットの機能を提供します。
メッセージ メッセージ
シリアル化されず、EVM でのみ送信される内部トランザクション。
メトロポリスステージ
Metropolis は、2017 年 10 月に開始された Ethereum の 3 番目の開発フェーズです。
METoken
Mastering Ethereum Token. 本書でデモンストレーション目的で使用される ERC20 トークン。
マイナー
ハッシュ計算を繰り返して、新しいブロックの有効なプルーフ オブ ワーク ネットワーク ノードを見つけます。
靄
Mist は、イーサリアム財団によって作成された最初のイーサリアム ブラウザーです。また、ERC20 トークン標準の最初の実装であるブラウザベースのウォレットも含まれています (Fabian Vogelsteller、ERC20 の作成者であり、Mist の主任開発者)。Mist はキャメルケース チェックサム (EIP-155) を導入した最初のウォレットでもあります。Mist は完全なノードを実行し、完全な DApp ブラウザを提供し、Swarm ベースのストレージと ENS アドレスをサポートします
ネットワーク ネットワーク
すべての Ethereum ノード (ネットワーク参加者) のピアツーピア ネットワークにトランザクションとブロックを伝播します。
ノードノード
ピアツーピア ネットワークに参加するソフトウェア クライアント。
乱数ナンス
暗号化では、乱数とは一度しか使用できない値を指します。イーサリアムでは 2 種類の乱数が使用されます。
Account Nonce - これは、アカウントの単なるトランザクション数です。
Proof-of-Work ナンス - Proof-of-Work を取得するために使用されるブロック内のランダムな値 (その時の難易度に応じて)。
オマー
祖父母ノードの子ノードですが、それ自体は親ノードではありません。マイナーが有効なブロックを見つけるまでに、別のマイナーが競合するブロックを公開し、それをブロックチェーンのトップに追加している可能性があります。ビットコインと同様に、イーサリアムの孤立したブロックは、新しいブロックによってオマーとして含まれ、部分的な報酬を受け取ることができます. 「ommer」という用語は、親ノードの兄弟ノードに対する性別中立的な用語ですが、「叔父」を意味する場合もあります。
パリティ
相互運用性 (マルチ署名) をサポートする Ethereum クライアント ソフトウェアの最も顕著な実装の 1 つです。
プルーフ・オブ・ステーク (PoS)
プルーフ オブ ステークは、暗号通貨のブロックチェーン プロトコルが分散コンセンサスを達成することを目的とする方法です。プルーフ・オブ・ステークでは、トランザクション検証に参加できるようにするために、ユーザーは一定量の暗号通貨 (ネットワーク内の「ステーク」) の所有権を証明する必要があります。
プルーフ・オブ・ワーク (PoW)
見つけるために多くの計算を必要とするデータ (証明) の一部。イーサリアムでは、マイナーは、ネットワークの難易度の目標を満たすイーサッシュ アルゴリズムの数値解を見つけなければなりません。
レシート
特定のトランザクションの結果を表す Ethereum クライアントによって返されるデータ。これには、トランザクションのハッシュ、そのブロック番号、使用されるガスの量、およびスマート コントラクトがデプロイされたときのコントラクトのアドレスが含まれます。
再入攻撃 再入攻撃
この攻撃は、攻撃者が被害者契約の呼び出しメソッドを契約するときに繰り返される可能性があります。これをvictim.withdraw()と呼びましょう。コントラクト関数への元の呼び出しが完了する前に、victim.withdraw()メソッドが再度呼び出され、自身を再帰的に呼び出し続けます。再帰呼び出しは、攻撃者コントラクトのフォールバック メソッドを通じて行うことができます。攻撃者が実行しなければならない唯一のトリックは、ガスがなくなる前に再帰呼び出しを中断し、盗まれたイーサが復元されないようにすることです。
必須
Solidity では、require(false) はREVERTオペコードである0xfdにコンパイルされます。REVERT 命令は、実行を停止し、提供されたガスをすべて消費して理由を返すことなく、状態変更を再開する方法を提供します。require 関数は、入力変数やコントラクト状態変数などの有効な条件が満たされていることを確認したり、外部コントラクトへの呼び出しからの戻り値を検証したりするために使用する必要があります。*ビザンチン* ネットワークがアップグレードされる前は、トランザクションを元に戻すには 2 つの実際的な方法がありました: ガスの不足または無効な命令の実行です。どちらのオプションも残りのガスをすべて消費します。*Byzantium* ネットワークのアップグレード前は、この opcode は *yellow paper* で見つかりませんでした。opcode が指定されていなかったため、 EVM が実行したときに無効な opcode エラーがスローされていました。
元に戻す 元に戻す
require()と同じケースを処理する必要があるが、より複雑なロジックを使用する必要がある場合は、revert() を使用します。たとえば、コードに入れ子になった if/else ロジック フローがある場合は、 require() の代わりに require()を使用する方が合理的であることがわかる場合があります。
報酬
イーサの量 (ETH)、プルーフ オブ ワーク ソリューションを見つけたマイナーへのネットワークの報酬として各新しいブロックに含まれる量。
再帰的な長さのプレフィックス (RLP)
RLP は、任意の複雑さと長さのオブジェクト (データ構造) をエンコードおよびシリアル化するために Ethereum 開発者によって設計されたエンコード標準です。
中本聪 Satoshi Nakamoto
サトシ ナカモトは、ビットコインとその最初の実装であるビットコイン コアを設計した個人またはチームの名前です。実装の一環として、彼らは最初のブロックチェーンも設計しました。その過程で、彼らはデジタル通貨の二重支出の問題を解決した最初の企業でした。彼らの正体は今日に至るまで謎のままです。
ヴィタリック・ブテリン
Vitalik Buterin は、ロシア系カナダ人のプログラマー兼ライターであり、Ethereum と Bitcoin Magazine の共同創設者です。
ギャビン・ウッド
Gavin Wood は、英国を拠点とするプログラマーであり、イーサリアムの共同創設者であり、元 CTO です。2014 年 8 月には、スマート コントラクトを作成するためのコントラクト指向のプログラミング言語である Solidity を提案しました。
秘密鍵 (別名秘密鍵)
Ethereum ユーザーがデジタル署名を作成することによってアカウントまたは契約の所有権を証明できるようにする暗号番号 (公開鍵、アドレス、ECDSA を参照)。
社
セキュア ハッシュ アルゴリズム (SHA) は、米国国立標準技術研究所 (NIST) によってリリースされた一連の暗号化ハッシュ関数です。
SELFDESTRUCT オペコード
ネットワーク全体が存在する限り、スマート コントラクトは存在し、強制力があります。それらが自己破壊するようにプログラムされているか、デリゲートコールまたはコールコードを使用してそうするようにプログラムされている場合、それらはブロックチェーンから消えます. 自己破壊操作が実行されると、コントラクト アドレスに保存されている残りの Ether は別のアドレスに送信され、ストレージとコードは状態から削除されます。これは予想される動作ですが、自己破壊コントラクトのプルーニングは、Ethereum クライアントによって実装される場合と実装されない場合があります。SELFDESTRUCT は以前は SUICIDE と呼ばれていましたが、EIP6 では、SUICIDE は SELFDESTRUCT に名前が変更されました。
セレニティ
イーサリアムの第 4 および最終開発フェーズ。Serenity のリリース予定日はまだありません。
蛇
Python に似た構文を持つ手続き型 (命令型) プログラミング言語。また、完全に副作用がないわけではありませんが、関数型 (宣言型) コードの記述にも使用できます。Vitalik Buterin によって最初に作成されました。
スマートコントラクトスマートコントラクト
イーサリアムのコンピューティング フレームワークで実行されるプログラム。
堅牢性
Javascript、C++、または Java と同様の構文を持つ手続き型 (命令型) プログラミング言語。イーサリアム スマート コントラクトで最も人気があり、一般的に使用されている言語。Gavin Wood (この本の共著者) によって最初に作成されました。
Solidity インライン アセンブリ
インライン アセンブリ EVM アセンブリ (人間が読める形式の EVM コード) を使用する、Solidity に含まれるコード。インライン アセンブリは、アセンブリを手動で記述するときに発生する固有の問題やその他の問題を解決しようとします。
スプリアス・ドラゴン
ブロック #2,675,00 でのハード フォークにより、より多くのサービス拒否攻撃ベクトルに対処し、別の状態パージを行います。再ブロードキャスト攻撃保護メカニズムもあります。
群れ
分散型 (P2P) ストレージ ネットワーク。Web3 および Whisper と連携して DApps を構築します。
タンジェリンホイッスル
ブロック #2,463,00 でのハード フォークは、特定の I/O 集約型操作のガスの計算方法を変更し、これらの操作の低ガス コストを利用したサービス拒否攻撃から蓄積された状態をクリアします。
テストネット テストネット
メインのイーサリアム ネットワークの動作をシミュレートするテスト ネットワーク (略してテストネット)。
取引 取引
元のアカウントによって署名され、特定のアドレスを対象とした Ethereum ブロックチェーンに送信されたデータ。トランザクションには、トランザクションのガス制限などのメタデータが含まれています。
トリュフ
最も一般的に使用される Ethereum 開発フレームワークの 1 つ。Node Package Manager (NPM) を使用してインストールできるいくつかの NodeJS パッケージが含まれています。
チューリング完全 チューリング完全
計算理論では、データ操作のルール (コンピューターの命令セット、プログラミング言語、セル オートマトンなど) を使用して任意のチューリング マシンをシミュレートできる場合、それはチューリング完全または計算普遍性と呼ばれます。この概念は、英国の数学者でコンピューター科学者のアラン・チューリングにちなんで名付けられました。
ヴァイパー
純粋な関数型言語に近づくことを目的とした、Python に似た構文を備えた Serpent に似た高水準プログラミング言語。Vitalik Buterin によって最初に作成されました。
ウォレットウォレット
すべての鍵を保持するソフトウェア。Ethereum アカウントにアクセスして制御し、スマート コントラクトとやり取りするためのインターフェイスとして機能します。キーはウォレットに保存する必要はなく、セキュリティを強化するために USB フラッシュ ドライブや紙などのオフライン ストレージから取得できることに注意してください。ウォレットの名前にもかかわらず、実際のコインやトークンを保存することはありません。
Web3
Web の 3 番目のバージョン。Gavin Wood によって最初に提案された Web3 は、中央で所有および管理されるアプリケーションから分散型のプロトコルベースのアプリケーションまで、Web アプリケーションの新しいビジョンと焦点を表しています。
魏
エーテルの最小単位、10 18 wei = 1 エーテル。
ウィスパー
分散型 (P2P) メッセージング システム。Web3 と Swarm で使用して DApps を構築します。
ゼロアドレス ゼロアドレス
すべてが0で構成される特別な Ethereum アドレス(つまり、0x00000000000000000000000000000000000000 ) は、スマート コントラクトの作成によって開始されるトランザクション (Transaction) のターゲット アドレス (つまり、 toパラメータの値) として指定されます。