Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ブロックヘッダーについてさらに詳しく | ブロックとトランザクション
ブロックチェーン入門

bookブロックヘッダーについてさらに詳しく

メニューを表示するにはスワイプしてください

ブロックヘッダーを詳しく探る前に、まずビッグエンディアン形式とリトルエンディアン形式の違いを理解しておく必要があります。

リトルエンディアンとビッグエンディアン

まず、エンディアンとは何かを理解する必要があります。

Note
さらに学ぶ

エンディアンとは、コンピュータのメモリ内でバイト(1バイトは8ビットに相当)が大きなデータ型の中でどのような順序で配置されるかを指します。

ビッグエンディアン形式は、最上位バイトを最初に格納する方式であり、人間が通常数字を読む方法と一致しています。例として10進数の234567890を使用し、Pythonで16進数と2進数に変換し、その結果を出力します:

123
decimal_number = 234567890 print(hex(decimal_number)) print(bin(decimal_number))
copy

コンピュータは整数をバイト単位で格納し、2桁の16進数ごとに1バイトに対応するため、偶数桁の数字が必要です。今回の数値の16進表現0xDFB38D27桁なので、左側にゼロ0を追加する必要があります。結果として0x0DFB38D2となり、8桁(ちょうど4バイト)となり、値は同じです。

同様に、2進数は28ビットで、8ビットごとに1バイトに対応するため、8で割り切れるビット数にするために左側にゼロ0を4つ追加します。結果として0b00001101111110110011100011010010となり、32ビット(ちょうど4バイト)となり、値は同じです。

Pythonを使うことで、ビッグエンディアン形式が得られ、手動で変換した場合も同じ結果となります。数値の表現は以下の通りです:

  • 16進数: 0x0DFB38D2
  • 2進数: 0b00001101111110110011100011010010

ビッグエンディアン形式を理解するために、以下の表を見てみましょう:

一方、リトルエンディアン形式は最下位バイトを最初に格納し、直感的な順序を逆にします:

ご覧のとおり、リトルエンディアン形式でのこの数値は次のようになります:

  • 16進数では 0xD238FB0D

  • 2進数では 0b11010010001110001111101100001101

ブロックヘッダーに戻る

まとめると、ヘッダーは正確に80バイトで構成されており、6つのデータフィールドが含まれています。各フィールドはリトルエンディアン形式です。次に、 ブロック645536のヘッダーを見てみましょう:

ブロックヘッダーは正確に80バイトで構成されているため、ちょうど160個の16進数桁(各バイトは2つの16進数桁に対応)が存在します。例えば、versionフィールドは4バイトを占めるため、8つの16進数桁となります。

以下は、エクスプローラーでのこのブロックに関する詳細情報です。

ここに示されている各フィールドはビッグエンディアン形式で表示されています。例えば、bitsフィールドを確認し、ブロックヘッダー内での表現と比較してみましょう。その16進数表現はビッグエンディアン形式で0x171007eaです。

これをリトルエンディアン形式に変換すると、次のようになります。

ご覧のとおり、これはまさにブロックヘッダーに含まれていた内容です。

1. ブロックチェーンやコンピュータシステムの文脈で、**「エンディアンネス」**とは何を指しますか?

2. ブロックの各要素とその定義を対応させてください。

question mark

ブロックチェーンやコンピュータシステムの文脈で、**「エンディアンネス」**とは何を指しますか?

正しい答えを選んでください

question-icon

ブロックの各要素とその定義を対応させてください。

A number that miners change to get the resulting block hash which meets the difficulty target:
A compact representation of the target threshold that the block's hash must meet in order to be added to the blockchain:

A single hash that represents all the transactions included in the block:

クリックまたはドラッグ`n`ドロップして空欄を埋めてください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  3

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  3
some-alt