ETHスキャン

ETHウォレット・ファインダー

残高があるEthereum (ETH) ウォレットの検索と検出

ウォレット残高確認 (Public RPC)

ETH 残高: -

秘密鍵 (Private Key) 検索モード

スキャン進行状況

発見された結果 (WinnerETH.txt に保存可能)

ETHEREUM TECHNOLOGY GUIDE

Ethereumを理解する。
アルゴリズムからAPIまで。

Ethereumは単なる暗号資産ではありません。 Proof of Stake、EVM、暗号アルゴリズム、 スマートコントラクト、そしてJSON-RPC APIが組み合わさることで、 世界規模の分散型コンピューティング基盤として動作しています。

Proof of Stake EVM Keccak-256 ECDSA JSON-RPC

Ethereumとは何か?

Ethereum(イーサリアム)は、スマートコントラクトを実行できる 分散型ブロックチェーン・プラットフォームです。 ETHはそのネットワーク上で利用されるネイティブ資産であり、 トランザクション手数料やネットワーク参加など、さまざまな役割を持っています。

Ethereumのコンセンサスアルゴリズム

現在のEthereumは Proof of Stake(PoS) をコンセンサスメカニズムとして採用しています。 Ethereumは2022年にProof of WorkからProof of Stakeへ移行しました。

◈

Proof of Stake

ネットワークの検証者(Validator)がETHをステーキングし、 ブロックの検証や提案に参加します。

⚡

Validator

Validatorはトランザクションやブロックを検証し、 Ethereumネットワークのコンセンサス維持に参加します。

ポイント: Proof of Stakeは「暗号ハッシュを大量計算して競争する仕組み」 ではありません。Validator、Consensus Layer、 Execution Layerが協調してネットワークを維持します。

1つのトランザクションはどう動く?

1
署名
Wallet
2
送信
JSON-RPC
3
実行
EVM
4
確定
Consensus

Ethereumで使われる暗号アルゴリズム

Ethereumでは、コンセンサスだけでなく、 アドレス生成、トランザクション署名、 データハッシュなど、複数の暗号技術が使われています。

Keccak-256
Ethereumで広く使用されるハッシュ関数です。 アドレス生成、トランザクションデータ、 スマートコントラクトの関数セレクタなどに利用されます。
ECDSA
楕円曲線暗号を利用した電子署名方式です。 EthereumのEOAによるトランザクション署名などに利用されます。
secp256k1
ECDSAで使用される楕円曲線の一つです。 Ethereumの一般的なEOA鍵ペアでは、 この曲線が利用されます。
RLP / SSZ
Ethereumのデータ構造をエンコードするための技術です。 Execution LayerではRLPが、 Consensus LayerではSSZが重要な役割を持ちます。

Ethereumアドレスはどう作られる?

一般的なEthereumのEOAアドレスは、 秘密鍵から公開鍵を導出し、その公開鍵に対して Keccak-256を適用した結果の末尾20バイトを利用する形で作られます。

Private Key ↓ secp256k1 ↓ Public Key ↓ Keccak-256 ↓ Last 20 Bytes ↓ Ethereum Address

Ethereumアドレスは通常 0xから始まる40桁の16進数で表現されます。 つまり、0xを除いた部分は20バイト=160ビットです。

例

0x71C7656EC7ab88b098defB751B7401B5f6d8976F

EVM — Ethereum Virtual Machine

EVMはEthereumのスマートコントラクトを実行するための 仮想マシンです。 Solidityなどで記述されたスマートコントラクトはコンパイルされ、 EVMが理解できるバイトコードとして実行されます。

⌘

Smart Contract

ブロックチェーン上で決められたルールに従って プログラムを実行します。

▣

Bytecode

Solidityなどからコンパイルされた EVM実行用のコードです。

⛽

Gas

EVMで計算処理を実行するための リソース単位です。

Ethereum APIとは?

WebアプリケーションやバックエンドからEthereumへ接続する場合、 最も基本となるインターフェースの一つが JSON-RPC APIです。

EthereumのExecution Clientは共通のJSON-RPC仕様を実装しており、 アプリケーションはノードを通じてブロック情報、 アカウント情報、トランザクション、スマートコントラクトなどへアクセスできます。

eth_blockNumber

最新ブロック番号

Ethereumネットワークの最新ブロック番号を取得します。

eth_getBalance

ETH残高

指定したアドレスのETH残高を取得できます。

eth_getTransactionByHash

Transaction検索

トランザクションハッシュから詳細情報を取得します。

eth_call

Contract Call

状態を変更せずにスマートコントラクトの view / pure系処理などを呼び出します。

eth_getLogs

Event Logs

スマートコントラクトが発行したイベントログを取得します。

eth_sendRawTransaction

Signed Transaction

署名済みトランザクションをネットワークへ送信します。

⚡ Ethereum JSON-RPCを体験する

下のボタンを押すと、公開RPCエンドポイントへ JSON-RPCリクエストを送信し、現在のブロック番号を取得します。

Ready...

Ethereum開発を支えるAPI・ライブラリ

JS

ethers.js

JavaScript / TypeScriptからEthereum、 Wallet、Contract、Providerなどを扱うための 人気のライブラリです。

W3

web3.js

JavaScriptからEthereumノードや スマートコントラクトへアクセスするための Web3ライブラリです。

PY

web3.py

Python環境からEthereumノード、 トランザクション、スマートコントラクトなどを 操作できます。

RPC

JSON-RPC

ライブラリのさらに下のレイヤーで Ethereumノードと直接通信するための 標準的なインターフェースです。

JSON-RPCの基本形

Ethereum JSON-RPCでは、JSON形式のリクエストを Ethereumノードへ送信します。

{ "jsonrpc": "2.0", "method": "eth_blockNumber", "params": [], "id": 1 }

例えば eth_blockNumber を呼び出すと、ノードは現在のブロック番号を 16進数形式で返します。

Ethereumの全体像

┌────────────────────────────────────┐ │ User / dApp │ └──────────────────┬─────────────────┘ │ ▼ ┌────────────────────────────────────┐ │ Wallet / Web3 Library │ │ ethers.js / web3.js etc. │ └──────────────────┬─────────────────┘ │ ▼ ┌────────────────────────────────────┐ │ Ethereum JSON-RPC │ └──────────────────┬─────────────────┘ │ ┌────────┴────────┐ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ │ Execution Layer │ │ Consensus Layer │ │ EVM │ │ Proof of │ │ Smart Contract │ │ Stake │ └────────┬────────┘ └────────┬────────┘ │ │ └─────────┬─────────┘ ▼ ┌─────────────────┐ │ Ethereum Network│ └─────────────────┘

まとめ

Consensus

EthereumはProof of Stakeを採用しています。

Cryptography

Keccak-256、ECDSA、secp256k1などの 暗号技術が利用されています。

Execution

スマートコントラクトはEVM上で実行されます。

API

Ethereumノードとの基本的な通信には JSON-RPCが利用できます。

Ethereumを理解するときは、 「ETHという資産」だけを見るのではなく、 Consensus Layer、Execution Layer、EVM、暗号技術、 JSON-RPC APIがどのようにつながっているか を見ることが重要です。