中級者用語を調べる
ナンスとは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 4 分
結論
ナンスは「一度だけ使う数値」のことで、ブロックチェーンでは2つの意味で登場します。マイニングでは条件を満たすハッシュを探すために動かす値、アカウントでは取引の連番です。どちらも同じ内容の処理が二重に成立しないようにするための仕組みです。
要点
- マイニングのナンスはブロックヘッダ内の変動値
- アカウントのナンスは送信した取引の通し番号
- 同じナンスの取引は1つしか確定しない
- ナンスが飛ぶと後続の取引が処理待ちで止まる
定義
一度きりの使用を前提とした数値。プルーフ・オブ・ワークではハッシュ計算の入力として総当たりされ、アカウント型のチェーンでは取引の順序と重複を管理する連番として使われる。
ビットコインのブロックヘッダには32ビットのナンス欄があります。マイナーはここを変えながらハッシュを計算し、difficultyが定めた基準を下回る値が出るまで試行を繰り返します。32ビットでは足りないため、実際にはコインベース取引の一部やタイムスタンプも併せて動かし、探索範囲を広げています。
イーサリアムなどのアカウント型チェーンでは、各アドレスが「これまで何件送信したか」を示すナンスを持ちます。0から順に使われ、同じナンスの取引はネットワーク全体で1件しか確定しません。手数料を上げて送り直す「置き換え」が成立するのは、同じナンスで別の取引を出しているからです。
この連番は必ず順に処理されるため、ナンス5の取引が未確定のまま残っていると、ナンス6以降は条件が整っても実行されません。ウォレットで「取引が詰まった」状態になるのはこのためで、同じナンスで手数料を上げた取引を送り直すのが標準的な解消手順です。
注意点
- · 手数料を上げた再送は、元の取引と同じナンスを指定しないと二重送金になりうる
- · ナンスを手動で書き換えられるウォレットでは、番号を飛ばすと以降の取引が止まる
- · 取引が消えたように見えても、同じナンスの別取引が確定しない限り元の取引は成立しうる