Mainnet and Testnet - 本番のネットワークと試験用のネットワーク

bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 と tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx は、同じ公開鍵(後の実験で使う鍵)から作った Bitcoin のアドレスです。先頭の bc1 はメインネット、tb1 はテストネットのアドレスであることを示し、途中の文字列は同じです。 ...

2026年11月10日 · 更新: 2026年11月12日 · 14 分 · nchika

Testnet History - テストネットが入れ替わってきた理由

テストネット(testnet)は、メインネットとほぼ同じソフトウェアと規則で動く、試験用の公開のネットワークです。メインネット・テストネット・ローカルのチェーンの違いは Mainnet and Testnet で説明しました。 ...

2026年11月11日 · 更新: 2026年11月12日 · 10 分 · nchika

Proof of Authority - 許可された署名者だけがブロックを作る

Proof of Authority(PoA)は、あらかじめ許可した署名者(authority)だけにブロックの作成を認める合意の方式の総称です。ブロックは、トランザクションをまとめて前のブロックにつなげた単位です(Blockchain Basics)。 ...

2026年11月10日 · 更新: 2026年11月12日 · 27 分 · nchika

Gas and EIP-1559 - 計算量の単位と、ブロックの混み具合で動く base fee

gas は、Ethereum でトランザクションの実行に掛かる計算量を測る単位です。EVM(Ethereum Virtual Machine)の命令ごとに gas の量が決まっており、トランザクションは「使ってよい gas の上限」と「1 gas あたりに払う額」を書いて送ります。トランザクションをまとめた単位がブロックで、ネットワークに参加する全てのノード(Ethereum のソフトウェアを動かすコンピューター)がブロックのトランザクションを実行します。ブロック 1 つに入るトランザクションは、gas の合計にも上限があり、これが全ノードが 1 ブロックごとに実行する量の上限になります。 ...

2026年11月11日 · 更新: 2026年11月12日 · 16 分 · nchika

Ethereum Account Model - 残高と通し番号を状態として持つモデル

アカウントモデル(account model)は、アドレスごとに残高などの状態を保存し、トランザクションがその状態を書き換える形で送金を表すモデルです。Ethereum が採用しています。UTXO で説明した Bitcoin の表し方には残高という保存された値が無く、コインは使い切りの出力として存在します。同じ送金でも、アカウントモデルは保存された数値を書き換え、UTXO モデルは出力を作り直します。 ...

2026年8月11日 · 更新: 2026年11月12日 · 13 分 · nchika

Ethereum Transaction - 送信元は署名から決まり、priority fee は base fee との和が maxFeePerGas 以下の間、書いた値のまま払われる

Ethereum のトランザクション(transaction)は、ETH の送金、スマートコントラクトの呼び出しと作成をブロックチェーンのネットワークに依頼する、署名済みのデータです。ウォレットの確認画面で承認した時や、アプリが ethers などのライブラリで送った時に作られます。 手数料の欄には、上限という名前の値が 2 つあります。ところが、片方は条件を満たす間、上限ではなく書いた値がそのまま払われます。 ...

2026年8月11日 · 更新: 2026年11月13日 · 18 分 · nchika

Ethereum Address - アドレスの決まり方

Ethereum のアドレスは、送金の宛先やプログラムの呼び出し先を指す 20 バイトの値で、0xf39Fd6e5… のような 16 進の文字列で書きます。銀行の口座番号と違い、誰かに申請して払い出してもらう番号ではありません。手元にある材料から、誰でも同じ計算で求められます。 ...

2026年11月10日 · 更新: 2026年11月12日 · 14 分 · nchika

Replay Protection - 署名済みのデータを別の場所や時点で使い回させない仕組み

リプレイ攻撃(replay attack)は、署名した人が意図していない場所や時点で、正しく署名されたデータをもう一度使わせる攻撃です。デジタル署名が示すのは、誰が署名したかと、署名の後に中身が変わっていないことです。どこで何回使ってよいかは、署名した中身に書いていない限り示しません。 Ethereum のトランザクションは、送り主が秘密鍵で署名したバイト列で、mempool やブロックを通じて誰でも読めます。読めたバイト列は、誰でも別のノードへそのまま送り直せます。 ...

