使用端末
MacBook Pro (16-inch, 2019)
プロセッサ 2.3 GHz 8コアIntel Core i9
メモリ 16 GB 2667 MHz DDR4
golang install
brew install go
go version go1.13.6 darwin/amd64
Geth install
brew tap ethereum/ethereum
brew install ethereum
Gethバージョン確認
geth version
イーサリアムブロックチェーンへの初回同期
全てのトランザクションのデータ(フルノード)を実行するのに必要な最低要件と推奨仕様は以下である。
※ デフォルト設定の場合
最低要件
- CPU: 2コア以上
- 空き容量: 少なくとも80GB以上
- RAM: SSDの場合は4GB
- インターネット回線: 8Mbpsのダウンロードスピード
推奨仕様
- 高速CPU: 4コア以上
- RAM: 16GB以上
- 高速SSD: 少なくとも500GBの空き容量
- インターネット回線: 25Mbps以上のダウンロードスピード
イーサリアムブロックチェーンをフルノード同期するのは時間がかかるため後回しに
4章 暗号化
秘密鍵をどのように保存するか
イーサリアムには、外部所有アカウント(EOA)とコントラクトアカウントの二つのアカウントが存在。
EOAでは、秘密鍵、イーサリアムアドレス、デジタル署名によってそのアカウントに紐付けられたイーサの所有権が確立される。
秘密鍵の生成プロセスはオフラインで生成されるため、真にランダムな数字であることが必要である。
公開鍵暗号
public key, private key
情報を保護するためにある固有の鍵が使用される。
これらは、ある方法に計算するのは簡単だが、逆方向に計算するのは難しいという特徴を持った関数によって生成される。
数学的な法則によって守られた機密情報や偽造不可能なデジタル署名などの暗号が作成できる。
トラップドア関数
関数を逆算する近道として利用できる秘密情報の一部が提示されない限り、関数の逆を辿ることが難しい。
トラップドアとは、暗号開発者が独自に、暗号が簡単に解読できる仕掛けを講ずることである。
ゲームソフトで言うところの「隠しコマンド」に相当する。
楕円曲線暗号
一方向に計算したものを逆算できないように楕円曲線を利用した暗号。
現代のコンピュータシステムで広く、利用されており、イーサリアム及び他の暗号通貨などの秘密鍵やデジタル署名の基礎となっている。
楕円曲線暗号によって誰でもデジタル署名がトランザクション内容とアクセスが要求されているイーサリアムアドレスに一致しているかを確認し、トランザクションが有効であるものかを検証することができる。
秘密鍵があれば公開鍵を計算することは容易だが、逆は不可能。
イーサリアムは、ビットコインと同じsecp256k1という名前で定義された固有の楕円曲線と定数のセットを使用している。