【イーサリウム用語集】イーサリウムの予備知識

#イーサリウムの用語をまとめました。
ドキュメントを読むのは難しいです
少しでも助けになれば本望です。
##Account（アカウント）
アカウントとは、アドレス、バランス、ナンス（数字カウンター）が含まれる。また、ストレージやコードを含めることもできる。
アカウントには二種類あり、コントラクトアカウントと私的所有アカウント（EOA）がある

##Address（アドレス）
アドレスとは、トランザクション（取引）を受け取ったり送信したりできるコントラクトアカウントと私的所有アカウント（EOA)を特定する文字列のことである。パブリックキー（公開鍵）のハッシュ値の最後の160bitsがアドレスである。実際に目にするのは、これを変換した42文字のアドレスである。

##Assert（アサート）
ソリディティー（イーサリウムのプログラミング言語）では、assert(false)が呼び出されると、残りのGasが全て使用されて、変更が全て巻き戻される。もし、assert()の呼び出しが失敗してしまったら、プログラミングに重大な間違いがあるということになる。
assert()は、プログラミングの中で絶対に間違いが起こってはいけない部分に使う。


##BIP（ビットコイン改善提案）
ビットコインの改善に関する、ビットコインコミュニティーからの提案。

##Block（ブロック）
ヘッダー（データの先頭に付けられる細くデータ）、トランザクション（取引）、そして「ommer(おじデータ）」がひとまとまりになったもの。ブロックは、マイナーによってイーサリウムのネットワークに追加される。

##Blockchain（ブロックチェーン）
ブロックチェーンとは、情報のブロックを連鎖させることで、データの改ざんを不可能にした技術のことである。ビットコインやイーサリウムなどの仮想通貨はブロックチェーンの技術を基にしている。
全てのブロックが鎖のように繋がっており、その鎖を辿っていくとジェネシスブロック（始祖ブロック）までたどり着くことができる。
イーサリウムにおいては、計算競争マイニング（PoW）を採用し、その計算力を利用してセキュリティーを担保している。

##Bytecode（バイトコード）
バイトコード (bytecode) は、仮想マシンによる実行のために設計された、実行可能なプログラムのバイナリ表現である。

##Compile（コンパイル）
高レベルな言語（人間が読める言語）を、機械が実行しやすい形式に変換すること。

##Consensus（コンセンサス）
全てのノードが、最も正当な最新ブロックを共有している状態のこと。

##Consensus rules（コンセンサスルール）
最も正当なブロックを判断するにあたっての、ネットワーク上で共有された基準のこと。

##Contract（コントラクト）
イーサリウム上で実行可能なコードのことである。
コントラクトはイーサリウムのブロックチェーン上のコントラクトアカウント上にあり、コントラクトアドレスで参照される。

##Contract account（コントラクト　アカウント）
私的所有アカウント（EOA）もしくはコントラクトアカウントからトランザクション（取引）を受け取った時にそれが持つコードを実行することができるアカウントのこと。コントラクトアカウントも、私的所有アカウントと同じく42文字のアドレスを持つ。コントラクトアカウントは秘密鍵を持たず、そのアカウントの所有・管理の方法はそのコントラクトアカウントが作られた時のコードによってのみ決まる。ブロックチェーン上に記録され、後のコードの変更は不可能である。

##Contract creation transaction（コントラクト生成トランザクション）
コントラクトをイーサリウムブロックチェーンに登録する時の特別なトランザクション（取引）のこと。

##DApps（ダップス）（分散型アプリケーション、仮想通貨アプリケーション）
ブロックチェーンの技術を応用したアプリケーションのこと。（ウェブアプリケーションが多い）

##Deed（ディード）
ERC721で規定されている、代替不可能トークン（NFT）の規格。

##Fungible（ファンジブル）
代替可能な、という意味。一万円札は代替可能であるが、土地の所有権や芸術品は代替不可能である。
ビットコインやイーサリウムほかほとんどの仮想通貨は代替可能である。

##Difficulty（ディフィカルティ）
マイニングがどれだけ難しいのかという指標。

##Digital signature（電子署名）
秘密鍵を用いて、署名をすること。暗号学的にアイデンティーを保証することができる。

##ECDSA（楕円曲線DSA）
イーサリウムの安全性を保つための暗号アルゴリズムのこと。

##EIP（イーサリウム改善提案）
イーサリウムの改善のために、コミュニティーに公開される書類のこと。

##Entropy（エントロピー）
暗号学的なランダムさのこと。
秘密鍵を生成する時、エントロピーが大きいほど安全性が高いと言える。

##EOA（私的所有アカウント）
秘密鍵を用いて利用するアカウントのこと。仮想通貨ウォレットのアカウントは私的所有アカウント（EOA）である。

##ERC（コントラクト実装規格）
イーサリウムにおける、特定の種類のコントラクトの実装規格を定めた基準のこと。

##Ether（イーサ）
イーサリウム上の仮想通貨。通貨としての役割の他に、コントラクト実行のためのコストもイーサで支払われる。

##Event（イベント）
ウェブアプリケーションを作る時に使う。イベントが呼び出されると、フロントエンドにその旨が伝えられる。

##EVM（イーサリウム仮想マシン）
イーサリウムは、「ワールドコンピューター」と呼ばれることがある。イーサリウムに参加している多数のノードが一台のコンピューターを形成しているのだ。その仮想的なコンピューターをEVMという。

##Fallback function（フォールバック関数）
データや関数の名前がない、デフォルトの関数のこと。https://tomokazu-kozuma.com/about-fallback-function/

##Fork（フォーク）
ブロックチェーンのプロトコルの変更によって他のチェーンが作られること、もしくはマイニングの途中で二つ以上のチェーンが偶発的にできてしまうことを指す。

##Gas （ガス）
スマートコントラクトを呼び出すときの手数料。

##Gas limit（ガスリミット）
トランザクションで費やしても良いガスの最大値。

##Genesis block（始祖ブロック）
仮想通貨を作る際の、最初のブロックのこと。イーサリウムの始祖ブロックは2015年7月に作られた。

##Geth（ゲス）
Go Ethereum。イーサリウムクライアントの実装の一つ。

##Hard fork（ハードフォーク）
一つの仮想通貨が二つに分裂すること。新しいプロトコルに従わないノードがある時にハードフォークと言う。

##Hash（ハッシュ）
暗号学的ハッシュ関数を用いて、任意の長さの入力から作り出される固定長さの文字列のこと。

##HD wallet（HDウォレット）
一つの秘密鍵（シード）から、アカウントをたくさん作り出すことができるウォレット。

##HD wallet seed（HDウォレットシード）
HDウォレットのバックアップをするために、紙に書き下して保存するパスワードのこと。イーサリウムの場合、英単語12個をパスワードにする。


##KDF（鍵導出関数）
パスワードを用いて鍵を導出する関数。

##Keccak-256 （ケチャック256）
イーサリウムで使われるハッシュ関数。

##Library（ライブラリー）
特殊な種類のコントラクトで、過去にデプロイされたコードとしてEVMに残り、読み取りのみ可能な状況で残されたもの。

##Lightweight client（ライトウェイト　クライアント）
データの保存や、バリデーション（正当性の確認）をしないクライアントのこと。フルノードの対義語。ビットコインで言うところのSPV。

##Merkle Patricia Tree（マークル木）
イーサリウムに使われるデータ構造であり、キー→バリューのセットを効率的に保存することができる。

##Message（メッセージ）
EVMの内部だけで送信されるトランザクションのこと。

##Mining（マイニング）
新しいブロックを作り出すこと。そのためには暗号学的パズルを解く必要があり、膨大な計算量が必要になる。

##Miner（マイナー）
マイニングをするノード。

##Mist（ミスト）
イーサリウム公式の、ウォレット。

##NFT（代替不可能トークン）
それぞれのトークンがオリジナルであって、相互に交換が不可能なもの。

##Node（ノード）
イーサリウムに参加しているコンピューター（ソフトウェア）のこと。

##Nonce（ナンス）
一度しか使われない値のこと。
二種類のナンスが存在し、一種類目はあるアドレスのトランザクションの回数を表したもの（トランザクションの回数をカウンターしている）https://kb.myetherwallet.com/transactions/what-is-nonce.html
二種類目は、計算競争マイニングナンス（PoW Nonce）と呼ばれ、計算の競争の中で発見することを目指すランダムな値である。

##Ommer（おじブロック）（Uncle Block）
マイニングにおいて、正当なブロックチェーンから生み出されたものであるが、計算競争に勝てずに孤児ブロックとなったもの。
正当なブロックから見て、「おじ」に見えるので「おじブロック」と呼ぶ。（英語でOmmerは「おじ、おば」と性別を区別しない表現であるが、英語でも「unble block（おじブロック）」と呼ばれている）

##Private key (秘密鍵）（＝Secret Key）
アカウントの所有権を証明するために、電子署名（digital signature）を発行する際に使われる。秘密鍵の所有と、アカウントの所有は同義である。

##Proof of Work(計算競争マイニング）
PoWともいう。ブロックチェーンにおいて、正当なブロックを決める際の方法として、計算量に応じてマイニングが有利になる方式のこと。計算問題を最も早く解けた人が勝者となる。

##Proof of Stake（プルーフオブステーク）
PoSとも。マイニングに参加したい人は仮想通貨を預け、その参加者の中で正当な次のブロックを決める方式である。

##Public key（公開鍵）
秘密鍵から作られる、公開される鍵のこと。秘密鍵で作られてた電子署名がその秘密鍵から作られたかどうかを証明するために使われる。

##Re-entrancy attack(再帰的攻撃）
攻撃者が、ターゲットのコントラクトを再帰的に読んで攻撃すること。例えば、残高を変更する部分の関数を呼ばないまま出金する関数を呼び続けたりすることである。

##Reward（報酬）
マイニングに成功した人が受け取る報酬のこと。

##Secret Key（秘密鍵）　（＝Privte key）

##SHA
ハッシュ関数。

##Smart Contract
プログラミングによって、自動的に取引されること。

##Solidity（ソリディティー）
イーサリウムのプログラミング言語の中でも、最も一般的に使われている言語。

##Swarm（スワーム）
イーサリウムを利用した、ストレージサービス。Web3、ウィスパーと一緒に仮想通貨ウェブアプリケーションに用いられる。

##Testnet（テストネット）
イーサリウムのプログラミングのテストのためのブロックチェーン。無料で使うことができる。

##Transaction（トランザクション）
イーサリウムのブロックチェーンに提出されるデータのこと。送り主と送り先のアドレスが必ず記載され、そのほかにガス（手数料）の上限などが記載されている。

##Truffle（トリュフ）
イーサリウムの開発用のフレームワーク

##Turing complete（チューリング完全）
コンピュータでできそうなことはなんでもできる、と数学的に保障されていること。
ビットコインは送金に特化しているのに対して、イーサリウムはチューリング完全であることをウリにしていた。

##Vitalik Buterin（ビタリク・ブテリン）
ロシア系カナダ人で、イーサリウムの設計者・開発者

##Wallet（ウォレット）
秘密鍵を保存して、電子署名を作成するソフトウェア。コールドウォレット、ホットウォレット、ウェブウォレット、モバイルウォレットなど性質によって呼び方がある。

##Web3
仮想通貨を利用したウェブアプリケーションを作る際の、ライブラリーのこと。次の世代のWEBを目指すという意味から、この名前になった。

##Whisper（ウィスパー）
DApp (分散型アプリケーション) が互いに通信するための通信プロトコル。
https://github.com/ethereum/wiki/wiki/%5BJapanese%5D-Whisper


##Zero address （ゼロアドレス）
ゼロのみからなるアドレスであり、コントラクト生成トランザクションの受け取り先に設定される。


####最後に
間違い、「この和訳はおかしい」等のご指摘お待ちしています。