Ethereum Address - アドレスの決まり方
0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 は、開発用のローカルノードである Anvil が最初に用意するテスト用アカウントのアドレスです。chain ID(チェーンを区別する番号)を 31337 にしても 31338 にしても、このアカウントは同じアドレスで現れます。 ...
0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 は、開発用のローカルノードである Anvil が最初に用意するテスト用アカウントのアドレスです。chain ID(チェーンを区別する番号)を 31337 にしても 31338 にしても、このアカウントは同じアドレスで現れます。 ...
Snowman は、Avalanche のチェーンが次に繋ぐブロックを決める合意プロトコルです。各ノードは、無作為に選んだ少数のバリデータ(validator、合意に参加するノード)に「どのブロックを支持しているか」を尋ね、同じ答えが規定の回数だけ続いたらブロックを確定します。PBFT(Practical Byzantine Fault Tolerance)や CometBFT(Cosmos 系のチェーンが使う合意エンジン)のように、全員の票を集めて 2/3 を数えることはしません。 ...
マルチシグ(multisig、multi-signature)は、登録した n 個の鍵のうち m 個の署名が揃った時だけ資産を動かせるようにする仕組みです。「3 個のうち 2 個」なら 2-of-3 と書きます。1 個の鍵を盗まれても送金されず、1 個を失くしても残りの 2 個で資産を動かせます。 ...
ERC-4337 は、Ethereum のプロトコルを変えずに、スマートコントラクトのアカウントを取引の送り主のように使えるようにする規格です。署名の検証方法をアカウントのコードで決められるので、複数人の承認や鍵の差し替えを組み込めます。手数料を別の誰かに肩代わりしてもらうこともできます。 ...
ERC-721 は、Ethereum 上で 1 つずつ区別できるトークンを扱うための規格です。このトークンは NFT(Non-Fungible Token、代替できないトークン)と呼ばれます。ERC-20 がアドレスごとの数量を記録するのに対して、ERC-721 は tokenId という番号ごとに所有者を記録します。ゲームのアイテム、会員証、作品の所有証明などに使われます。 ...
EIP-712 は、Ethereum で構造を持つデータ(型と項目名の付いたデータ)をハッシュし、署名する手順を定めた規格です。ウォレットは署名を求める画面で spender・value・deadline のような項目を並べて表示でき、コントラクトは同じ手順でハッシュを計算して署名を検証します。ERC-1271 は、秘密鍵を持たないコントラクトのアカウントが「この署名は自分のものとして有効か」を返すための関数の規格です。 ...
ERC-7562 は、ERC-4337 の Bundler が UserOperation を受け付ける前に、検証のコードが使って良い命令と storage を決めた規則です。スマートアカウントの検証(validateUserOp)には任意のコードを書けますが、Bundler が mempool に入れるのは、この規則の範囲で書かれた検証だけです。 ...
Solidity のコンパイラ(solc)を 0.8.19 から 0.8.20 に上げると、ソースを 1 行も変えていないのに、一部のチェーンでデプロイが失敗することがあります。0.8.20 から、出力するバイトコードに PUSH0 という命令が入るようになったからです。 ...
カウンターの increment() を 1 回呼んだだけで、そのコントラクトが以後まともな値を返さなくなることがあります。後述の実験では、呼び出しの前に保存領域の slot 0 にあった 0x…5fbdb2315678afecb367f032d93f642f64180aa3 が、呼び出しの後に末尾が aa4 に増えていました。この値は、カウンターの値ではなく、処理を任せる先のコントラクトのアドレスでした。 ...