2026年11月11日 · 更新: 2026年11月14日 · 17 分 · nchika

EVM - Ethereum のトランザクションを実行する仮想マシンの全体像

EVM(Ethereum Virtual Machine)は、Ethereum のノードが、トランザクションで呼び出されたコントラクトのコードを実行する仮想マシンです。Solidity などで書いたプログラムはバイトコードにコンパイルされ、EVM がその命令を 1 つずつ実行して、残高やストレージの値を更新します。 ...

2026年11月10日 · 更新: 2026年11月14日 · 25 分 · nchika

EVM Opcode History - 更新ごとに増えた命令とプリコンパイル

EVM(Ethereum Virtual Machine)は、Ethereum のノードがコントラクトのコードを実行する仮想マシンです。デプロイしたコントラクトのコードは書き換えられません。では、そのコードを実行する EVM の命令の一覧(命令表)は、2015 年の公開から変わっていないのでしょうか。 ...

2026年11月11日 · 更新: 2026年11月14日 · 14 分 · nchika

Smart Contract - 書き込みは検証するノード全てが同じ計算をやり直すプログラム

スマートコントラクト(smart contract)は、Ethereum などのブロックチェーンに置いて動かすプログラムです。コードとデータはチェーン上の 1 つのアドレスにまとまっていて、誰でもトランザクションを送って関数を呼べます。ERC-20 で作るトークンの残高表も、交換所の AMM も、コントラクトとして書かれています。 ...

2026年11月3日 · 更新: 2026年11月14日 · 17 分 · nchika

ERC-4337 - プロトコルを変えないアカウント抽象化

ERC-4337 は、Ethereum のプロトコルを変えずに、スマートコントラクトのアカウントをトランザクションの送り主のように使えるようにする規格です。 Ethereum のアカウントには、秘密鍵で署名してトランザクションを送る EOA(Externally Owned Account)と、コードを持つコントラクトの 2 種類があります。チェーンにトランザクションを送れるのは EOA だけです。コントラクトで作ったアカウント(スマートアカウント)は、署名の確かめ方を自分のコードで決められるので、複数人の承認や鍵の差し替えを組み込めます。しかし、自分ではトランザクションを送れません。 ...

2026年11月10日 · 更新: 2026年11月12日 · 20 分 · nchika

ERC-721 - 1 つずつ区別できるトークン(NFT)の所有と移転

ERC-721 は、Ethereum 上で 1 つずつ区別できるトークンを扱うための規格です。このトークンは NFT(Non-Fungible Token、代替できないトークン)と呼ばれ、ゲームのアイテム、会員証、作品の所有証明などに使われます。 ...

2026年11月10日 · 更新: 2026年11月12日 · 23 分 · nchika

ERC-20 - 残高はコントラクトが持つ表、approve は引き出しを任せる許可

交換サービスや貸し借りのサービスに、米ドルと同じ値で動く暗号資産の USDC を預けようとすると、ウォレットは送金の前に「このサイトに USDC の使用を許可しますか」と聞いてきます。許可の画面には金額の欄があり、既定で無制限になっているサービスもあります。開発する側も同じ所で迷います。ユーザーから受け取るコードを書くと、テスト用のトークンでは通るのに、USDT を渡すとトランザクションが取り消されることがあるからです。 ...

2026年11月3日 · 更新: 2026年11月14日 · 19 分 · nchika

ERC-1271 - 秘密鍵を持たないアカウントの署名

Ethereum のアカウントには、2 つの種類があります。秘密鍵を持つ人が操作する EOA(Externally Owned Account)と、デプロイしたコードで動くコントラクトのアカウント(contract account)です。複数人の承認で動くマルチシグや、署名の方法をコードで決めるスマートアカウントは、後者のコントラクトのアカウントで、秘密鍵を持ちません。 ...

2026年11月11日 · 更新: 2026年11月12日 · 11 分 · nchika

Safe - コントラクトで署名を数えるマルチシグ

Safe(旧 Gnosis Safe)は、Ethereum でマルチシグを実現するコントラクトのウォレットです。「所有者 3 人のうち 2 人」のように、登録した所有者のうち必要数の署名が揃った時だけ、Safe が持つ資産を動かします。取引所や DAO(Decentralized Autonomous Organization、コントラクトで運営する団体)の資金の管理に使われています。 ...

2026年11月11日 · 更新: 2026年11月12日 · 12 分 · nchika

EIP-712 - 型付きの署名と permit

Ethereum の署名は、トランザクション(transaction)を送る時だけに使うものではありません。サイトへのログインやトークンの利用承認のように、トランザクションを送らずにメッセージだけに署名させる場面があります。これを「オフチェーン署名」と呼びます。 ...

2026年11月10日 · 更新: 2026年11月12日 · 17 分 · nchika

ERC-7562 - アカウント抽象化の検証に Bundler が課す規則

ERC-7562 は、Ethereum のアカウント抽象化(account abstraction)の仕組みである ERC-4337 で、Bundler がアカウントの検証のコードに課す規則です。検証のコードが使って良い命令と、読み書きして良い storage(コントラクトが持つ永続的な領域で、32 バイトの番号=slot ごとに値を置く)を決めています。 ...

2026年11月10日 · 更新: 2026年11月12日 · 28 分 · nchika

Oracle - レンディングが読む価格をプールの価格・TWAP・プッシュ型で比べる

オラクル(oracle)は、チェーンの外にある価格などの情報をチェーンに書き込み、スマートコントラクトから読めるようにする仕組みです。暗号資産を担保に別の資産を貸すレンディングプロトコル(lending protocol)は、担保がいくらに当たるかをオラクルの価格で計算し、貸せる額と、担保を売って返済に充てる清算の時期を決めます。以下では、これを単にレンディングと呼びます。 ...

2026年11月8日 · 更新: 2026年11月13日 · 19 分 · nchika

Ethereum Hard Forks - EVM の規則は全ノードで同時に切り替わる

Ethereum では、ネットワークに参加する多数のコンピュータ(ノード)が、利用者の送ったトランザクションを同じ規則で実行し、結果が一致したものだけをブロック(トランザクションをまとめた記録の単位)として受け入れます。 ...

2026年11月10日 · 更新: 2026年11月12日 · 26 分 · nchika

Metamorphic Contract - 同じアドレスでのコードの置き直し

Ethereum のスマートコントラクト(チェーン上で動くプログラム。以下、コントラクト)には、一度置いたコードを書き換える命令がありません。そのため、利用者は、あるアドレスのコードを読んだり監査の結果を確認したりしてから、そのアドレスに資産を預けたり権限を与えたりします。後からコードが変わらないことが前提です。 metamorphic contract は、この前提を崩す手法です。コントラクトを消す命令 SELFDESTRUCT で消してから作り直し、同じアドレスに別のコードを置きます。2024 年 3 月の Ethereum の仕様の更新(Cancun)より前は、この手法が使えました。 ...

2026年11月11日 · 更新: 2026年11月12日 · 7 分 · nchika

Reentrancy - 送金の途中で同じ関数を呼び直される攻撃

リエントランシー(reentrancy)は、スマートコントラクトが外部のアドレスへ ETH を送ったり、別のコントラクトを呼んだりしている途中に、呼ばれた側から元のコントラクトの関数を呼び直されることです。残高を減らす前に送金する実装では、呼び直された関数がまだ減っていない残高を読み、同じ預け金を何度も払い出します。この穴を突く攻撃をリエントランシー攻撃と呼びます。 ...

2026年11月11日 · 更新: 2026年11月12日 · 14 分 · nchika

Upgradeable Proxy - DELEGATECALL でコードを借りて更新するコントラクト

アップグレード可能なプロキシ(upgradeable proxy)は、スマートコントラクト(チェーン上で動くプログラム)について、アドレスとデータを変えずに処理だけを後から差し替えるための構成です。 Ethereum では、一度置いたコントラクトのコードを書き換えられません。そこで、利用者が呼ぶ入口のコントラクト(プロキシ)と、処理のコードを持つ別のコントラクト(実装)に分け、プロキシが覚えている「実装のアドレス」だけを書き換えます。 ...

2026年11月10日 · 更新: 2026年11月12日 · 22 分 · nchika

Blob - 大きなデータなら calldata より安く、コントラクトからは読めないデータ置き場

blob は、Ethereum のトランザクションに添えて送る、1 個 131,072 バイト(128 KiB)のデータです。2024 年 3 月 13 日の Dencun アップグレードで、EIP-4844 として入りました。blob を添えたトランザクションは型の番号が 0x03 で、型の一覧は Ethereum Transaction で説明しています。 ...

2026年11月11日 · 更新: 2026年11月13日 · 16 分 · nchika

Commit-Reveal - 中身を隠したまま約束し、締め切りの後に明かす

スマートコントラクトで、入札額を最後まで伏せる封印入札(sealed-bid)のオークションを開くとします。Alice が「50 で入札する」というトランザクションを送ると、そのトランザクションはブロックに入る前に mempool(ブロックに入る前のトランザクションを置く場所)を通じてネットワークに広まり、誰でも中身を読めます。 Bob はそれを見てから 51 で入札し、手数料を上乗せすれば、後から送った自分のトランザクションを Alice より前に並べてもらえます。手元のローカルチェーンで試すと、Bob の入札が先に処理され、Alice の入札は「too low」で取り消されました。 ...

2026年11月11日 · 更新: 2026年11月14日 · 14 分 · nchika

Rollup - 実行を外へ出し、結果をチェーンで確定する

Ethereum では、ネットワークに参加する多数のノード(トランザクションを検証するコンピュータ)が、全てのトランザクションを同じ順に実行して結果を照合します。誰でも結果を確認できる代わりに、1 秒に処理できるトランザクションの数が限られ、混み合うと手数料が上がります。 ...

2026年11月8日 · 更新: 2026年11月13日 · 13 分 · nchika

PBS - ブロックの中身を作る builder と、署名する proposer の分業

Proof of Stake の Ethereum では、ブロックを作る順番が決まっています。時間を 12 秒ごとの slot(スロット)に区切り、slot ごとに 1 つのバリデータ(ETH を預けてブロックの提案と投票を担う参加者)を proposer(ブロックの提案者)に選びます。proposer は、その slot のブロックに入れるトランザクションと並び順を決め、署名してネットワークに送ります。 ...

2026年11月11日 · 更新: 2026年11月12日 · 13 分 · nchika

MEV - トランザクションの並び順から生まれる価値と利用者の損失

ブロックチェーンでは、利用者が送ったトランザクションはすぐには実行されません。いったんトランザクションの置き場に集められ、ブロックを作る者がその中からトランザクションを選び、順番に並べてブロック(トランザクションをまとめた記録の単位)にした時に、上から順に実行されます。 ...

2026年11月10日 · 更新: 2026年11月14日 · 16 分 · nchika

Bridge の事故 - 預け入れの確認が破られた 4 件

Cross-Chain Bridge(以下、bridge)は、あるブロックチェーン(以下、チェーン)で資産が金庫に預けられたことを確認して、別のチェーンで同じ量のラップドトークン(wrapped token)を発行する仕組みです。ラップドトークンを焼却(消すこと)すると、元のチェーンの金庫から資産が払い出されます。預ける側を source chain、ラップドトークンを受け取る側を destination chain と呼びます。 ...

2026年11月11日 · 更新: 2026年11月12日 · 8 分 · nchika

Cross-Chain Bridge - 別のチェーンの預け入れを確かめて資産を発行する

Cross-chain bridge(以下、bridge)は、あるブロックチェーンで起きた預け入れの事実を別のブロックチェーンに伝えて、資産を移す仕組みです。 ブロックチェーン(以下、チェーン)は、参加するコンピュータが同じトランザクションの記録を共有する台帳で、Ethereum や Bitcoin がその例です。チェーンごとに台帳は別々なので、Ethereum の通貨である ETH は Ethereum の台帳の中にしか存在しません。 ...

2026年11月10日 · 更新: 2026年11月14日 · 13 分 · nchika